4.1 概述
读者可能已经知道,Android系统存在着两个完全不同的世界:
Java世界,Google提供的SDK主要就是针对这个世界的。在这个世界中运行的程序都是基于Dalvik虚拟机的Java程序。
Native世界,也就是用Native语言C或C++开发的程序,它们组成了Native世界。初次接触Android的人可能会有如下几个疑问:
Android是基于Linux内核构建的,那么最早存在的肯定是Native世界,可Java世界是什么时候创建的呢?
我们都知道,程序运行时一定要有一个进程,但是我们在编写Activity、Service的时候却极少接触到“进程”这一概念(这是Google有意为之),但这些Activity或Service却又不能脱离“进程”而存在。那么,这个“进程”是怎么创建和运行的呢?这是一个值得琢磨的问题。
在程序中,我们经常使用系统的Service,那么,这些Service在哪里呢?
这些问题的答案都与我们本章的两位主人公zygote和system_server有关。zygote这个词的中文意思是“受精卵”,它和Android系统中的Java世界有着重要关系。而system_server则“人如其名”,系统中重要的Service都驻留于Java世界中。
zygote和system_server这两个进程分别是Java世界的半边天,任何一个进程的死亡,都会导致Java世界崩溃,够厉害吧?下面我们就来见识见识这两个重量级人物。