一:android系统架构特点概述

v  基于linux操作系统,因此借助LINUX操作系统对丰富硬件的支持,并且开源、成熟、性能稳定,并且是目前嵌入式系统的主流操作系统,具有大量的用户和开发人员,因此ANDROID底层操作系统使用LINUX操作系统实在是一个明智之举,即可以满足厂商对别人代码开放及支持丰富硬件的需求,又能够让开发者没有门槛的轻易介入,性能上也能够满足终端用户的要求。

         v  为了保护厂商的知识产权,google实现了一层硬件抽象层(HAL), 为厂商开发自己的驱动提供了标准的接口,又无需开源代码 。因为这个缘故linux 也把android驱动踢出了代码树 。

         v  应用采用JAVA开发,这也是一个明智之举,一是世界上有大量的JAVA开发者,因此有现成的JAVA基础包(Data structures、Utilities、File access、 Network Access等) 和大量的开源扩展包可以利用,并且采用JAVA语言开发应用也比采用C/C++开发容易。而为了保护和利用原先C/C++程序员开发的代码,也支持采用NDK方式支持编译 原先用C/C++语言开发的代码。而为了不与SUN的java虚拟机发生专利纠纷和性能考虑,android 的java虚拟机采用了 Dalvik虚拟机,一种基于寄存器方式的JAVA虚拟机实现,具有高度CPU优化的字节码解释程序,且以优化的.dex文件格式运行,能够高效的使用运行时内存。

         v  采用组件开发应用模式 ,并提供符合好莱坞设计原则的完善的框架方便应用组件的开发, 应用开发者只需象填空一样实现框架提供的固定的回调接口,读取XML描述的资源就可以完成一个应用程序的开发,不用开发者自己维护应用的生命周期管理,因此更方便了开发者开发应用。

         v  应用资源和应用描述文件与代码的分离,应用资源和应用描述文件采用XML描述.因此应用可方便扩展,方便开发者。

         v  应用程序最终打包成一个APK文件,方便应用程序的发布.

         v  大量采用第三方开源或开放 代码

         v  基于WEBKIT和V8 引擎,4.0版本实现了chrome浏览器,支持HTML5 应用开发。

         v  基于BSD License的为嵌入系统优化过的C库– bionic,也是基于性能和版权考虑。

         v  轻量级的SQLITE数据库存储,并提供content providers 组件方便应用层跨进程 使用,方便密集数据类型的应用开发。

         v  提供了统一的本地媒体播放框架。

         v  提供对OPENGL ES 、skia的支持, 因此可以支持开发2D/3D UI界面。

         v  影响性能的关键服务采用C++本地服务实现,如(媒体框架、 Audio Flinger、 surface Flinger)。

猜你喜欢

转载自blog.csdn.net/weixin_38503885/article/details/80651252