1

我试图从我从 Eclipse 的 DDMS 中获取的 Android 应用程序的堆转储中找到一个字符串。我使用 SDK 的 hprof-conv 转换了文件。现在,如果我在 Eclipse MemoryAnalyzer 中打开文件,它会给我一个堆中的字符串列表,这很棒!我找到了我需要的东西。但是,我正在尝试编写一个脚本,该脚本将从堆转储中获取我正在寻找的字符串。我遇到的问题是,当我在转储上运行字符串或通过十六进制编辑器运行转储时,我没有看到这个字符串。我不明白 MemoryAnalyzer 从哪里得到我正在寻找的字符串。有人知道这里发生了什么吗?谢谢。

4

1 回答 1

0

Java 在内部对字符串使用UTF-16字符编码。因此,如果在转储上使用十六进制编辑器,您可能需要以该编码搜索您的搜索词。

于 2013-04-18T05:53:53.213 回答