- Androidプログラミング質問スレ revision45
251 :デフォルトの名無しさん[sage]:2014/10/15(水) 11:29:55.57 ID:QwuALmoj - GoogleMapのマーカー(その他 描画系)の付け外しって
これであってるかな? // Marker mMarker; // ループ内 if( mMarker != null ) { mMarker.remove(); mMarker = null; } mMarker = mMap.addMarker( new MarkerOptions() .position( new LatLng( mLatitude, mLongitude ) ) .icon( mBitmapDescriptorObject ) ); 一つのマーカーを毎秒ごとに剥がして置くだけで 何回か目にはGC_FOR_ALLOCが走って仕様メモリが上がり 実際のアプリの仕様ではマーカーが十数個は近くにあって 30分か一時間もすればOut Of Memoryで落ちてしまう・・・
| - Androidプログラミング質問スレ revision45
252 :デフォルトの名無しさん[sage]:2014/10/15(水) 14:02:17.92 ID:QwuALmoj - 現在位置と任意の点のマーカーの付け外しを繰り返して
大体一時間後には512MBに達して落ちてしまうわ・・・ GC_FOR_ALLOC freed 241K, 2% free 514470K/524128K, paused 183ms, total 183ms GC_FOR_ALLOC freed 226K, 2% free 514633K/524128K, paused 169ms, total 169ms GC_BEFORE_OOM freed 79K, 2% free 514554K/524128K, paused 191ms, total 191ms GC_EXPLICIT freed 136K, 2% free 514485K/524128K, paused 2ms+22ms, total 160ms GC_FOR_ALLOC freed <1K, 2% free 514485K/524128K, paused 180ms, total 180ms GC_BEFORE_OOM freed 0K, 2% free 514485K/524128K, paused 139ms, total 139ms GC_FOR_ALLOC freed 16K, 2% free 514567K/524128K, paused 137ms, total 137ms GC_FOR_ALLOC freed 9192K, 4% free 505710K/524212K, paused 158ms, total 159ms
| - Androidプログラミング質問スレ revision45
253 :デフォルトの名無しさん[sage]:2014/10/15(水) 14:34:41.03 ID:QwuALmoj - 本来外さなくてもいい画面内のマーカーすら剥がして再度貼り付けるなら
mMap.clear(); System.gc(); こうすればいいけど正規の方法なのだろうか
| - Androidプログラミング質問スレ revision45
257 :デフォルトの名無しさん[sage]:2014/10/15(水) 16:26:20.00 ID:QwuALmoj - >>256
drawable-xxhdpi用の200x200くらいの24bit PNGをマーカーにして icon用のBitmapDescriptorはフィールドで作成手済み マップ表示だけで円を描いて移動させてる分には大して増えない 現在位置のマーカーを一つ設けると地味に増える 色んな場所を教えるマーカーをたくさん張っておくとけっこう上がっていく 当初は地図の中心が大きく変化したら 配列に格納していたマーカーを取り出して行って remove nullしてから新しいのをaddし直してた その後、更新する度にmap.clearするようにしたら、まあ落ち着くけど 全て消え去ってしまうので点滅や余計なaddが増えてしまう とりあえずたまにclearかけるようにするけど メモリ利用率がちょっとあやしい
|
|