Activiity跳转startActivity源码分析Activity启动流程(下)

调用ActivityThread子类ClientTranslationHandler的scheduleTranslation
Activiity跳转startActivity源码分析Activity启动流程(下)_第1张图片
注意上图有个sendMessage的
Activiity跳转startActivity源码分析Activity启动流程(下)_第2张图片接着会执行translacationExecutor的execute方法。
Activiity跳转startActivity源码分析Activity启动流程(下)_第3张图片都会走cycleToPath方法
Activiity跳转startActivity源码分析Activity启动流程(下)_第4张图片cycleToPath方法对应的performLifecycleSequence 调用Actvitiy各个生命周期。
Activiity跳转startActivity源码分析Activity启动流程(下)_第5张图片然后是第二种情况,新启动一个App应用的Activity:调用了AMS的.startProcessLocked方法

Activiity跳转startActivity源码分析Activity启动流程(下)_第6张图片
调用了自己的startProcess方法Activiity跳转startActivity源码分析Activity启动流程(下)_第7张图片然后调用了 Process.start方法,开启一个进程。
Activiity跳转startActivity源码分析Activity启动流程(下)_第8张图片
zygoteProcess.start开始工作

Activiity跳转startActivity源码分析Activity启动流程(下)_第9张图片
最终会调用到zygoteSendArgsAndGetResult(openZygoteSocketIfNeeded(abi), argsForZygote)这行代码,这行代码主要用来打开Socket和Zygote进程通信,然后向Zygote进程发送参数,获取结果。这样Zygote进程就会fork出一个应用进程,然后执行应用进程的入口函数也就是我们熟悉的ActivityThread.main()函数。
Activiity跳转startActivity源码分析Activity启动流程(下)_第10张图片Activiity跳转startActivity源码分析Activity启动流程(下)_第11张图片

Activiity跳转startActivity源码分析Activity启动流程(下)_第12张图片
然后会接着调用attach方法

Activiity跳转startActivity源码分析Activity启动流程(下)_第13张图片
这样就会调用 AMS的attachApplicationActiviity跳转startActivity源码分析Activity启动流程(下)_第14张图片最终会调用 1.ActivityThread applicationthread的bindApplication(然后我们进入bindApplication细节看看)
Activiity跳转startActivity源码分析Activity启动流程(下)_第15张图片
Activiity跳转startActivity源码分析Activity启动流程(下)_第16张图片bindApplication方法会sendMessage 一个H.BIND_APPLICATION
Activiity跳转startActivity源码分析Activity启动流程(下)_第17张图片
那它会到handleBindApplication方法里面
Activiity跳转startActivity源码分析Activity启动流程(下)_第18张图片然后就是application的创建和oncreate方法的调用
Activiity跳转startActivity源码分析Activity启动流程(下)_第19张图片2.还有他还调用了ActivityStackSupervisor的 attachApplicationLocked

Activiity跳转startActivity源码分析Activity启动流程(下)_第20张图片我们终于又看到了realStartActivityLocked,然后就和我们之前分析的realStartActivityLocked完后走加载activity一样了。
Activiity跳转startActivity源码分析Activity启动流程(下)_第21张图片

你可能感兴趣的:(源码解析,android,Actviity,源码)