Android-renderscript

提供:Dev Guides
移動先:案内検索

Android-RenderScript

この章では、Android RenderScriptについて学習します。 通常、Android上のアプリは、可能な限り最小限のリソースを消費するように設計されています。 ただし、一部の3Dゲームのような一部のアプリケーションでは、Androidでの高レベルの処理が必要です。

これらのアプリケーションを提供するために、高性能アンドロイドはRenderScriptを導入しました。 これは、非常に高度な計算タスクを実行するアプリケーションの実行に使用されるAndroidベースのフレームワークです。 このフレームワークでの開発は、Androidが提供するNative Development Kit(NDK)で行われます。 RenderScriptは、次のタイプのアクションを実行するアプリケーションに非常に便利です-

  • 3Dレンダリング
  • 画像処理
  • 計算写真
  • コンピュータビジョン

RenderScriptの仕組み

RenderScriptフレームワークは、基本的にデータ並列計算に基づいています。 マルチコアCPUやGPUなど、デバイスで使用可能なすべてのプロセッサにアプリケーションワークロードを分散します。

ワークロードのこの並列分散により、プログラマーは負荷分散と作業スケジューリングの緊張から解放されます。 計算能力を心配することなく、より詳細で複雑なアプリのアルゴリズムを作成できます。

始め方

RenderScriptフレームワークを使用するには、次の2つのことが必要です-

  • RenderScriptカーネル
  • RenderScript API

RenderScriptカーネル

カーネルは、データ処理命令を管理し、中央処理装置のワークロードを管理するプログラムです。カーネルは、オペレーティングシステムの基本的な部分です。

同様に、RenderScriptフレームワークを実行するには、アプリからのすべてのデータ処理要求を管理し、NDKが提供するAndroid OSの機能を活用するカーネルという名前の記述されたスクリプトが必要です。 Androidの開発キット。

カーネルスクリプトは、C言語のC-99標準で記述されています。 この標準は、C ++の開発前でした。 通常、*。rs *ファイルに配置されたRenderScriptカーネルスクリプトファイル。 各ファイルはスクリプトとして呼び出されます。 RenderScriptカーネルスクリプトには、次の要素を含めることができます-

Sr.No Elements & Description
1

A Language declaration

このスクリプトで使用されるRenderScriptカーネル言語のバージョンを宣言します。

2

A package declaration

この宣言は、このカーネルコードの影響を受けるJavaクラスのパッケージ名を指定します。

3

Invokable functions

これらの呼び出し可能な関数は、任意の引数を使用してJAVAコードから呼び出すことができます。

4

Script Global Variables

これらは、CおよびC ++プログラミング言語で定義された変数とまったく同じです。 これらの変数には、JAVAコードからアクセスできます。

以下は、カーネルのサンプルコードです-

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 API

あなたのAPIでRenderScriptを使用したい場合は、次の2つの方法でそれを行うことができます-

Sr.No APIs & Description
1

android.renderscript

このAPIは、Android 3.0以降を実行しているデバイスで使用できます。

2

android.support.v8.renderscript

このAPIは、Android 2.2以降を実行しているデバイスで使用できます。

次のツールが必要なアンドロイドサポートライブラリに-

  • 最新のAndroid SDK Toolsバージョン
  • 最新のAndroid SDK Build-toolsバージョン

RenderScriptサポートライブラリの使用方法

最初にプロジェクトで project.properties ファイルを開き、ファイルに次の行を追加します-

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

次に、RenderScriptを使用するメインクラスを開き、次のようにサポートライブラリクラスのインポートを追加します-

import android.support.v8.renderscript.*;

以下は、 project.properties ファイルに追加する上記のプロパティの目的です。

Sr.No Project properties & Description
1

renderscript.target

生成するバイトコードバージョンを指定します。

2

renderscript.support.mode

生成されたバイトコードがフォールバックするための互換バージョンを指定します。

3

sdk.buildtools

使用するAndroid SDKビルドツールのバージョンを指定します。

RenderScriptカーネル関数を呼び出して、アプリで複雑なアルゴリズムを計算します。