我运行以下 Android Monkey 命令:
adb shell monkey --hprof -v -p com.my.app 5000
它应该在/data/misc 下创建一个 hprof 文件,但它没有。我修改了 777/data/misc。
然后我尝试kill -10 APP_PID,但在logcat下得到以下信息:
I/dalvikvm( 771): threadid=4: reacting to signal 10
I/dalvikvm( 771): SIGUSR1 forcing GC (no HPROF)
D/dalvikvm( 771): GC_EXPLICIT freed 46K, 38% free 8352K/13383K, external 15387K/15496K, paused 98ms
我在 Galaxy S 上运行 Cyanogenmod 版本 7,Android 版本 2.3.7。
为什么“没有 HPROF”,我如何通过 Monkey 获得 HPROF 转储并杀死 -10?
谢谢
最佳答案
当使用 --hprof
调用时,monkey 会向所有进程发送 SIGUSR1
信号,但此补丁已禁止从 Dalvik 转储 HPROF 数据:
因此,在 SIGUSR1
上仅调用 GC。
我猜应该必须从猴子中删除 --hprof
选项。
关于Android Monkey 不生成 HPROF 转储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8351329/