Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android内存管理-我的应用程序健康吗?_Android_Memory_Heap - Fatal编程技术网

Android内存管理-我的应用程序健康吗?

Android内存管理-我的应用程序健康吗?,android,memory,heap,Android,Memory,Heap,我是android开发的新手,创建了一个简单的应用程序,可以从互联网上读取一些rss xml新闻提要。我有点担心内存管理,因为每次应用程序读取xml提要时,会调用GC_并发,ddms显示我的堆大小是12133MB,我分配了11549MB(95.15%的使用率),我没有内存不足的错误,我很担心,因为应用程序到目前为止只有一个活动,内存使用率几乎是100% 我的应用程序在内存使用方面是否健康 p、 对不起,我的英语太差了 04-09 17:02:58.731: D/InicioActivity(89

我是android开发的新手,创建了一个简单的应用程序,可以从互联网上读取一些rss xml新闻提要。我有点担心内存管理,因为每次应用程序读取xml提要时,会调用GC_并发,ddms显示我的堆大小是12133MB,我分配了11549MB(95.15%的使用率),我没有内存不足的错误,我很担心,因为应用程序到目前为止只有一个活动,内存使用率几乎是100%

我的应用程序在内存使用方面是否健康

p、 对不起,我的英语太差了

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提要程序。因为我不知道你的代码的确切细节,我假设你实现了你在谷歌上找到的一些代码。 12mb是很多,但我几乎不认为这与rss提要本身有任何关系,因为在线找到的大多数代码都写得非常好(如果没有,我真的怀疑他们是否会通过使用简单的xml解析器将内存增加到12mb)

首先要考虑以下几点:

  • rss阅读器的正常内存使用量大约为4MB(至少我的每个解析器都是这样)

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

  • 您试图解析的xml大小是否至少为1MB???如果是的话,我建议你找到其他的方法来解析它
  • 既然您是新来的,我建议您从现在开始在提问时添加一些示例代码

  • 这是当前分配堆的5%。如果需要,它将增长,直到达到最大堆大小,之后您将得到
    OutOfMemoryError
    s

    在XML解析方面,一般建议使用
    XmlPullParser
    ,因为它与Android框架一起提供,并且对内存的要求很低。使用基于事件的解析器(与DOM解析器相反)进行解析比较困难,但好处是您在内存中没有保存文档的完整表示