Android 内存管理——我的应用是否健康?

标签 android memory heap-memory

我是 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 解析器)。

首先考虑一些事情:

  1. rss 阅读器的正常内存使用量约为 4 MB(至少我的每个解析器都是如此)

  2. 检查您的程序源代码,看看您是否有任何其他代码需要额外的内存(浏览器、纹理、图片、图形引擎)

  3. 您要解析的 xml 至少有 1MB 大小吗???如果是,我会建议您找到其他方法来解析它。
  4. 由于您是新来的,我建议您从现在开始在提问时添加一些示例代码。

关于Android 内存管理——我的应用是否健康?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911551/

相关文章:

android - 在 Android 中以编程方式获取电话号码

c - 使用 strsep() 的总线错误

java - JVM 如何确保 System.identityHashCode() 永远不会改变?

java - 将大矩阵表示为一维数组比二维数组更有效吗?

linux - 我用过的内存去哪儿了?

c - 为什么要在堆上而不是栈上分配内存?

android - 使用 android :windowSoftInputMode ="adjustNothing" 检查 android 中键盘的可见性和高度

android - 在 android eclipse 项目中使用新的 firebase sdk

android - 将数据从一个 View 模型传递到另一个 android MVVM

c++ - top 如何查看内存使用情况