内存优化
内存检测工具
- Memory Monitors
Memory Monitors是Android Studio中的工具,通过图形界面的方式比较直观的看到内存抖动的情况,还可以手动触发GC,配合内存快照,可以准确的看到哪些地方存在内存泄漏。 - LeakCanary
LeakCanary是一个检测内存泄漏的开源类库,使用比较简单。可直接在gitHub找到。
在应用内做相应的配置后,安装完应用后,会自动安装一个检测的apk,操作应用产生内存泄漏之后,通知栏就会有通知,点击即可查看详细报告
3.Android Lint
Android Lint是SDK中提供的比较常用的检测工具,但是很多时候只是将它作为对xml资源的一个检测工具简单使用,实际上Android Lint是功能非常强大的工具,也可以检测出内存泄漏
4.Heap Viewer SDK中带的一个工具,功能同Memory Monitors一致,不如Memory Monitors直观
内存优化方案
1.内存泄漏,是指已经用不到的内存对象,但垃圾回收机制没有把这个对象回收,造成的内存空间占用。内存泄漏会导致系统可使用的堆内存越来越少,从而频繁GC,如果GC耗时较多会出现丢帧卡顿的情况(因为Dalvik虚拟机在GC时,会暂停应用的线程)。
2.内存溢出(OOM),是指请求的内存空间超过了系统能为应用分配的堆内存空间时,会发生内存溢出,最终导致应用崩溃。
3.未关闭资源,如Cursor、File文件等,不使用时应该及时关闭。