在我的应用程序中,我可以选择捕获hprof转储。一世
用过的
android.os.Debug.dumpHprofData(字符串fileName)
最初我虽然通过上述方法生成的hprof数据用于
整个设备,事实并非如此。生成的hprof数据仅
为我的过程。
现在,我也在尝试为其他进程生成hprof数据。一世
需要为所有正在运行的进程获取Hprof转储
应用程序代码。
从adb shell我尝试了“ kill -10”,此命令将生成
data / misc文件夹中对应进程的hprof文件。
现在的问题是,该命令在adb中运行正常
shell提示,但是我无法将命令嵌入到mycode中。
我的代码就像
Runtime.getRuntime()。exec(“ chmod 777 / data / misc”)
Runtime.getRunTime()。exec(“ kill -10”)
没有引发异常,但不知何故它不起作用。相同
当我给我的代码时,上面的代码正在捕获我的进程的Hprof转储
进程ID。
我尝试使用“ android.os.Process.sendSignal(int pid,
android.os.Process.SIGNAL_USR1);“也。同样的问题。
为我的过程捕获Hprof转储。对于其他过程,则不是
工作。
我们是否需要获得任何特殊许可才能杀死其他进程?
我们的过程?还是一个固有的问题?你能建议一些吗
从应用程序获取其他进程的Hprof转储的可能方法
码?
谢谢
最佳答案
我们需要任何特别的东西吗
允许杀死其他进程
我们的过程?
是的,就像其他任何Linux系统一样。
你能建议一些可能吗
Hprof转储其他方式
应用程序代码处理?
根电话。
您可以尝试使用ActivityManager
及其killBackgroundProcesses()
方法,但是我不知道这是否生成您想要的文件。如果是这样,则表示存在安全漏洞,需要修复。
关于java - 从应用程序代码获取其他进程的Hprof转储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3053195/