上一篇:ActivityThread的main方法在哪里被调用的?
按代码实际发生的执行顺序,如果我们从最后结果(ActivityThread.main执行)开始,逆向(反推)一步一步追溯回最初的起点,整个过程是这样的:
第 1 步(逆向起点):ActivityThread.main()正在被执行
- 发生的事情:UI 线程的主 Loop 开启(
Looper.loop()),App 界面准备绘制。 - 逆向提问:谁直接调用了
ActivityThread.main()? - 追溯答案:是
Zygote.MethodAndArgsCaller这个类的run()方法。
// Zygote.java 内部类 MethodAndArgsCallerpublic