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.