是用java语言开发的,开发人员一般位于这一层。
每个Android 应用都是运行在自己的进程当中,都拥有一个Dalvik虚拟机实例,Dalvik被设计成一个设备可以运行多个虚拟机系统,Dalvik运行dex的可以执行文件,该文件对于小内存进行了优化,同时虚拟机是基于内存器的,所有的类都经过java编译器编译,然后通过SDK中的dx工具转换为可执行的dex文件
并不是所有的驱动都在linux内核里面,有些驱动是在userspace的空间上, 这是由于linux遵守GPL协议,在linux内核中为这些驱动开辟了后门程序,一般情况下,将android移植到其他硬件,只需要移植这些后门程序即可。
Linux内核同时作为硬件和软件之间的抽象层,主要做了两部分的修改:
binder:提供了自己的进程间通信的手段电源管理。