android系统从systemserver开始的launcher启动详细流程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
android系统启动流程
——从systemserver开始的launcher
目录
1 概述: (2)
2 systemserver工作内容分析 (4)
2.1 SystemServer类简述 (4)
2.2 ServerThread类简述 (4)
3 ActivityManagerService工作内容分析 (6)
3.1 ActivityManagerService之main (7)
3.1.1创建ActivityManagerService实例 (7)
3.1.2 创建ActivityThread实例,获取全局Context (8)
3.1.3创建ActivityStackSupervisor实例 (10)
3.1.4调用startRunning (10)
3.2 ActivityManagerService之setSystemProcess (11)
3.3. ActivityManagerService之setWindowManager (12)
3.4 ActivityManagerService之systemready (12)
3.4.1 启动所有Persistent属性的APK (13)
3.4.2 启动launcher (14)
4 ActivityStackSupervisor启动launcher (15)
4.1首先回顾一下ActivityStackSupervisor实例的初始化 (15)
4.2 进入ActivityStackSupervisor.resumeTopActivitiesLocked (16)
4.3 进入ActivityStack.resumeTopActivityLocked (16)
4.4 回到ActivityStackSupervisor.resumeHomeActivity。 (17)
4.5 ActivityStackSupervisor.mProbeThread (17)
4.6 ActivityStackSupervisor.mProbeHandler (18)
4.7 回到ActivityManagerService.startHomeActivityLocked (18)
4.8 ActivityStackSupervisor.startHomeActivity (19)
4.9 ActivityStackSupervisor.startActivityUncheckedLocked (20)
4.10 ActivityStack.startActivityLocked (21)
4.11 ActivityStackSupervisor.resumeTopActivitiesLocked (22)
4.12 ActivityStack.resumeTopActivityLocked (22)
4.13 ActivityStackSupervisor.startSpecificActivityLocked (24)
4.14 ActivityStackSupervisor.realStartActivityLocked (24)
4.15 ActivityManagerService.startProcessLocked (25)
5 Process类管理创建activity进程 (27)
5.1 Process.start: (27)
5.2Process.startViaZygote (28)
5.3 zygoteSendArgsAndGetResult和openZygoteSocketIfNeeded (28)
6 ActivityThread线程类分析 (30)
6.1 ActivityThread.main分析 (30)
6.1.1创建了looper对象和本线程绑定。 (30)
6.1.2创建了ActivityThread对象实例 (30)
6.1.3进行attach回调 (31)
6.1.4 ActivityStackSupervisor.attachApplicationLocked (34)
6.1.5 ActivityStackSupervisor. ensureActivitiesVisibleLocked (34)
6.2 ApplicationThread内部类 (35)
6.2.1 ActivityThread.ApplicationThread. scheduleLaunchActivity (35)
6.2.2 ActivityThread.ApplicationThread.scheduleResumeActivity (37)
6.2.3 发出开机完成通知 (38)
7 总结 (40)
7.1 luancher启动流程总结 (40)
7.2 luancher黑屏问题分析 (41)
1 概述:
android系统启动到zygote后,系统就真正进入java世界了;而zygote启动的第一个进程是systemserver.而用户看到的第一个程序是launcher.
本文要分析的正是从systemserver道launcher的启动流程.分析过程涉及到PowerManagerService,ActivityManagerService,PackageManagerService, DisplayManagerService, WindowManagerService , InputManagerService ,ServiceManager 等一系列相关知识,必要的地方会做一些简单分析。这些service的详细分析,在另外的笔记中再做阐述。