首先,感谢您花时间查看我的问题。我目前在我正在开发的应用程序中遇到内存峰值问题。
我的意图是能够下载和处理大量的 HTML 数据,目前的原因是嵌套在 HTML 中的大型 base64 编码图像,我理解这不适合在移动平台上使用。作为记录,我目前正在三星 Galaxy S 上进行测试。此外,由于每个应用程序分配了更多内存,因此在 Galaxy Nexus 上不会出现此问题。
我的问题是,在处理大约 2.8mb 的大量 HTML 数据时,内存堆增加到大约 27-29mb,但分配的内存永远不会超过 18-19mb。当 HTML 被处理、保存和显示后,分配的内存恢复到 3-4mb 左右。如果我要再次下载和处理这个 HTML,这个过程会重复,我得到相同的内存使用,除了它似乎进一步增加了堆(这对我来说似乎没有必要),此时我收到一个Out of memory
错误。
当我收到此错误时,通常是在使用下载 HTMLHttpGet
或使用StringBuffer
. 有时它是由Bitmap
XML 膨胀期间引起的。
任何帮助将不胜感激。