android系统启动流程
——从systemserver开始的launcher
1 概述:
2 systemserver工作内容分析
2.1 SystemServer类简述
2.2 ServerThread类简述
3 ActivityManagerService工作内容分析
3.1 ActivityManagerService之main
3.1.1创建ActivityManagerService实例
3.1.2 创建ActivityThread实例,获取全局Context
3.1.3创建ActivityStackSupervisor实例
3.1.4调用startRunning
3.2 ActivityManagerService之setSystemProcess
3.3. ActivityManagerService之setWindowManager
3.4 ActivityManagerService之systemready
3.4.1 启动所有Persistent属性的APK
3.4.2 启动launcher
4 ActivityStackSupervisor启动launcher
4.1首先回顾一下ActivityStackSupervisor实例的初始化
4.2 进入ActivityStackSupervisor.resumeTopActivitiesL
4.3 进入ActivityStack.resumeTopActivityLocked
4.4 回到ActivityStackSupervisor.resumeHomeActivity。
4.5 ActivityStackSupervisor.mProbeThread
4.6 ActivityStackSupervisor.mProbeHandler
4.7 回到ActivityManagerService.startHomeActivityLock
4.8 ActivityStackSupervisor.startHomeActivity
4.9 ActivityStackSupervisor.startActivityUnchecke
4.10 ActivityStack.startActivityLocked
4.11 ActivityStackSupervisor.resumeTopActivitiesLo
4.12 ActivityStack.resumeTopActivityLocked
4.13 ActivityStackSupervisor.startSpecificActivity
4.14 ActivityStackSupervisor.realStartActivityLock
4.15 ActivityManagerService.startProcessLocked
5 Process类管理创建activity进程
5.1 Process.start:
5.2 Process.startViaZygote
5.3 zygoteSendArgsAndGetResult和 openZygoteSocketIf
6 ActivityThread线程类分析
6.1 ActivityThread.main分析
6.1.1创建了looper对象和本线程绑定。
6.1.2创建了ActivityThread对象实例
6.1.3进行attach回调
6.1.4 ActivityStackSupervisor.attachApplicationLoc
6.1.5 ActivityStackSupervisor. ensureActivitiesVis
6.2 ApplicationThread内部类
6.2.1 ActivityThread.ApplicationThread. scheduleLa
6.2.2 ActivityThread.ApplicationThread.scheduleRes
6.2.3 发出开机完成通知
7 总结
7.1 luancher启动流程总结
7.2集采项目速影luancher黑屏问题分析