如许多有益的网站所详细介绍的那样,分析Android应用程序的内存使用情况的一种方法是执行“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)
我正在尝试的所有设备都已经取得了root权限,并且我已经确保将/data/misc文件夹的权限设置为777。执行“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转储文件?是否有什么方法可以让我获取这些转储文件?