内存转储android中的应用程序

时间:2013-06-22 21:37:45

标签: android memory adb root ddms

我在root设备上,想要对某个应用程序进行完整的内存转储。

我试过了:

  1. 一些谷歌搜索结果说使用“adb kill -10 [pid]” 但是,它给了我“sigusr1强制gc(没有hprof)”,并且没有转储hproc。 这可能是特定于设备的。
  2. 我也尝试在DDMS(Eclipse)中使用“Dump PROF文件”按钮, 但它只给我一个大约5 MB的文件,这不是一个 完整的内存转储并不是很有用。
  3. 我尝试过chmod / proc / [pid] / mem,并访问该文件,但是 即使是在有根设备上,它也会拒绝我。

1 个答案:

答案 0 :(得分:0)

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

编辑:要读取任何内容,除了具有调试权限的/ proc / self / mem之外的其他内容可能会非常有用,有关某些见解,请参阅this question