|
正在Android中,统统框架由操纵、操纵框架、原生库、Android及时库、硬件笼统层、Linux内核等若干局部构成。
个中最中央的Android虚拟机局部也依然盛开源码。对拓荒者而言,假设愿望正在深度定制的根源上拓荒出分别化、高度角逐力的产物,必要正在操纵框架、原生库、硬件笼统层、Linux内核等方面有较深切的体会。图1显示了Android的体例架构。
正在Android中,上层的操纵是基于Java拓荒的,不过框架层的供职许众是基于C/C++的,为了分析的便利,正在本书中,将基于C/C++的供职称为原生供职。目前,Android供应的和众媒体干系的原生供职紧要有衬着处理器(Surface Flinger)、音频处理器(Audio Flinger)、Camera供职(Camera Service)、媒体播放供职(MediaPlayer Service)、音频战略供职(Audio Policy Service)等。
正在Android中,较量要紧的Java组件包含Java中央库、Dalvik虚拟机等,两者一块组成了Android的操纵境况根源。
正在Android中,商讨到并非一共组件都具有规范的Linux内核驱动接口,况且基于GPL V20许可的Linux驱动内核会暴显示专用IP核的细节,其余Android对硬件驱动也有些特别的需求。为了屏障底层达成的细节,达成硬件逻辑和硬件接口的别离,Google界说了一个硬件笼统层的接口HAL(Hardware Abstraction Layer)。
HAL正在为贸易拓荒带来容易的同时,对编制的功能略有拦阻,更众的方针会导致编制变慢,正在桌面Ubunut Linux中,为了加快编制的启动速率,就彻底摈弃了HAL的理念。
Android平台是基于Linxu内核搭修的,Linux内核的上风正在于大内存处理、经过处理、基于权限的安宁模子、同一的驱动模子、共享库支柱、代码开源等。
Android平台正在安排流程中,针对挪动终端资源有限的特质,对Linux举行了必然水准的裁剪:砍掉了原生的窗口编制、去除了对GNU Libc的支柱(引入了更高效、针对嵌入式优化过的Bionic)、裁剪掉了少少规范Linux器械的局部特点等。
|
|