2024年3月27日发(作者:)
android系统启动流程
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 进入TopActivitiesLocked ................................ 16
4.3 进入TopActivityLocked ........................................................ 16
4.4 回到HomeActivity。 ........................................ 17
4.5 Thread ................................................................... 17
4.6 Handler ................................................................. 18
4.7 回到omeActivityLocked ................................... 18
4.8 omeActivity ............................................................ 19
4.9 ctivityUncheckedLocked ................................. 20
4.10 ctivityLocked ............................................................................. 21
1 / 41
android系统启动流程
4.11 TopActivitiesLocked ........................................ 22
4.12 TopActivityLocked ................................................................ 22
4.13 pecificActivityLocked ......................................... 24
4.14 artActivityLocked ................................................ 24
4.15 rocessLocked ....................................................... 25
5 Process类管理创建activity进程 .............................................................................................. 27
5.1 : ..................................................................................................................... 27
iaZygote ................................................................................................... 28
5.3 zygoteSendArgsAndGetResult和 openZygoteSocketIfNeeded .................... 28
6 ActivityThread线程类分析 ......................................................................................................... 30
6.1 分析............................................................................................... 30
6.1.1创建了looper对象和本线程绑定。 ................................................................... 30
6.1.2创建了ActivityThread对象实例 ........................................................................ 30
6.1.3进行attach回调 ..................................................................................................... 31
6.1.4 ApplicationLocked ................................... 34
6.1.5 ActivityStackSupervisor. ensureActivitiesVisibleLocked ......................... 34
6.2 ApplicationThread内部类 ............................................................................................. 35
6.2.1 ationThread. scheduleLaunchActivity ................. 35
6.2.2 leResumeActivity ................ 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的详细分析,在另外的笔
记中再做阐述。
2 / 41


发布评论