Android源码分析一 Android系统架构
一 Android系统架构 Linux内核层(Linux Kernel) :Android系统基于Linux2.6内核,这一层为Android设备各种硬件提供了 底层驱动 ,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等; 硬件抽象层(android hardware abstraction layer) :安卓驱动硬件的方式与Linux不尽相同。传统Linux的驱动完全存活于内核空间。Android则在内核外部增加了硬件抽象层(HAL, Hardware Abstraction Layer),把一部分驱动功能放到HAL层中。安卓为什么费尽麻烦增加一个HAL呢?为了保护源代码。Linux内核采用了GPL协议,所以硬件生产商想要支持Linux系统,必须遵照GPL协议公开硬件驱动的源代码。但这些源代码中包含有许多硬件的设计信息,牵涉到硬件生产商的核心利益。而增加了HAL层之后,硬件厂商就不需要开放所有的驱动代码了。 系统运行库层(libraries) :这一层通过一些C/C++库( so库 )来为Android系统提供了主要的特性支持。如SQLite库提供了数据库支持,OpenGL ES库提供了3D绘图支持,Webkit库提供了浏览器内核支持等; 应用框架层(application framework) :这一层主要提供构建应用程序时可能用到的各种 API