Android 中的应用程序内存转储

问题描述 投票:0回答:1

我使用的是 root 设备,想要获取某个应用程序的完整内存转储。

我已经尝试过:

  1. 一些谷歌结果说使用“adb Kill -10 [pid]” 但是,它给了我“sigusr1 forcing gc (no hprof)”,并且没有 hproc 被转储。 这可能是特定于设备的。
  2. 我还尝试过在 DDMS (Eclipse) 中使用“转储 PROF 文件”按钮, 但它只给了我一个大约 5 MB 的文件,这不是一个 完整的内存转储,但不是很有用。
  3. 我尝试 chmod /proc/[pid]/mem 并访问该文件,但是 即使在已取得 root 权限的设备上,它也会拒绝我的权限。
android memory adb root ddms
1个回答
0
投票

HPROF 只是堆的转储,因此它显然不是所有内存。正如here所解释的,Android 在较新版本中不再在 SIGUSR1(信号 10)上转储堆。 here给出了一些关于使用 /proc/[pid]/mem 的有用事实。简而言之:您的“权限被拒绝”也可能是由于尝试以错误的方式读取文件而引起的。

编辑:要读取除具有调试权限的 /proc/self/mem 之外的任何内容可能会特别有用,请参阅这个问题了解一些见解。

© www.soinside.com 2019 - 2024. All rights reserved.