源码分析之android程序如何启动,activity生命周期如何调用

源码版本28

ActivityThread为android的主线程

程序入口ActivityThread 的main()方法中

《源码分析之android程序如何启动,activity生命周期如何调用》 1

跟进attach方法,继续跟进getService方法,可以发现调用了系统服务,并且给出了一个binder接口如图3

mAppThread为ThreadApplication的一个对象,ThreadApplication为activity的各种状态做了相对应的工作如图4

《源码分析之android程序如何启动,activity生命周期如何调用》 2

《源码分析之android程序如何启动,activity生命周期如何调用》 3

而ApplicationThread中一系列类似于activity中生命周期的方法,跟进sendMessage方法

《源码分析之android程序如何启动,activity生命周期如何调用》 4

《源码分析之android程序如何启动,activity生命周期如何调用》 5

找到handleMessage方法

《源码分析之android程序如何启动,activity生命周期如何调用》 6

Application运行的过程当中,对于Activity的操作,状态转变,其实实际上是通过Handler消息机制来完成的,

Application当中只管去发, 由消息机制负责调用,因为在main方法当中我门的Looper轮训器是一直在进行轮训的

而当我们在加载Activity的时候,当中调用了一个performLaunchActivity()方法,在这个中间我发现了我们onCreate的调用痕迹

《源码分析之android程序如何启动,activity生命周期如何调用》

《源码分析之android程序如何启动,activity生命周期如何调用》

    原文作者:紫苑草
    原文地址: https://www.jianshu.com/p/20b1e05687c2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞