内存管理
1.内存管理机制概述:
(1)分配机制:操作系统会为每个进程分配合理的大小内存
(2)回收机制:当内存不足时,需要合理回收内存;
2.Android内存管理:
(1)分配机制:弹性分配,刚开始会为APP分配小额内存,根据每个APP的物理内存大小分配,然后在运行时,弹性的为其分配大小;
(2)回收机制:五大分级,前台->可见->服务->后台->空进程,优先级越低,被杀死的概率越大,lru算法,回收效益;
3.内存管理机制的目标:
(1)更少的占用内存
(2)在合适的时候,合理的释放系统资源
(3)在系统内存资源紧张时,能释放大部分不重要资源
(4)能够合理的在特殊生命周期中,保存或者还原重要数据,以保证系统能够正确的重新恢复该应用;
4.内存优化方法:
(1)当Service完成任务后,尽量停止它,使用IntentService代替Service;
(2)在UI不可见是,释放掉一些只有UI使用的资源,使用onTrimMemory方法释放;关于onTrimMemory()链接
(3)在系统内存紧张时,尽可能多的释放一些非重要资源
(4)避免滥用Bitmap导致的内存浪费
(5)使用针对内存优化过的容器,例如 SparseArray,SparseBooleanArray 和 LongSparseArray,少用枚举常量
(6)避免使用依赖注入框架
(7)使用zip对齐的APK
(8)使用多进程
Android中的内存泄漏:
(1)单例的不正确写法导致内存泄露
首先看错误的写法:
//有内存泄露的问题的单例