多くの役立つサイトで詳しく説明されているように、Android アプリのメモリ使用量を分析する 1 つの方法は、「kill -10 [PID]」を実行して HPROF ダンプをトリガーすることです。これは一部のデバイスで機能するようで、logcat には通常次のようなものが含まれています。
I/dalvikvm(32170): threadid=3: reacting to signal 10
I/dalvikvm(32170): SIGUSR1 forcing GC and HPROF dump
I/dalvikvm(32170): hprof: dumping VM heap to "/data/misc/heap-dump-tm1302633572-pid32170.hprof-hptemp".
I/dalvikvm(32170): hprof: dumping heap strings to "/data/misc/heap-dump-tm1302633572- pid32170.hprof".
I/dalvikvm(32170): hprof: heap dump completed, temp file removed
ただし、他のデバイスでは、「kill -10」を実行すると次のようになります。
I/dalvikvm( 5687): threadid=4: reacting to signal 10
I/dalvikvm( 5687): SIGUSR1 forcing GC (no HPROF)
これを試しているすべてのデバイスはルート化されており、/data/misc を 777 に chmod したことを確認しました。「kill -10」を実行した後、エラー メッセージは表示されません。
参考までに、HPROF ダンプを取得するデバイスは次のとおりです: HTC ACE (Desire HD)、HTC G1、HTC Nexus One (T-Mobile)
そして、HPROF ダンプを取得しないデバイスは次のとおりです: Nexus S、Droid、Droid X、Nexus One (AT&T)
特定のデバイスから HPROF ダンプを取得できないのはなぜですか? ダンプを取得できるようにするためにできることはありますか?