ANDROID内存管理原理.docx

ANDROID内存管理原理.docx

ID:50989529

大小:38.23 KB

页数:6页

时间:2020-03-08

ANDROID内存管理原理.docx_第1页
ANDROID内存管理原理.docx_第2页
ANDROID内存管理原理.docx_第3页
ANDROID内存管理原理.docx_第4页
ANDROID内存管理原理.docx_第5页
资源描述:

《ANDROID内存管理原理.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、ANDROID内存管理原理我们一直听说Android是一个多进程操作系统,那么它是如何处理每一个进程呢?:s/b*e.z1u  I2z3l6q(^3q大家可能已经发现Android自身并没有所谓的关闭进程的说法每当我们要退出一个进程回到桌面/打开另一个程序的时候我们只能按"返回键".而当我们按下"返回键"后,该进程并没有真正的关闭,仍然保存在内存中.这样在下次调用的时候可以更快的打开该程序.要想真正的关闭一个已打开的进程,除了用第三方软件(例如advancedtaskmanager)外,还有一个,那就是当Android

2、系统认为当时已经没有足够的内存来运行新的进程,需要关闭一些虽然已经开着,但是没有用了(具体怎样一个进程才会被Android系统认为是"没有用"下面就要讨论到)的进程.而下面要研究的就是这个Android内部的lowmemorykiller.ActivityManagerService.java记录着每一个进程的优先级.一个进程的oom_adj值也就代表了它的优先级.oom_adj值越高代表该进程优先级越低.一个正在使用的进程的oom_adj值为0,一旦我们按下返回键,这个进程就会得到一个更高的oom_adj值(更低的优

3、先级).具体多少取决于该进程在LRU(lastrecentlyused)list的位置.(未证实)具体的细节保存在Android源文件drivers/misc/lowmemorykiller.c里.Android将进程分为6个等级,它们按优先级顺序由高到低依次是:.R1.FOREGROUND_APP:1]#`;q%w:N'A5j7g  Thisistheprocessrunningthecurrentforegroundapp.  We'dreallyrathernotkillit!r用户正在使用的程序.这个设的太高,

4、用户看到得就会是一个正在使用的程序莫名其妙的消失了,然后自动回到桌面..(因为它被系统kill了..)所以最好别动它..'~9H!q9J,F!l"A  2.VISIBLE_APP::_%_)e0I  ?/V(`6K$zThisisaprocessonlyhostingactivitiesthatarevisibletotheuser,sowe'dprefertheydon'tdisappear.-K$[6],g'z6t  X跟FOREGROUND_APP类似,用户正在使用/看得到.它们的区别就是VISIBLE_APP可

5、能不是用户focus的程序,但是用户看得到,或者没有覆盖到整个屏幕,只有屏幕的一部分.所以可以适当的比FOREGROUND_APP高一点.#m7?(S9W2k1`)`*X:w5F'C 3.SECONDARY_SERVER:8p.g.G(Q2F Thisisaprocessholdingasecondaryserver--killingitwillnothavemuchofanimpactasfarastheuserisconcerned.5F)H!B!M;~!s;N2i  所有应用的service.系统级的servic

6、e比如PhoneService不属于这类,它们是绝不会被Android结束掉的.所以这个可以适当的设高一点点~注意,HOME(SenseUI)也包括在这里因此还是别设的太高.要不每次返回桌面都得等它重新load,特别是widget多的..,

7、(Q,W3s/F3}%Y-k-i,H;v/f'f3P*f&l4.HIDDEN_APP:.TThisisaprocessonlyhostingactivitiesthatarenotvisible,soitcanbekilledwithoutanydisruption.;o"A5Y-

8、Q4!V)r;}  本来属于1或者2的程序,在用户按了"back"或者"home"后,程序本身看不到了,但是其实还在运行的程序,它们就属于HIDDEN_APP了.干掉没什么影响..不过要了解并不是所有属于这一类的就应该马上结束掉,像pushmail,locale,闹钟,等都属于这一类.因此还是别设的过高.真正"应该"一点返回键就退出的程序(真正没用的程序)在下面.#^!T.q+b-M;g$g9?5.CONTENT_PROVIDER:Thisisaprocesswithacontentproviderthatdoesn

9、othaveanyclientsattachedtoit.  Ifitdidhaveanyclients,itsadjustmentwouldbetheoneforthehighest-priorityofthoseprocesses.#e0G7`!y4p5,6的区别具体不太了解..这个也是用处不大,但是还是比EMPTY_APP稍

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

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

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