Activity启动三

    技术2025-08-27  10

    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

    Processed: 0.015, SQL: 9