【问题标题】:Getting Hprof dump for other processes from application code从应用程序代码中获取其他进程的 Hprof 转储
【发布时间】:2010-06-16 12:28:37
【问题描述】:

在我的应用程序中,我可以选择捕获 hprof 转储。我 用过

android.os.Debug.dumpHprofData(字符串文件名)

虽然上面方法生成的 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 转储的可能方法 代码?

谢谢

【问题讨论】:

    标签: java android hprof


    【解决方案1】:

    我们需要有什么特别的吗 杀死其他进程的权限 我们的流程?

    是的,就像在任何其他 Linux 系统中一样。

    你能推荐一些可能的吗 获取其他 Hprof 转储的方法 来自应用程序代码的进程?

    Root 手机。

    您可以尝试使用ActivityManager 及其killBackgroundProcesses() 方法,但我不知道这是否会生成您想要的文件。如果是这样,那就是安全漏洞,需要修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多