简述一下本文的适合人群:具有一定安卓基础的人,如果刚开始起步或者基础不是很牢固的,请先巩固基础,再来看这篇文章,本文还是具有一定难度的。
学习意义
学习了本文之后能够让我们比较熟练的掌握activity和framework的联系,更能够让我们了解安卓内部的一些实现的机制,等我们在制作开源框架的时候能够将我们所学的只是使用的非常的得心应手,在解决一些实际问题的时候更会非常的熟练。
收获
activity的本质是什么,activity的各种生命周期,和在framework层,是如何加载,回调,我们的各种生命周期的。
ActivityThread(Activity源码分析)
ActivityThread:并不是一个线程,只是一个java类。
ActivityThread是如何被调用的:在启动一个app应用进程的时候,在主线程所调用的一个类,本身并不是一个线程类,而是在主线程的线程类里面运行。
ActivityTheread启动完成后会通知AMS(ActivityServiceManger)。
实现所需要的类
ApplicationThread
ActivityClientRecord
ActivityRecord
Context是什么
Context是一个接口,定义了一个规则,Context的具体实现是通过COntextIml,ContextWrapper这两个实现类来实现的。
Activity和其他的类有什么区别
由framework进行了一个统一的处理。
Activity的生命周期的方法是什么时候回调的
调用Instrumentation创建activity的一个辅助类,ActivityManagerNative一个远程的管理类,H类是继承自handler类的,通过case来处理消息的。
//TODO