Android程序内存泄漏的原因和解决办法
2017-04-10 21:26
309 查看
转自:http://www.cnblogs.com/yejiurui/archive/2013/02/23/2923418.html
内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。
内存泄漏简单地说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。
从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。
Android应用内存泄漏的的原因有以下几个:
1查询数据库后没有关闭游标cursor
2 构造Adapter时,没有使用 convertView 重用
3 Bitmap对象不在使用时调用recycle()释放内存
4 对象被生命周期长的对象引用,如activity被静态集合引用导致activity不能释放
内存泄漏的发现:
通过DDMS中的heap工具,去发现是否有内存溢出。
内存泄漏如何解决:
通过内存分析工具 MAT(Memory Analyzer Tool),找到内存泄露的对象
内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。
内存泄漏简单地说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。
从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。
Android应用内存泄漏的的原因有以下几个:
1查询数据库后没有关闭游标cursor
2 构造Adapter时,没有使用 convertView 重用
3 Bitmap对象不在使用时调用recycle()释放内存
4 对象被生命周期长的对象引用,如activity被静态集合引用导致activity不能释放
内存泄漏的发现:
通过DDMS中的heap工具,去发现是否有内存溢出。
内存泄漏如何解决:
通过内存分析工具 MAT(Memory Analyzer Tool),找到内存泄露的对象
相关文章推荐
- Android程序内存泄漏的原因和解决办法
- android程序内存泄漏的原因和解决办法
- android程序内存泄漏的原因和解决办法
- android程序内存泄漏的原因和解决办法
- android程序内存泄漏的原因和解决办法
- android程序内存泄漏的原因和解决办法
- Android内存泄漏的本质原因、解决办法、操作实例
- Android程序报“程序包org.apache.http不存在”的原因和解决办法
- Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法
- android开发中导入已有项目因为R.java使程序有错误的解决办法(终极版)
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPointerException 错误的集中原因及解决办法
- 编写android程序时:Error in an XML file: aborting build"错误的解决办法
- 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法
- android 程序安装完成时,程序启动两次的问题解决办法。
- Android安装程序时显示timeout的解决办法
- android程序卸载后无法删除桌面快捷方式的解决办法
- 关于android工程下不能运行java main程序的解决办法
- 运行android程序,Could not find *.apk的解决办法
- Android下,不能把应用安装到SD卡上的解决办法(适用于之前可以装到SD,由于某种原因装不上的情况)