2013年2月8日金曜日

続:OoM

なんとなく見えてきた
・AndroidではBMP/JPG/PNGだろうが、
 Bitmapへ代入した時点でピクセル数でメモリを食う

 4.5MByteの地図は原寸ではjpgでも読めないし
 Scale1/4圧縮して読み込んでも、5枚読み込もうとすると、エラー

 だいたい5MByteが境界線

   MATと
   http://www.eclipse.org/mat/
   BIRTエンジンを入れておくと
 DDMSのHPROFで 
こんな感じでメモリ専有状態がわかって便利。

 便利というかXCodeでは普通に付いてるんだけど。

そーやって追っていくとBitmapでHeapを食いつぶしている。
エミュレーターのVMHEapを16から、Nexus7と同じ48にしてもダメ
これは、
・Androidは大きいHeapを使う場合は、

   AndroidManifextにLargeHeap=Trueを設定する必要があり。
らしい。

とりあえず2000x1000は読めるようになった。

調子にのって画像ファイルを大きくしてたら、実機でエラー

・Log猫さん「OpenGLは2048x2048以上はテクスチャに出来ないの。馬鹿なの?」
実機でしか起きないけど、Bitmapは2048x2048以上はダメっぽい。


大体絵の方は分かったけど、拡縮する場合は2048x2048はきっついなぁ。
ハイドライドみたいに、スワイプスクロールにするか、
タイルで並べて同期スクロールするか。

でもなんか境界線がUltimaOnlineのブリ東のサーバー境界みたいに、
ジェスチャ引っかかったり、画像ずれそう。

0 件のコメント:

コメントを投稿