Android开发之从源码深入Activity
很多人提到Activity就知道其7大生命周期,以及各个方法的使用,但是Activity到底是怎么工作的呢?
本篇文章带你学习Activity到底是什么。
Activity相关Framework类
Context是什么?
Context在我们的Android开发之深入Context文章中已经介绍过
ActivityThread是什么?
ActivityThread不是一个线程,是应用的主线程,在Activity中有个
ActivityThread mMainThread;
ActivityThread有个main方法
|
|
- ApplicationThread?
负责与AMS进行通信的一个帮助类
在ActivityThread中作为一个成员变量进行初始化
|
|
- ActivityClientRecord
一个记录类,客户端负责记录Activity的各种信息
- ActivityRecord
ActivityManagerService端负责记录每个注册过来的Activity的信息
Activity与其他类的区别
Activity作为整体框架,控制界面,有其生命周期,但是其生命周期的回调等都是由Framework控制
如果从本质上看,与普通的类没什么区别
Activity的生命方法是什么时候回调的
关键点:
1.Instrumentation (生命周期的管理,还可以启动Activity,创建Application)
2.ActivityManagerNative AMS的远程代理
3.ActivityThread中的final H mH = new H();这个handler类
|
|
从上面我们看出Instrumentation是负责回掉activity生命周期的工具类,而ActivityThread是控制着这些执行的类。
其实代码继续跟下去,最终会发现,我们的应用无非是在由前台的ActivityThread,ContextImpl,后台的ActivityManagerService,想要显示到界面上最后都是拿到WindowManager设置参数后addView来干的。
谢谢大家阅读,如有帮助,来个喜欢或者关注吧!
本文作者:Anderson/Jerey_Jobs
简书地址:Anderson大码渣
github地址:Jerey_Jobs