2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ICSだと何故かメモリを保持し続ける処理の話(Adapter編)

Posted at

とりあえず覚え書き+情報共有+誰か助けて的な話

要はGoogleI/O2009でも紹介された(?)、Viewの再利用とThread処理を利用した、画像のサムネイルギャラリー画面を作ってみたわけですが。

※ ソースは下の内容とほぼ同じ、唯一違うところは、画像の読み込みをAsyncTaskじゃなくてThreadで実行
http://labs.techfirm.co.jp/android/cho/2161

OS2.3までは何の問題もなく動作するのに対し、何故かICS4.0以降になると、初回のheapの使用量が数十倍レベルで変わる上に、GridViewをスクロールすればするほどheapの使用量が増大し続けて、みんな大好きMemoryOfErrorが発生。ちなみにGalaxyNexusでこの現象を確認。
おそらく読み込んだBitmapを保持し続けてしまっているのが原因ではないかと踏むも、解決策までは見つからず。ちなみにAsyncTaskで読み込む形にしても同様のエラーが発生。

ちなみにICSだと、これまででは見られなかったdalvikvmからのログも吐かれるようになった。

気になるログ

04-06 14:35:37.567: I/dalvikvm-heap(3798): Grow heap (frag case) to 14.344MB for 352656-byte allocation
04-06 14:35:13.012: I/dalvikvm-heap(3338): Clamp target GC heap from 64.503MB to 64.000MB
04-06 14:35:14.708: I/dalvikvm-heap(3338): Clamp target GC heap from 64.686MB to 64.000MB
04-06 14:35:14.708: I/dalvikvm-heap(3338): Forcing collection of SoftReferences for 1555216-byte allocation
04-06 14:35:14.747: I/dalvikvm-heap(3338): Clamp target GC heap from 64.684MB to 64.000MB
04-06 14:35:14.747: E/dalvikvm-heap(3338): Out of memory on a 1555216-byte allocation.
04-06 14:35:14.747: I/dalvikvm(3338): "main" prio=5 tid=1 RUNNABLE
04-06 14:35:14.747: I/dalvikvm(3338):   | group="main" sCount=0 dsCount=0 obj=0x40a66460 self=0x12828
04-06 14:35:14.747: I/dalvikvm(3338):   | sysTid=3338 nice=0 sched=0/0 cgrp=default handle=1074893960
04-06 14:35:14.747: I/dalvikvm(3338):   | schedstat=( 0 0 0 ) utm=975 stm=120 core=1

原因と解決策はいまだ模索中。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?