Android应用程序的启动流程
2021-03-03 10:19:17 15 举报
Android Framework开机后系统执行的流程
作者其他创作
大纲/内容
应用程序进程
Instrumentation#ActivityResult
创建成功
应用程序进程创建过程
Actiivty
抛出异常Zygote.MethodAndArgsCaller
inputStream
socket
Launcher
Socket阻塞状态
startSpecificActivityLocked
zygoteSendArgsAndGetResult
new PhoneWindow
Launcher进程
ActivityStackSupervisor
startAppShortcutOrInfoActivity
startActivityLocked
attachApplicationLocked
onCreate
Process
startActivity
startViaZygote
返回数据对象
ActivityThread
Application
应用程序启动过程
start
onStart
ActivityThread#ApplicationThread
ActivityStack
startProcessLocked
红色的连接线表示跨进程
onResume
main
流程线
main函数
Activity
startActivityUnchecked
startActivityForResult
zygoteServer
fock子进程
attach
realStartActivityLocked
子进程初始化
中断
ActivityStarter
attachApplication
Container
execStartActivity
addProcessNameLocked
ActivityThread通过PathClassLoader.loadClass.newInstance类加载反射得到一个Activity对象
进入阻塞状态返回zygote#main函数进入阻塞
scheduleLaunchActivity
PhoneWindow
startActivityMayWait
bindApplication
startActivitySafely
resumeTopActivityUncheckedLocked
ZygoteProcess
performLaunchActivity
BIND_APPLICATION
Zygote进程
onClickAppShortcut
newProcessRecordLocked
ActivityThread#H
----(详情见zygote孵化应用程序进程专题)
点击桌面快捷方式开始
ActivityManagerService
启动应用程序进程过程
LAUNCH_ACTIVITY
process
startActivityAsUser
resumeTopActivityInnerLocked
AMS
mProcessNames.put
handleBindApplication
SystemServer进程
图中红色生命线为单独进程
handleLaunchActivity
0 条评论
下一页