Android内存管理机制

1、对比Windows内存

Linux:充分利用内存,将一些程序调用过的硬盘数据读入内存,提升访问性能。

Window:需要内存时,才为程序分配。

 

2、android内存意义

有自身的调度策略。

 

3、android 进程种类

前台进程:目前在屏幕上显示的进程

可见进程:不在前台,但用户可见。(widget,输入法)

桌面进程:launcher

次要服务:service有在运行

后台进程:前台进程按home键后,变为后台进程

内容提供者(content provider)

空进程:没有任何在内运行的进程

home键:使进程从前台进程变为后台进程

back键:使进程从前台进程变成空进程

 

4、LMK(Low Memory Killer)

执行条件:剩余内存小于应用定义的APP_MEM值时,开始查看adj值列表,kill相应程序。

判断系统是否需要lmk-》找出oom_adj大于min_adj的占用内存最大的进程-》发送SIGKILL信息,杀掉该进程

 

常用内存回收算法:

1、引用计数回收法(Reference Counting):创建一个新对象,或其他指针指向该对象,引用计数累加一次,移除则递减一次。当引用计数降为0时,删除对象并回收内存。

2、标注并清理(Mark and Sweep GC)

 

3、拷贝(Copying GC)

4、逐代回收(Generational GC)

 

Android系统采用的是标注并删除和拷贝GC

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值