Linux内核层:包含Linux内核和一些驱动模块(如USB、Bluetooth、Camera、WiFi、Audio)。
Libraries层:提供动态库(也叫共享库)、Android运行时库、Dalvik虚拟机等,大部分都是用C或C++编写,可看成Native层。
Framework层:这一层大部分用Java语言编写,是Android平台上Java的基石。
Applications层:应用程序。
Java具有与平台无关的特性,但是Java和具体平台之间的隔离式由JNI层来实现的。Java通过JNI层调用Linux Os中的系统调用来完成对应的功能(如一个创建文件)。
Java世界经由JNI层通过IPC方式与Native世界交互,而Android平台上最神秘的IPC方法就是Binder,除此之外Socket也是常用的IPC方式。
本册包括:
Native层 包括init、Audio系统(包括AudioTrack、AudioFlinger和AudioPolicyService)、Surface系统(包括Surface和SurfaceFlinger)、
常用类(包括RefBase、sp、wp等)、Vold和Rild。
Java Framework层包括zygote、System_server以及Java中的常用类(包括Handler和Looper等)。
Java Application层包括MediaProvider和Phone。
注释:JNI(Java Native Interface ”Java本地调用“)
IPC(Inter-Process Communication”进程间通信“)