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.