https://note.youdao.com/s/OuSE1jy2
我们应用的UI结构如上图所示,主要包含了3要素,Activity、Window、View。通过Android studio的Layout Inspector也可以看到:
所有的View都是通过window显示出来的,window则是通过wms来管理的。
https://note.youdao.com/s/Lai9zUGe
APP启动分析:
1、ActivityThread.main()是在JNI层通过反射调用。
2、一个进程如果一直或者就必须要进入死循环,我们看main函数中的最后调用了Looper.loop(),这个方法就是一直循环
3、进程间都是通过binder进行通信,通过上面的图可以看到,Launcher启动app是通过AMS来启动的,AMS和APP通信就必须要拿到APP的Binder,所以每个app在启动时都会注册自己的binder到AMS中,具体代码如下:
ActivityThread.main()
其中mAppThread是一个stub:
mgr.attachApplication 中的mgr就是AMS,继续跟进方法:
上一篇:数据链路层