系统内核
Android 是运行于Linux kernel之上,但并不是
GNU/Linux。
因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括
Cairo、
X11、
Alsa、
FFmpeg、
GTK、
Pango及
Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以
opencore取代
FFmpeg等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制包括安全(
Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),
驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。