我运行以下 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/

10-09 04:40