android面试(20)-内存管理以及内存泄漏

内存管理

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)单例的不正确写法导致内存泄露

首先看错误的写法:

//有内存泄露的问题的单例
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值