位置: 编程技术 - 正文
推荐整理分享ActivityManagerService (二),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
文章出处: (一)
继续总结:
ActivityManagerService.setSystemProcess();
当初android 查看内存使用情况提到了这个函数。1)注册AMS
在SystemServer中会看到ServiceManager中会注册很多service,可是轮到AMS的时候直接调用的main,到这里才看到了注册。注意addService时候的第三个参数是true,一般默认是false。
2)注册procstats、meminfo、gfxinfo、dbinfo、cpuinfo、permission
3)getApplicationInfo
首先getPackageManager得到是在SystemServer中初始化的PM,这里的ApplicationInfo应该是在AMS.main的时候实例化LoadedApk时候new出来的?不太确定。
4)installSystemApplicationInfo
跟之前AMS.main中提到的getSystemContext一样,就是将ApplicationInfo绑定到mSystemContext
5)newProcessRecordLockedProcessRecord记录了当前ApplicationInfo的uid号、userId、processName、以及进程优先级等,并且在pkgList保存了所有在当前进程中的package信息。具体的ProcessRecord后面继续说明。6)app.persistent = true;一直保持这个应用运行,应用是不会被随便kill的。
7)app.pid = MY_PID;
应用的pid应该是system_server的pid。
8)app.makeActive(mSystemThread.getApplicationThread(), mSelf.mProcessStats);
先来看一下第一个参数ApplicationThread:
在ActivityThread中定义了一个常量mAppThread,也就是说每实例化一个ActivityThread,就会跟这有个ApplicationThread。这里的ApplicationThread也是AMS中的关键:四大组件之间的连接这里基本都涉及到了。对于AMS中的四大组件的详细串联过程,后期在《ActivityManagerService 详解》中会继续补充。回到之前的makeActive函数中,显然了这里的 _thread不是为null。之前ProcessRecord构造函数中并没有初始化thread,所以,这里thread是null的。注意这里的变量baseProcessTracker,ProcessRecord很多地方会用到这个tracker:刚开始的时候肯定是null,所以初始化就在这里:这里的mProcessStats是在AMS.main中构造函数里面初始化过。这里会构造PackageState和ProcessState,并分别添加到mPackages和mProcesses数组中,并将ProcessState添加到PackageState的mProcesses数组中,从这里可以看到,一个Package可以运行在几个process里面,通过一个process也可以运行几个package。下面是上述几个类的结构图:最后将当前ProcessRecord加入到mProcessNames和mPidsSelfLocked数据结构当中。updateLruProcessLocked用于调整系统优先级,updateOomAdjLocked用于low memory killer,基本上ProcessRecord是没看懂,后期继续研究补充。android寻找最适合资源过程 Whenyourequestaresourceforwhichyouprovidealternatives,Androidselectswhichalternativeresourcetouseatruntime,dependingonthecurrentdeviceconfiguration.TodemonstratehowAndroidselectsanalternativeresource,
ActivityManagerService (三) 文章出处:
第一章,listview的简易用法(Android) 这篇文章主要是练习了安卓listview的arrayadapter和baseadapter的简单填充。1.arrayadapter填充布局:RelativeLayoutxmlns:android=
标签: ActivityManagerService (二)
本文链接地址:https://www.jiuchutong.com/biancheng/385959.html 转载请保留说明!友情链接: 武汉网站建设