7月 13

積極的に使っている人がまだ少ないと思われる RenderScript (以下、RS) について、数回に分けて説明していきます。

最終的には、以下のイメージに示すアプリが完成します。

完成したアプリのスクリーンショット

このアプリは、横にスワイプすると、メリーゴーランドのように、同一円周上に配置されたモデルが円に沿って回転します。
カルーセルの基本形とも言えるので、これを改造すれば魅力的なUIを作ることも可能です。

まず、このエントリーでは、メリットとデメリットについて説明します。

メリット

  • 描画処理が早い
  • Java側でCanvasを使った描画をするより早いです。
    パフォーマンスについては、 Developers Blogの下の方に書いてあります。
    それによると、DalvikよりもRSの方が3倍以上早いという結果が出たようです。

  • Javaとの連携がしやすい (個人的な見解)
  • なぜかというと、RSで定義した変数やメソッドにアクセスするためのクラスが、自動的に生成されるためです。
    あまり、細かいことを考えずに使えるので、私個人としては連携がしやすいと思っています。

  • アーキテクチャに依存しない
  • RS専用のランタイムで動作するので、例えばx86搭載端末が発売されても大丈夫というニュアンスの一文が公式の資料の記載されています。

デメリット

  • 開発環境が十分ではない (2012/07/03時点)
  • メモ帳でプログラミングすることに抵抗がなければ問題ありませんが、補完がないので、APIを覚えるまでは少し面倒です。

  • デバッグが難しい
  • JavaでNullPointerExceptionなどを発生させると、LogCatで行数まで表示してくれますが、RSだとそのような出力はされないので、大規模なRSになってくると大変です。

資料

このエントリーで参考にした資料です。

次回は、イベント処理を含めた HalloWorld の説明を予定しています。


Posted by selphy

Tagged with:
preload preload preload