位置: 编程技术 - 正文
推荐整理分享ActivityManagerService 启动,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
文章出处: android SystemServer详解分析了一下systemserver的启动过程,虽然分析下来很多繁琐,可以systemserver却是android启动的第一步,很多service都是在这个进程中启动,这些才是组成android的关键,AMS可以说是android应用的最关键的一个service,传说中的android四大组件就是用它来控制的。我根据源码做一些分析,不足应该很多,希望大神能多指点。
1、AMS最开始涉及到是在systemserver中:
注意code中的注释。
1)AThread
这个是AMS中的static class,为AMS创建了一个thread,区别去system_server进程的main thread,然后为AMS创建一个Looper,然后调用Looper.loop(); 另一个目的是实例化一个AMS。
构造函数就不详细的列出来,可以看一下AMS.java的source code。
一些变量需要注意,mBroadcastQueues(mFgBroadcastQueue、mBgBroadcastQueue)、mServices、mProviderMap四大组件三个在这里出现了,另外一个后期介绍。另外还有其他变量,mBatteryStatsService、mProcessStats、mUsageStatsService、mAppOpsService、mGrantFile、mStartedUsers、mCompatModePackages、mProcessCpuThread等等。
从code看,是在/data/system/下,创建了一些文件来管理android系统一些状态,例如batterystats.bin就是电池状态,接着procstats管理进程的,appops.xml就是app 权限相关的等等,后期会做详细的分析。
2)ActivityThread.systemMain()
主要是ActivityThread.attach():
(1)android.ddm.DdmHandleAppName.setAppName("system_process", UserHandle.myUserId());ddm是Dalvik Debug Monitor缩写,具体干嘛的不清楚,谁指点一下哦?
(2)Instrumentation类
(3)context
context第一次真正出现应该就是这里了:
记一次内存优化的分享 出处:记一次内存优化的分享公司游戏已经进行到最后一个阶段了,经过最后一次引擎升级之后使用的是3.3的版本。以前产品定位的目标是只需要兼容1G
我决定放弃Android开发 很多同学咨询过同样的一个问题,该问题也是最备受争议的问题,那就是到底是选择Android还是选择JavaEE。下面发表一些本人的看法。Android属于一个特有
3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例 最近用LibSVM做分类实验,发现网上的资料大都是关于SVM基本原理和怎么用终端命令行使用svm-train,svm-predict等几个程序,这些其实在README文件中已经讲得
友情链接: 武汉网站建设