我是 android 开发的新手,我创建了一个简单的应用程序,它从互联网上读取一些 rss xml 新闻提要,我有点担心内存管理,因为每次应用程序读取 xml 提要时都会调用 GC_CONCURRENT,ddms显示我的堆大小为 12,133Mb,我已分配 11,549Mb(95.15% 使用率),我没有遇到内存不足错误,我很担心,因为应用程序到目前为止只有一个 Activity ,内存使用率几乎是 100%。
我的应用在内存使用方面是否健康?
p.s.: 对不起可怜的英语
04-09 17:02:58.731: D/InicioActivity(8998): Categoria: Mundo
04-09 17:02:58.762: D/dalvikvm(8998): null clazz in OP_INSTANCE_OF, single-stepping
04-09 17:02:59.255: D/dalvikvm(8998): GC_CONCURRENT freed 356K, 5% free 11879K/12423K, paused 3ms+7ms, total 30ms
04-09 17:02:59.458: D/InicioActivity(8998): Categoria: Brasil
04-09 17:02:59.505: D/dalvikvm(8998): GC_CONCURRENT freed 515K, 5% free 11831K/12423K, paused 12ms+2ms, total 30ms
04-09 17:03:00.106: D/dalvikvm(8998): GC_CONCURRENT freed 465K, 5% free 11804K/12423K, paused 12ms+3ms, total 30ms
04-09 17:03:00.153: D/InicioActivity(8998): Categoria: Negócios
04-09 17:02:59.255: D/dalvikvm(8998): GC_CONCURRENT freed 356K, 5% free 11879K/12423K, paused 3ms+7ms, total 30ms
04-09 17:02:59.458: D/InicioActivity(8998): Categoria: Brasil
04-09 17:02:59.505: D/dalvikvm(8998): GC_CONCURRENT freed 515K, 5% free 11831K/12423K, paused 12ms+2ms, total 30ms
04-09 17:03:00.106: D/dalvikvm(8998): GC_CONCURRENT freed 465K, 5% free 11804K/12423K, paused 12ms+3ms, total 30ms
04-09 17:03:00.153: D/InicioActivity(8998): Categoria: Negócios
最佳答案
我以前做过一些 rss 提要程序。由于我不知道你的代码的确切细节,我假设你实现了一些你在谷歌上找到的代码。 12 MB 很多,但我几乎不认为这与 rss 提要本身有任何关系,因为在网上找到的大多数代码都写得非常好(如果不是,我真的怀疑他们是否会通过使用简单的 xml 解析器)。
首先考虑一些事情:
rss 阅读器的正常内存使用量约为 4 MB(至少我的每个解析器都是如此)
检查您的程序源代码,看看您是否有任何其他代码需要额外的内存(浏览器、纹理、图片、图形引擎)
- 您要解析的 xml 至少有 1MB 大小吗???如果是,我会建议您找到其他方法来解析它。
- 由于您是新来的,我建议您从现在开始在提问时添加一些示例代码。
关于Android 内存管理——我的应用是否健康?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911551/