在安卓系统上,应用在没有进程的情况下,应用的启动都是同一个流程:点击app的应用图标,安卓系统会从Zygote进程中fork出一个新的进程分配给该应用,之后会依次创建和初始化Application类、创建MainActivity类、加载主题样式Theme中的windowBackground等属性设置给MainActivity以及配置Activity层级上的一些属性,再inflate布局、当onCreate/onStart/onResume方法都走完了后,最后才执行contentView的measure/layout/draw显示在界面上,所以直到这里,应用的第一次启动才算完成,这时候我们看到的界面也就是所说的第一帧。
应用启动的流程如下:
Application的构造器方法——>attachBaseContext()——>onCreate()——>Activity的构造方法——>onCreate()——> 配置主题中背景等属性——>onStart()——>onResume()——>测量布局绘制显示在界面上。