基础@IT·互联网Android知识

1.1.2 Android的系统框架

2017-05-25  本文已影响284人  常思行

Android框架概述:

Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆叠(Software Stack),或称为"软件叠层架构",叠层主要分成三层:操作系统、中间件、应用程序

Android 软件栈

1、Applications(应用程序)

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

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

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

2、Java APIFramework(应用程序框架)

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

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

下面对各个模块进行解释:

这些服务的解释在初学者看来可能会非常晦涩难懂,而且也不知道我在说些什么当然也记不住我所说的,这再正常不过了,现在有个印象就好,等我们开发用到相关功能时就会豁然开朗啦~

3、Libraries(系统运行库)

与PC一样,每个Android应用程序都有自己的进程,每个Android应用程序都运行在Dalvik虚拟机之上,Dalvik虚拟机只执行.dex的可执行文件。

当Android应用程序通过编译,最后还需要通过SDK中的dx工具转化成.dex格式才能正常在虚拟机上执行。所以说当我们使用上面的Android应用框架时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其能更好地为我们服务。

当然了,这里面还分为两个部分:

4、HAL(硬件抽象层)

硬件抽象层提供标准界面,向更高级别的 Java API 框架显示设备硬件功能。

HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

5、Linux Kernel(Linux内核)

Android是基于Linux内核提供核心系统服务的,例如:安全、内存管理、进程管理、网络堆栈、驱动模型等。

Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。

如果你学过计算机网络的话就会知道分层的好处:使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。

也就是说各层各司其职,各层提供固定的功能服务,专业点可以说是高内聚、低耦合。

当然了,如果只是做应用开发,就不需要深入了解Linux Kernel层。

感谢优秀的你跋山涉水看到了这里,不如关注下让我们永远在一起!

上一篇 下一篇

猜你喜欢

热点阅读