android系统从systemserver开始的launcher启动详细流程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的详细分析,在另外的笔记中再做阐述。

相关文档
最新文档