引自: http://www.bangchui.org/read.php?tid=7966
未完,请参考原网址
Android 启动过程.pdf
一. init启动zygote进程
这一切都始于init
就像大多数类linux系统启动一样,由bootloader加载内核,然后启动init进程。
然后init启动了一些linux的守护进程。其中包括:
•用来管理USB连接的USB守护进程(usbd)
•用来管理Android adb连接的守护进程adbd)
•用来管理调试过程的调试器守护程序(debuggerd)
•用于打电话及相关功能的后台进程 (rild)
之后init进程启动zygote进程:
•一个新生的进程,初始化一个Dalvik虚拟机实例
•加载类并且监听请求(收到请求后生成新的虚拟机实)
•根据请求创建虚拟机实例的托管进程
•用Copy-on-write技术最大限度地复用
一. init启动zygote进程
这一切都始于init
就像大多数类linux系统启动一样,由bootloader加载内核,然后启动init进程。
然后init启动了一些linux的守护进程。其中包括:
•用来管理USB连接的USB守护进程(usbd)
•用来管理Android adb连接的守护进程adbd)
•用来管理调试过程的调试器守护程序(debuggerd)
•用于打电话及相关功能的后台进程 (rild)
之后init进程启动zygote进程:
•一个新生的进程,初始化一个Dalvik虚拟机实例
•加载类并且监听请求(收到请求后生成新的虚拟机实)
•根据请求创建虚拟机实例的托管进程
•用Copy-on-write技术最大限度地复用
这一切都始于init
就像大多数类linux系统启动一样,由bootloader加载内核,然后启动init进程。

然后init启动了一些linux的守护进程。其中包括:
•用来管理USB连接的USB守护进程(usbd)
•用来管理Android adb连接的守护进程adbd)
•用来管理调试过程的调试器守护程序(debuggerd)
•用于打电话及相关功能的后台进程 (rild)

之后init进程启动zygote进程:
•一个新生的进程,初始化一个Dalvik虚拟机实例
•加载类并且监听请求(收到请求后生成新的虚拟机实)
•根据请求创建虚拟机实例的托管进程
•用Copy-on-write技术最大限度地复用
