大家都知道 Android 是基于 Linux 系统的,而在 Linux 中,所有的进程都是由 init 进程直接或者是间接 fork 出来的,当我开机的时候 init 进程就会 fork 出一个 Android 的第一个新的进程 Zygote, 中文翻译过来要” 受精卵”,一个很有意识的名字。为什么这么说呢,当我们 Zygote 进程跑起来后,Android 为了实现实现资源共用和更快的启动速度,通过 Zygote 进程直接去 fork 出一些子进程,这就是为什么要” 受精卵” 的原因,也就是我们的 app 全部都是基于 Zygote 上的 ,没有 Zygote 就没有我们,当 Zygote 初始化完成之后,首先会 fork 它的第一个子进程 SystemServer, 这个类非常的重要,为什么这么说呢?因为系统里面重要的服务都是在这个进程里面开启的,比如 ActivityManagerService、PackageManagerService、WindowManagerService 等等,有木有觉得似曾相识
评论