- 基于Android Studio的案例教程(第2版)
- 宋三华
- 1023字
- 2021-03-04 19:44:30
1.1 Android平台架构
Android是一种基于Linux的开放源代码软件栈,其平台架构如图1-1所示。
图1-1 Android平台架构
(1)Linux内核层
Android平台的基础是Linux内核。Android Runtime(ART)依靠Linux内核来执行底层功能,如线程和底层内存管理。
使用Linux内核可让Android更安全,设备制造商可以在开源的内核上开发硬件驱动程序。
(2)硬件抽象层(HAL)
硬件抽象层(HAL)提供标准界面,向更高级别的Java API框架显示设备硬件功能。HAL包含多个库模块,其中每个库模块都为特定类型的硬件组件实现一个界面,如相机或蓝牙模块。当框架API要求访问设备硬件时,Android系统将为该硬件组件加载库模块。
(3)原生C/C++库与Android Runtime
① 原生C/C++库。
许多核心Android系统组件和服务(如ART和HAL)构建自原生代码,需要C和C++编写的原生库。Android平台提供Java API框架以向应用显示其中部分原生库的功能。例如,用户可以通过Android框架的Java OpenGL API访问OpenGL ES,以支持在应用中绘制和操作2D和3D图形。
如果使用C或C++类库,可以借助Android NDK直接访问这些原生平台库。
② Android Runtime(ART)。
Android Runtime是一种在Android操作系统上的运行环境,在Android 5.0及后续Android版本中作为正式的运行时库取代了以往的Dalvik虚拟机。ART能够把应用程序的字节码转换为机器码,是Android系统所使用的一种新的虚拟机。
ART的主要功能如下。
① 预先(AOT)和即时(JIT)编译。
② 优化的垃圾回收(GC)。
③ 更好的调试支持,包括专用采样分析器、详细的诊断异常和崩溃报告,并且能够设置监视点以监控特定字段。
在Android 5.0版本(API级别21)之前,Dalvik是Android Runtime。如果用户的应用在ART上运行效果很好,那么它应该也可以在Dalvik上运行,但反过来却不一定。
Android还包含一套核心运行时库,可提供Java API框架使用的Java编程语言中的大部分功能,包括一些Java 8的语言功能。
(4)Java API框架层
用户可通过Java语言编写的API使用Android OS的整个功能集。这些API形成了创建Android应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用,包括以下组件和服务。
① 丰富、可扩展的视图系统。可用以构建应用的UI,包括列表、网格、文本框、按钮,甚至是可嵌入的网络浏览器。
② 资源管理器。用于访问非代码资源,如本地化的字符串、图形和布局文件。
③ 通知管理器。可让所有应用在状态栏中显示自定义提醒。
④ Activity管理器。用于管理应用的生命周期,提供常见的导航返回栈。
⑤ 内容提供程序。可让应用访问其他应用(如“联系人”应用)中的数据或共享自己的数据。
开发者可以完全访问Android系统应用使用的框架API。
(5)系统应用层
Android自带有一套用于电子邮件、短信、日历、互联网浏览和联系人等的核心应用。用户通过第三方平台下载的一些应用软件大都属于应用层。