Android内存管理机制之一:lowmemory killer
来源:互联网 发布:js延迟一秒 编辑:程序博客网 时间:2024/06/05 01:00
http://blog.csdn.net/rio2012/article/details/6186125
(1)Android是一个多任务系统,也就是说可以同时运行多个程序,这个大家应该很熟悉。一般来说,启动运行一个程序是有一定的时间开销的,因 此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程序时,可以很快的启动。随着系统中保留的程序越来越多,内 存肯定会出现不足,这个时候Android系统开始挥舞屠刀杀程序。这里就有一个很明显的问题,杀谁?
(2)Android系统中杀程序 的这个刽子手被称作"LowMemory Killer",它是在Linux内核中实现的。这里它实现了一个机制,由程序的重要性来决定杀谁。通俗来说,谁不干活,先杀谁。Android将程序的 重要性分成以下几类,按照重要性依次降低的顺序:
其中每个程序都会有一个oom_adj值,这个值越小,程序越重要,被杀的可能性越低。
(3)除了上述程序重要性分类之外,Android系统还维护着另外一张表,这张表是一个对应关系,以N1为例:
这个表是定义了一个对应关系,每一个警戒值对应了一个重要性值,当系统的可用内存低于某个警戒值时,就杀掉所有大于该警戒值对应的重要性值的程序。 比如说,当可用内存小于6144 * 4K = 24MB时,开始杀所有的EMPTY_APP,当可用内存小于5632 * 4K = 22MB时,开始杀所有
的CONTENT_PROVIDER和EMPTY_APP。
(4) alter minfree改的是什么呢,上面这张对应表是由两个文件组成的:
/sys/module/lowmemorykiller/parameters/adj和/sys/module/lowmemorykiller/parameters/minfree。
alter minfreee就是修改/sys/module/lowmemorykiller/parameters/minfree这个文件的,举例来说,如果把最后一项改为32 * 1024,那么当可用内存小于128MB是,就开始杀所有的EMPTY_APP。
- (转)Android内存管理机制之一:lowmemory killer
- Android内存管理机制之一:lowmemory killer
- Android内存管理机制之一:lowmemory killer
- Android内存管理机制之一:lowmemory killer
- Android内存管理机制之一:low memory killer
- android APP开发的内存管理与优化之一 ——LowMemory Killer
- android内存管理机制
- android 低内存管理机制
- Android中的内存管理机制
- Android内存管理机制详解
- Android内存管理机制详解
- Android内存管理机制详解
- Android内存管理机制
- Android内存管理机制详解
- Android内存管理机制
- android内存管理机制
- Android内存管理机制详解
- Android内存管理机制
- Linux运维CentOS系统SVN双备份Shell脚本
- C++unordered_map使用例子
- B-1028
- 位运算求数组中只出现一次的数
- 淘淘商城系列——实现商品详情页面展示
- Android内存管理机制之一:lowmemory killer
- plog库使用总结
- 2017年网易校招算法编程题:优雅的点(PHP版)
- 3371 Connect the Cities(最小生成树)
- Java读写XML代码示例
- 《数据结构学习与实验指导》3-9:队列中的元素排序
- c++中的查找算法
- 208.m1-ViewPager的优化
- can总线延时分析