在我的应用程序中,我可以选择捕获hprof转储。一世 使用
android.os.Debug.dumpHprofData(String 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转储的可能方法 码?
由于
答案 0 :(得分:0)
我们需要有什么特别的吗? 允许从中杀死其他进程 我们的过程?
是的,就像在任何其他Linux系统中一样。
你可以请一些可能的建议吗? 为其他人获取Hprof转储的方法 应用程序代码中的流程?
根你的手机。
您可以尝试使用ActivityManager
及其killBackgroundProcesses()
方法,但我不知道是否会生成您希望的文件。如果是,那就是安全漏洞,需要修复。