问题1:Activity是如何显示到界面上的?
分解问题
- Activity的是如何创建的?
Activity的创建
Activity通过onCreate开始生命周期,通过onDestory结束生命周期。
zygote在响应创建进程请求后会fork一个子进程,这个子进程就是App对应的进程,该进程的入口函数位于ActivityThread类的main函数。main函数主要是为了创建主线程的消息队列
public static void main(String[] args) {
...
Looper.prepareMainLooper();
Looper.loop();
...
}
ActivityThread中handleLanunchActivity函数就是创建Activity的地方
//创建Activity
final Activity a = performLaunchActivity(r, customIntent);