Android - RenderScript

In questo capitolo impareremo a conoscere Android RenderScript. Di solito le app su Android sono progettate in modo da consumare il minor numero di risorse possibile. Ma alcune applicazioni come alcuni giochi 3D richiedono un'elaborazione di alto livello su Android.

Per fornire a queste applicazioni prestazioni elevate, Android ha introdotto RenderScript. È un framework basato su Android che viene utilizzato per eseguire applicazioni che eseguono attività di calcolo molto elevate. Lo sviluppo su questo framework viene eseguito in Native Development Kit (NDK) fornito da Android. RenderScript è estremamente utile per le applicazioni che eseguono i seguenti tipi di azioni:

  • Rendering 3D
  • Elaborazione delle immagini
  • Fotografia computazionale
  • Visione computerizzata

Come funziona RenderScript

Il framework RenderScript è fondamentalmente basato sul calcolo parallelo dei dati. Distribuisce il carico di lavoro dell'applicazione su tutti i processori disponibili sul dispositivo come CPU o GPU multi-core.

Questa distribuzione parallela del carico di lavoro libera il programmatore dalla tensione del bilanciamento del carico e della pianificazione del lavoro. Puoi scrivere algoritmi più dettagliati e complessi per la tua app senza preoccuparti della potenza di calcolo.

Come iniziare

Per utilizzare RenderScript Framework devi avere le seguenti due cose:

  • Un kernel RenderScript
  • API RenderScript

Un kernel RenderScript

Un kernel è un programma che gestisce le istruzioni di elaborazione dati e gestisce il carico di lavoro sulle unità di elaborazione centrale. Un kernel è una parte fondamentale del sistema operativo.

Allo stesso modo per eseguire il framework RenderScript abbiamo bisogno di uno script scritto denominato Kernel per gestire tutte le richieste di elaborazione dati dalla nostra app e utilizzare più funzionalità del sistema operativo Android fornite dall'NDK e come accennato in precedenza che lo sviluppo di RenderScript viene fatto in Native Kit di sviluppo di Android.

Il Kernel Script è scritto nello standard C-99 del linguaggio C. Questo standard era prima dello sviluppo di C ++. Un file script del kernel RenderScript solitamente inserito in.rsfile. Ogni file viene chiamato come uno script. Uno script del kernel RenderScript può contenere i seguenti elementi:

Suor n Elementi e descrizione
1

A Language declaration

Dichiara la versione del linguaggio Kernel RenderScript utilizzato in questo script.

2

A package declaration

Questa dichiarazione nomina il nome del pacchetto della classe Java che sarà influenzata da questo codice del kernel.

3

Invokable functions

Puoi chiamare queste funzioni invocabili dal tuo codice JAVA con argomenti arbitrari.

4

Script Global Variables

Queste sono proprio come le variabili definite nei linguaggi di programmazione C e C ++. Puoi accedere a queste variabili dal tuo codice JAVA.

Di seguito è riportato il codice di esempio di un 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;
}

API RenderScript

Se desideri utilizzare RenderScript nella tua API, puoi farlo in due modi:

Suor n API e descrizione
1

android.renderscript

Questa API è disponibile sui dispositivi con Android 3.0 e versioni successive.

2

android.support.v8.renderscript

Questa API è disponibile sui dispositivi con Android 2.2 e versioni successive.

Per la libreria di supporto Android sono necessari i seguenti strumenti:

  • Ultima versione di Android SDK Tools
  • Ultima versione degli strumenti di build di Android SDK

Come utilizzare la libreria di supporto RenderScript

Prima apri il file project.properties file nel progetto e aggiungi le seguenti righe nel file:

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

Ora apri la tua classe principale che usa RenderScript e aggiungi un'importazione per le classi della libreria di supporto come segue:

import android.support.v8.renderscript.*;

Di seguito sono riportati gli scopi delle proprietà sopra menzionate che aggiungiamo nel file project.properties file.

Suor n Proprietà e descrizione del progetto
1

renderscript.target

Specifica la versione del codice byte da generare.

2

renderscript.support.mode

Specifica una versione compatibile per il fallback del codice byte generato.

3

sdk.buildtools

Specifica le versioni degli strumenti di compilazione di Android SDK da utilizzare.

Ora chiama le funzioni del kernel di RenderScript e calcola algoritmi complessi nella tua app.