本文讲解从开机到app显示画面的流程,但不分析源码,如果想阅读源码请到参考文章中查阅。
纸上说来终觉浅,建议有时间的小伙伴去我的B站观看视频讲解:Android进阶:手机开机到APP启动中间FrameWork层发生了什么?
本文把这段流程分为三部分:
-
从开机到显示应用列表
-
从点击应用图标到Activity创建成功
-
从Activity创建成功到显示画面
先看流程图:
开机加电后,CPU先执行预设代码、加载ROM中的引导程序Bootloader和Linux内核到RAM内存中去,然后初始化各种软硬件环境、加载驱动程序、挂载根文件系统,执行init进程。
init进程会启动各种系统本地服务,如SM(ServiceManager)、MS(Media Server)、bootanim(开机动画)等,然后init进程会在解析init.rc文件后fork()出Zygoto进程。
Zygote会启动Java虚拟机,