现在的位置: 首页 > 综合 > 正文

第一篇 android架构是如何满足设计目标的?

2013年08月26日 ⁄ 综合 ⁄ 共 1874字 ⁄ 字号 评论关闭

        从google的初衷来看 Android 操作系统的目标是与苹果的移动操作系统竞争,因此目标市场定位于一是智能手机、平板电脑等移动终端,二是定位于 TV智能 终端及 其它智能消费终端,也就是富媒体富客户端设备。服务人群和涉众也就是相关的客户群体包括移动终端等厂商、开发人员、最终的消费用户三大类群体。

        因此开发的操作系统要想成功必须满足三大利益相关方的利益,也就是系统实现的需求。

        从厂商角度最重要的利益除了要能够赚钱以外,还要能够保护厂商自己的知识产权,保护厂商在系统上开发的相关代码,二是使用得系统必须开放,没有知识产权纠纷,也就是能够做到不开放自己,而开放别人,最后是系统能够支持终端的丰富多样的硬件和不同的网络环境。

        要满足的开发者的需求包括一 应用开发(包括界面开发)及发布要方便容易,没有太大的门槛,界面开发最好能够支持2D/3D界面 ;二是支持支持 web和HTML5 应用开发 。

        要满足的最终终端用户的需求包括:一、应用运行稳定,能够保护私有数据。 二、功能扩展方便,能够支持多种媒体播放;三是 性能。

         因此架构设计上就要考虑这些需求,并想方设法加以满足,下面我们看看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)。

         以上这些重大的架构设计决策有效的满足了厂商、开发者、终端用户的利益,因此再加上google的号召力,ANDROID开放操作系统成为目前最流行的移动操作系统是必然的。

                               欢迎转载,转载请注明出处。

抱歉!评论已关闭.