Android - RenderScript

Neste capítulo, aprenderemos sobre RenderScript do Android. Normalmente, os aplicativos no Android são projetados para consumir o mínimo de recursos possível. Mas alguns aplicativos, como alguns jogos 3D, precisam de processamento de alto nível no Android.

Para fornecer a esses aplicativos alto desempenho, o Android introduziu o RenderScript. É uma estrutura baseada em Android que é usada para executar aplicativos que executam tarefas altamente computacionais. O desenvolvimento neste framework é feito no Native Development Kit (NDK) fornecido pelo android. RenderScript é extremamente útil para aplicativos que realizam os seguintes tipos de ações -

  • Renderização 3D
  • Processamento de imagem
  • Fotografia Computacional
  • Visão Computacional

Como funciona o RenderScript

A estrutura do RenderScript é basicamente baseada na computação paralela de dados. Ele distribui a carga de trabalho do seu aplicativo em todos os processadores disponíveis no seu dispositivo, como CPUs ou GPUs multi-core.

Essa distribuição paralela da carga de trabalho libera o programador da tensão do balanceamento de carga e da programação do trabalho. Você pode escrever algoritmos mais detalhados e complexos para seu aplicativo sem se preocupar com o poder computacional.

Como começar

Para usar o RenderScript Framework, você deve seguir duas coisas -

  • Um kernel RenderScript
  • APIs de RenderScript

Um kernel RenderScript

Um kernel é um programa que gerencia as instruções de processamento de dados e gerencia a carga de trabalho nas Unidades Centrais de Processamento. Um kernel é uma parte fundamental do sistema operacional.

Da mesma forma, para executar a estrutura de RenderScript, precisamos de um script escrito denominado Kernel para gerenciar todas as solicitações de processamento de dados de nosso aplicativo e utilizar mais recursos do sistema operacional Android fornecido pelo NDK e, conforme mencionado anteriormente, que o desenvolvimento de RenderScript é feito no Native Kit de Desenvolvimento do Android.

O Kernel Script é escrito no padrão C-99 da linguagem C. Este padrão foi anterior ao desenvolvimento do C ++. Um arquivo de script do kernel RenderScript geralmente colocado em.rsArquivo. Cada arquivo é chamado de script. Um script RenderScript Kernel pode conter os seguintes elementos -

Sr. Não Elementos e descrição
1

A Language declaration

Ele declara a versão da linguagem RenderScript Kernel usada neste script.

2

A package declaration

Esta declaração nomeia o nome do pacote da classe Java que será afetada por este código de kernel.

3

Invokable functions

Você pode chamar essas funções invokable de seu código JAVA com argumentos arbitrários.

4

Script Global Variables

São exatamente como as variáveis ​​definidas na linguagem de programação C e C ++. Você pode acessar essas variáveis ​​de seu código JAVA.

A seguir está o Código de Amostra de um Kernel -

uchar4 __convert__((kernel)) invert(uchar4 in, uint32_t x, uint32_t y) {
   uchar4 out = in;
   out.r = 255 - in.r;
   out.g = 255 - in.g;
   return out;
}

APIs de RenderScript

Se você deseja usar RenderScript em sua API, você pode fazer isso de duas maneiras -

Sr. Não APIs e descrição
1

android.renderscript

Esta API está disponível em dispositivos com Android 3.0 e superior.

2

android.support.v8.renderscript

Esta API está disponível em dispositivos com Android 2.2 e superior.

Para a biblioteca de suporte do Android, são necessárias as seguintes ferramentas -

  • Versão mais recente do Android SDK Tools
  • Versão mais recente do Android SDK Build-tools

Como usar a Biblioteca de Suporte RenderScript

Primeiro abra o project.properties arquivo em seu projeto e adicione as seguintes linhas no arquivo -

renderscript.target=18
renderscript.support.mode=true
sdk.buildtools=18.1.0

Agora abra sua classe principal que usa RenderScript e adicione uma importação para as classes da Biblioteca de Suporte da seguinte forma -

import android.support.v8.renderscript.*;

A seguir estão os propósitos das propriedades mencionadas acima que adicionamos no project.properties Arquivo.

Sr. Não Propriedades e descrição do projeto
1

renderscript.target

Ele especifica a versão do código de byte a ser gerado.

2

renderscript.support.mode

Ele especifica uma versão compatível para o código de bytes gerado retroceder.

3

sdk.buildtools

Ele especifica as versões das ferramentas de construção do Android SDK a serem usadas.

Agora chame suas funções de kernel do RenderScript e calcule algoritmos complexos em seu aplicativo.