Android系统启动流程、应用启动流程、Activity启动流程
一、Android系统的启动流程
1、开机,系统加电,执行BootLoader。BootLoader负责初始化软件运行需要的最小硬件环境,最后加载内核到内存
2、内核加载进内存后,首先进入内核引导阶段,在引导阶段的最后,调用start_kernel进入内核启动阶段。start_kernel最终启动用户空间的init程序
3、init程序负责解析init.rc配置文件,开启系统守护进程。两个最重要的守护进程是zygote进程和ServiceManager进程,zygote进程是Android启动的第一个Dalvik虚拟机,ServiceManager是Binder通讯的基础
4、zygote虚拟机启动子进程system_server,在system_server中开启了系统核心服务,并将系统服务添加到ServiceManager中,然后系统进入SystemReady状态。
5、在SystemReady状态,ActivityManagerService与zygote中的socket进行通信,通过zygote启动Launcher应用,进入系统桌面。
二、Android应用的启动流程
1、用户按下桌面上的App图标后,Launcher进程会将启动新的主活动的请求以binder的方式发送给AMS服务
2、AMS收到请求后,交付给A