首页»版块 历史内容 历史内容 历史内容 玩了那么久安卓机了,大家都了解安卓内存管理机制吗?

玩了那么久安卓机了,大家都了解安卓内存管理机制吗?

[复制帖子标题和链接]

8250

   发表于 2015-1-17 20:49:29 属地未知 来自:浏览器
首先要知道Android系统是基于Linux 2.6内核开发的开源操作系统(linux是啥都不知道自己去百度吧),而linux系统的内存管理有其独特的动态存储管理机制。不过Android系统对Linux的内存管理机制进行了优化,Linux系统会在进程活动停止后就结束该进程,而Android把这些进程都保留在内存中,直到系统需要更多内存为止。这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次激活这些进程时,提升了进程的启动速度。

如果你懂java,就会更容易理解Android系统的内存管理机制。与java的*回收机制类似,系统有一个规则来回收内存。进行内存调度有个阈值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。Android系统有六类进程:前台进程、可见进程、次要服务、后台进程、内容供应节点、空进程。对于高手而言可以用MinFreeManager之类的软件进行进程管理,分别为六类进程设定不同的阈值来操纵系统的内存分配机制。不过对于一般用户而言,Android系统默认的分配机制已经可以满足使用需要,因此也不需要再去调整。
玩了那么久安卓机了,大家都了解安卓内存管理机制吗?
安卓的内存管理机制:
1.系统会对进程的重要性进行评估,并将重要性以“oom_adj”这个数值表示出来,
赋予各个进程;(系统会根据“oom_adj”来判断需要结束哪些进程,一般来说,“oom_adj”的值越大,该进程被系统选中终止的可能就越高)
2.前台程序的“oom_adj”值为0,这意味着它不会被系统终止,
一旦它不可访问后,会获得个更高的“oom_adj”,我们推测“oom_adj”的值是根据软件在LRU列表中的位置所决定的;
3.Android不同于Linux,有一套自己独特的进程管理模块,这个模块有更强的可定制性,
可根据“oom_adj”值的范围来决定进程管理策略,比如可以设定“当内存小于X时,结束“oom_adj”大于Y的进程”。这给了进程管理脚本的编写以更多的选择。
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表