本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
SystemServer启动
- 创建SystemContex 用于加载系统相关的资源,比如theme,android命名空间下的资源等
- 创建引导服务,安装器Installer服务, AMS就属于引导服务,还有电源管理服务PMS
- 启动核心服务和其他服务,总共得有80多个以上
- AMS启动也分为几个阶段,类似生命周期
AMS启动和初始化
- SystemServer通过startService创建Lifecycle对象,
- Lifecycle里构造方法里通过new创建AMS
- AMS 会创建“android.ui”线程、创建ActiveServices管理activity、创建ActivityStackSupervisor对象管理activity栈
- AMS会创建前台广播和后台广播队列、provider的Map等
- 电量统计服务、进程相关服务
- VrConroller虚拟现实相关
- mActivityConroller
- RecentTask,最近的任务列表
- ClientLifeCycleManager API28之前是没有,用来控制activity的生命周期
- watchDog守护进程(继承自Thread是一个线程)
- 移除所有的应用进程(AMS刚刚启动),启动电池服务