Android-renderscript
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カーネル関数を呼び出して、アプリで複雑なアルゴリズムを計算します。