2013-01-19 (土)
*[Android]RenderScript書く日
RenderScriptあまり真面目に触ってなかったけど,PDF内の画像のレンダリング処理がJavaだと遅くて,かといってNDK使いたくなかったので,ためしにRenderScript使ってみる.
とりあえず,画像読み込み部分だけ書き直して,RenderScriptでピクセルデータ作ってBitmapにコピーすることに.filter/rootで書いた方がGPUサポート受けられる可能性があって好ましいのだろうけど,普通にC言語で書いてネイティブのライブラリ代わりにするだけでも,かなり速度が改善された.今度はImageViewにセットするためのBitmapを確保する時間がネックになってしまったので,やっぱりRenderScriptで直接描画するべきだなぁ.
そろそろAndroid 2.xのサポートを諦めても良い気がしているし,色々使ってみよう.
致命的な問題ではないけど,自動的に生成されるjavaファイルに,「The source Renderscript file:~」という.rsファイルの場所を示すコメントが挿入されるのだけど,Windows環境でパッケージ名が「u」から始まるディレクトリがあると,\u~という文字列が出てくるのでjavaコンパイラがエラー吐く.JavaコンパイラのUnicodeエスケープの処理が構文解析より前になってるのってCのtrigraphみたいな使い方を想定してるのかな.
あと,RenderScriptオブジェクトはdestroy()してあげないと,RSMessageThreadが残ってメモリリークしてしまうっぽい.