🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
读者可能已经知道,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世界的崩溃,够厉害吧?下面我们就来见识见识这两个重量级人物。