Android - RenderScript

In diesem Kapitel lernen wir Android RenderScript kennen. Normalerweise sind die Apps auf Android so konzipiert, dass sie so wenig Ressourcen wie möglich verbrauchen. Aber einige Anwendungen wie einige 3D-Spiele benötigen eine High-Level-Verarbeitung auf Android.

Um diese Anwendungen für Hochleistungs-Android bereitzustellen, wurde das RenderScript eingeführt. Es ist ein Android-basiertes Framework, das zum Ausführen von Anwendungen verwendet wird, die sehr rechenintensive Aufgaben ausführen. Die Entwicklung dieses Frameworks erfolgt im Native Development Kit (NDK) von Android. RenderScript ist äußerst nützlich für Anwendungen, die folgende Arten von Aktionen ausführen:

  • 3D-Rendering
  • Bildverarbeitung
  • Computerfotografie
  • Computer Vision

So funktioniert RenderScript

Das RenderScript-Framework basiert im Wesentlichen auf einer datenparallelen Berechnung. Es verteilt Ihre Anwendungsauslastung auf alle auf Ihrem Gerät verfügbaren Prozessoren wie Multi-Core-CPUs oder GPUs.

Diese parallele Verteilung der Arbeitslast befreit den Programmierer von der Spannung des Lastausgleichs und der Arbeitsplanung. Sie können detailliertere und komplexere Algorithmen für Ihre App schreiben, ohne sich um Rechenleistung sorgen zu müssen.

Wie fange ich an?

Um das RenderScript Framework verwenden zu können, müssen Sie zwei Dinge tun:

  • Ein RenderScript-Kernel
  • RenderScript-APIs

Ein RenderScript-Kernel

Ein Kernel ist ein Programm, das Datenverarbeitungsanweisungen und die Arbeitslast auf Zentraleinheiten verwaltet. Ein Kernel ist ein grundlegender Bestandteil des Betriebssystems.

In ähnlicher Weise benötigen wir zum Ausführen des RenderScript-Frameworks ein schriftliches Skript mit dem Namen Kernel, um alle Datenverarbeitungsanforderungen unserer App zu verwalten und mehr Funktionen des vom NDK bereitgestellten Android-Betriebssystems zu nutzen. Wie bereits erwähnt, erfolgt die Entwicklung von RenderScript im Native Entwicklungskit von Android.

Das Kernel-Skript ist im C-99-Standard der C-Sprache geschrieben. Dieser Standard war vor der Entwicklung von C ++. Eine RenderScript-Kernel-Skriptdatei, die normalerweise abgelegt wird.rsDatei. Jede Datei wird als Skript aufgerufen. Ein RenderScript-Kernel-Skript kann folgende Elemente enthalten:

Sr.Nr. Elemente & Beschreibung
1

A Language declaration

Es deklariert die Version der RenderScript-Kernel-Sprache, die in diesem Skript verwendet wird.

2

A package declaration

Diese Deklaration nennt den Paketnamen der Java-Klasse, die von diesem Kernel-Code betroffen ist.

3

Invokable functions

Sie können diese aufrufbaren Funktionen aus Ihrem JAVA-Code mit beliebigen Argumenten aufrufen.

4

Script Global Variables

Dies sind genau die Variablen, die in der Programmiersprache C und C ++ definiert sind. Sie können über Ihren JAVA-Code auf diese Variablen zugreifen.

Es folgt der Beispielcode eines Kernels -

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;
}

RenderScript-APIs

Wenn Sie RenderScript in Ihrer API verwenden möchten, haben Sie zwei Möglichkeiten:

Sr.Nr. APIs & Beschreibung
1

android.renderscript

Diese API ist auf Geräten mit Android 3.0 und höher verfügbar.

2

android.support.v8.renderscript

Diese API ist auf Geräten mit Android 2.2 und höher verfügbar.

Für die Android-Support-Bibliothek sind folgende Tools erforderlich:

  • Neueste Version der Android SDK Tools
  • Neueste Version der Android SDK Build-Tools

Verwendung der RenderScript-Unterstützungsbibliothek

Öffnen Sie zuerst die project.properties Datei in Ihrem Projekt und fügen Sie folgende Zeilen in die Datei -

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

Öffnen Sie nun Ihre Hauptklasse, die RenderScript verwendet, und fügen Sie einen Import für die Support Library-Klassen wie folgt hinzu:

import android.support.v8.renderscript.*;

Im Folgenden sind die Zwecke der oben genannten Eigenschaften aufgeführt, die wir in der project.properties Datei.

Sr.Nr. Projekteigenschaften & Beschreibung
1

renderscript.target

Es gibt die zu generierende Bytecode-Version an.

2

renderscript.support.mode

Es gibt eine kompatible Version an, auf die der generierte Bytecode zurückgreifen soll.

3

sdk.buildtools

Es gibt die Versionen der zu verwendenden Android SDK-Build-Tools an.

Rufen Sie jetzt Ihre RenderScript-Kernelfunktionen auf und berechnen Sie komplexe Algorithmen in Ihrer App.