《Android 中LMK机制分析》

《Android 中LMK机制分析》

ID:38093533

大小:71.98 KB

页数:7页

时间:2019-06-06

《Android 中LMK机制分析》_第1页
《Android 中LMK机制分析》_第2页
《Android 中LMK机制分析》_第3页
《Android 中LMK机制分析》_第4页
《Android 中LMK机制分析》_第5页
资源描述:

《《Android 中LMK机制分析》》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Android中LMK机制分析一、Android进程管理Android是一个多任务系统,当启动一个程序时会消耗一定的时间。为了加快运行速度,当退出一个程序时,Android并不会立即杀掉它。这样当用户重新运行该程序时,可以很快地启动。但随着系统中保留的程序越来越多,内存肯定会出现不足,此时就有了Android的低内存管理(LowMemoryKiller)机制。Android根据进程的重要性,将进程分为以下几类:①前台进程(forgroundprocess),用户正在做的事情相关的进程,具体包括:l正在和用

2、户交互的Activty,即该Activity的onResume()已经执行过。l包含一个service,该service正在服务于和用户交互的Activity。l包含一个service,该service正在执行onCreate(),或者onStart(),onDestroy()。l包含一个BroadcastReceiver,正在执行onRceive()函数②可见的进程(visibleprocess),尽管没有和用户交互,但是却可以影响用户所能看得到的内容。l尽管没有包含和用户交互的Activity,但是用

3、户却可以看得见该Activity的窗口,比如一个Activity上面弹出一个对话框的情况l包含一个service,该service服务于可见的Activity。③服务进程(serviceproces),凡是使用startService()所启动的service对象,其所在的进程都称之为服务进程。当然,如果该service满足上面两个优先级中的条件,则会上升为相应的优先级④后台进程(backgroundprocess),不满足以上任何一个条件的进程,同时该进程中还包含一些不可见的Activity,这些进程不

4、影响正在和用户交互的Activity。⑤空进程(emptyprocess),进程中不包含任何component,包括Activity、service、receiver对象。之所以还保留这些进程的原因是为了减少重新创建进程的开销。以上每个进程都会有个oom_adj值。二、oom_adj的值是如何赋予的进程的adj类型,可以在ActivityManagerService中清楚的看到:staticfinalintEMPTY_APP_ADJ;staticfinalintHIDDEN_APP_MAX_ADJ;sta

5、ticfinalintHIDDEN_APP_MIN_ADJ;staticfinalintHOME_APP_ADJ;staticfinalintBACKUP_APP_ADJ;staticfinalintSECONDARY_SERVER_ADJ;staticfinalintHEAVY_WEIGHT_APP_ADJ;staticfinalintPERCEPTIBLE_APP_ADJ;staticfinalintVISIBLE_APP_ADJ;staticfinalintFOREGROUND_APP_ADJ;st

6、aticfinalintCORE_SERVER_ADJ=-12;staticfinalintSYSTEM_ADJ=-16;ActivityManagerService定义各种进程的oom_adj,CORE_SERVER_ADJ代表一些核心的服务的omm_ad,数值为-12,这类进程永远也不会被杀死。其他未赋值的都在static块中进行了初始化,是通过system/rootdir/init.rc进行配置的:在init.rc中:#Definetheoom_adjvaluesfortheclassesofpro

7、cessesthatcanbe#killedbythekernel.TheseareusedinActivityManagerService.setpropro.FOREGROUND_APP_ADJ0setpropro.VISIBLE_APP_ADJ1setpropro.SECONDARY_SERVER_ADJ2setpropro.HIDDEN_APP_MIN_ADJ7setpropro.CONTENT_PROVIDER_ADJ14setpropro.EMPTY_APP_ADJ15#Definetheme

8、morythresholdsatwhichtheaboveprocessclasseswill#bekilled.Thesenumbersareinpages(4k).setpropro.FOREGROUND_APP_MEM1536setpropro.VISIBLE_APP_MEM2048setpropro.SECONDARY_SERVER_MEM4096setpropro.HIDDEN_APP_MEM5120setpropr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。