Android 系统架构

Android 共分为:
应用程序层、 应用程序框架层、 系统运行库和 Libraries 层、 硬件抽象层、 Linux 内核层
· 应用程序层: Android 应用程序集合, 无论是用户开发的, 还是系统内置的应用程序都在该层。
· 应用程序框架层: 全部的应用程序都是在该框架的基础上开发出来的。
· 系统运行库和 Libraries 层: Android 5.0( API 21) 之前使用的是 Dalvik 虚拟机, 之后被 ART 所取代。 ART 是 Android 操作系统的运行环境, 通过运行虚拟机来执行 dex 文件。 Java 代码编译为 dex 字节码格式。
Libraries 层: Android 包括一个 C/C++库的集合。 供 Android 系统的各个组件使用。
· 硬件抽象层( Hardware Abstraction Layer) : 为上层的 Java API Framework 提供相关硬件的界面显示, Audio, Bluetooth 等是组成硬件抽象层的库模块, 实现每个硬件的界面显示功能。
· Linux 内核层: Android 平台的基础, 直接和硬件打交道。 硬件驱动、 进程管理、 内存管理、 网络管理的功能在这里实现。

APP

Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序等等。

这些平台随附的应用与用户可以选择安装的应用一样,没有特殊状态,因此第三方应用可成为用户的默认网络浏览器、短信 Messenger 甚至默认键盘(有一些例外,例如系统的“设置”应用)。

但是毫无疑问的是:所有应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换的,这点不同于传统手机操作系统固化在系统内部的系统软件,Android应用程序更加灵活和个性化。
 

Framework(应用程序框架)
应用程序框架层是我们从事Android开发的基础,很多核心应用程序是通过这一层来实现其核心功能的,开发人员也可以完全访问核心应用程序所使用的API框架。

该层简化了组件的重用,任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性),这使得开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。
 

硬件抽象层HAL
         大家可能有这样的疑问,既然Linux内核是专职和硬件打交道的,为什么又多出一个硬件抽象层呢?其实HAL之前是并没有的,它的第一次亮相要追溯到2008年的Google I/O大会上。它是对硬件设备的具体实现加以抽象,鉴于许多硬件设备厂商不希望公开其设备驱动的源代码,如果能将android的应用框架层与linux系统内核的设备驱动隔离,使应用程序框架的开发尽量独立于具体的驱动程序,则android将减少对Linux内核的依赖。HAL由此而生,它是对Linux内核驱动程序进行的封装,将硬件抽象化,屏蔽掉了底层的实现细节。


Linux内核层
         Android的底层是基于Linux操作系统的。从严格意义上来讲,它属于Linux操作系统的一个变种。Android选择在Linux内核的基础上来搭建自己的运行平台有几个好处。首先,避开了与硬件直接打交道。Linux经过多年的发展,这方面工作正是它的强项,而且Linux也是开源的,Android没必要去做重复的工作。其次,基于Linux系统驱动开发可扩展性很强。这对嵌入式系统而言非常重要,因为每款产品在硬件上或多或少都会有差异,如果驱动开发不能做到高度可扩展性和易用性,那么Android系统的移植工作将是永无止境的噩梦。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式_笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值