Android系统的启动过程可以简单地总结为以下几个流程:
加载BootLoader -> 初始化内核 -> 启动init进程 -> init进程fork出Zygote(孵化器)进程 -> Zygote进程fork出SystemServer进程
以下是流程图(来自网络):
当SystemServer初始化完成之后,Zygote进程fork出系统桌面进程(Launcher)。其实Launcher也是一个app,它继承自Activity。应用程序Launcher在启动过程中,PackageManagerService会返回系统中已经安装的应用程序的信息,并将这些信息封装成一个快捷图标列表显示在系统屏幕上,这样用户可以通过点击这些快捷图标来启动相应的应用程序。