面试小结
高频面试
Activity的启动过程分为两种,一种是根Activity的启动过程,另一种是普通Activity的启动过程
分三个部分:
1、Launcher 请求AMS过程
2、AMS到ApplicationThread的调用过程
3、ActivityThread 启动 Activity
//#################################分割线 #################################################
1、Launcher 请求AMS过程时序图
注意:Android8.0 之前并没有采用AIDL,而是采用了类似AIDL的形式,用AMS的代理对象ActivityManagerProxy 来与AMS进行进程间通信,Android 8.0去除ActivityManagerNative的内部类ActivityManagerProxy,代替它的是IActivityManager,它是AMS在本地的代理。
//#################################分割线 #################################################
2、AMS到ApplicationThread的调用过程时序图
//#################################分割线 #################################################
activity任务栈其实是一个瞎想的模型,并不真实存在
//#################################分割线 #################################################
AMS与应用程序进程通信
//#################################分割线 #################################################