1、application初始化后就要真正的启动activity了

2、realStartActivityLocked


3、AMS所在进程调用 ActivityThread中的Stub实体对象中的scheduleLaunchActivity方法


4、处理消息

5、加载类

6、看到ClassLoader是一阵狂喜的,因为项目中用到了Replugin插件化,这里hook了mClassLoader,加载插件中的类也就一清二楚来了,因为校验已经完成,加载哪个类就生成哪个类对象

7、activity执行attach方法,初始化成员变量


8、执行onCreate方法


9、onCreate之后进入onStart生命周期,注意stop = false

10、放入mActivities,
![]()

11、进入onResume生命周期


12、回调activity中的方法

13、performRestart()不执行

14、执行onResume

15、activity运行后,启动者要进入onStop生命周期,加入Idler

16、Idler的存放
![]()

17、Idler执行的优先级

18、从上图看idler只执行一次,且当前消息队列为空或者是消息均未到达执行事件点即无执行的消息是执行,执行代码如下图

19、AMS中的方法

20、activityIdleInternalLocked

21、执行stop

22、scheduleStopActivity

23、执行stop




本文深入解析了Android中Activity从初始化到完全启动的全过程,包括Application初始化、ActivityThread调度、类加载、成员变量初始化、生命周期回调等关键步骤。通过剖析源码,揭示了Replugin插件化如何影响类加载机制。
1102

被折叠的 条评论
为什么被折叠?



