Android平台的架构

Android系统的底层是在Linux操作系统技术上构建的,操作系统、中间件、用户界面和应用程序软件4层组成的,采用的是软件叠层的方式,一层一层叠加,这种叠层的结构方式使得层和层之间彼此分离,降低了层与层之间的耦合性,当有一个层次改变时,它的上下层不会受到影响而去改变。

详细的Android平台的架构如图

这里写图片描述

Linux内核层:安卓其实本身就是一个操作系统,它的底层是基于Linux Kernel的,在Android4.0版本之前采用的是基于Linux2.6,在Android4.0版本及之后的版本使用采用的是基于更新的Lin3.x内核,Android依赖于Linux内核,提供核心系统服务,如安全性,内存和进程的管理,网络协议栈等等。Linux Kernel也是用来隐藏底层硬件信息部分,为它的上层去提供统一的服务。

Hardware Abstraction Layer:在安卓的平台结构中被称为“硬件抽象层”。HAL封装了Linux的内核驱动程序,统一了应用层对硬件层配置和读写的接口,把底层对硬件的驱动分为内核和用户空间,内核和用户空间分别运行Linux内核驱动程序和硬件抽象层。这样子对硬件抽象化,把底层硬件详细的相关实现部分给屏蔽了,相当于硬件设备厂商能够不必公开硬件驱动的源代码。

Android Runtime:Android运行时是由核心库集和虚拟机这两个部分组成的。虚拟机相当于JVM,它的职责是运行安卓应用程序,管理程序生命周期、堆栈、安全和异常以及垃圾回收等功能。核心库集提供了大部分Java语言能够调用的函数核心库。在安卓4.4之前,采用的是Dalvik模式的虚拟机,性能很低,因为每运行一次就得编译一次。在安卓4.4版本支持了ART模式的虚拟机,而且在安卓5.0的时候由ART取代Dalvik模式成为默认选项的编译模式。ART模式采用预编译技术,在系统安装应用时,进行一次的预编译,这样程序就不用每运行一次就得编译一次,提高执行效率,也可以减少耗电量,提高系统的流畅度。

Libraries:安卓包含一些用C/C++编写的核心函数库,为开发人员的应用程序框架提供支持。核心库包括数据库支持、多媒体框架、SGL(2D图像的引擎)、OpenGL(视频插件)、WebKit等,开发人员不能像调用API去使用它们,需要通过JNI去调用这些C/C++核心库。

Application Framework:这一层是安卓开发的基础,主要目的是为开发人员提供服务,为应用程序提供的框架层,开放API接口,开发人员能够利用该框架或者拓展该框架开发出所需的功能效果。这层包括活动管理器、内容提供器、视图系统(按钮、文本框等)、资源管理器、位置管理器、包管理器等等。

Applications:应用程序层这一层是Android平台架构的顶层,也可以叫做是UI层,用于与用户的交流,是用户唯一的可见层。谷歌公司为安卓系统在这个层次预装了用java语言编写的系统核心应用程序,比如电话,短信,电子邮件,联系人,浏览器,日历等程序。手机厂商和其它开发人员开发的第三方应用程序也是位于这个层次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值