Android的系统架构
四层架构 | 五层架构 |
---|---|
![]() |
![]() |
- Linux内核层:
– 避免了与硬件直接打交道
– 基于Linux系统的驱动开发可扩展性很强 - 硬件抽象层:
– 通过定义硬件“驱动”的接口来进一步降低Android系统与硬件的耦合度
– 由于Linux遵循的是GPL协议,而Android开源项目是基于Apache协议,意味着其下的所有驱动都应该开源,这一点对于部分厂商来说无法接受 - 系统运行层:
包含了支持整个系统正常运行的基础库,由于这些库多数都由C/C++实现,因此也被一些开发人员定义为"C层库",以区别应用程序框架层 - 应用程序框架层:
系统运行库被称为“C库层”相对应,应用程序框架层往往被冠以“JAVA库”的称号。这是因为框架层所提供的组件一般都是以JAVA语言编写而成,他一方面为上层应用程序提供了API接口;另一方面也囊括了不少系统级服务进程的实现,是与Android应用程序开发者关系最直接的一层 - 应用程序层:
区别DVM与JVM
-
首要差别:
– Dalvik: 基于寄存器,编译和运行都会更快些
– JVM: 基于栈, 编译和运行都会慢些 -
字节码的区别:
– Dalvik: 执行.dex格式的字节码,是对.class文件进行压缩后产生的,文件变小
– VM: 执行.class格式的字节码