1. Android简介
Android是一种基于Linux内核的自由及开放源代码的操作系统。最初是由安迪·鲁宾(Andy Rubin)开发的一款相机操作系统。2005年8月被Google收购。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的手机市场份额首次超过塞班系统,跃居全球第一。2017年3月,Android超过Windows成为全球第一大操作系统。2022年Android的活跃设备数量突破30亿。
Android版本升级比较快,现在几乎以每年一版的速度更新,截至2024年6月,API等级目前已更新到35,具体如表1-1所示。
表1-1 Android版本名称与发布时间
年份 |
名称 |
版本名 |
API等级 |
2024 |
Android 15 |
15.0 |
35 |
2023 |
Android 14 |
14.0 |
34 |
2022 |
Android 13(Tiramisu) |
13.0 |
33 |
2021 |
Android 12L(Sv2) |
12L |
32 |
2021 |
Android 12(S) |
12.0 |
31 |
2020 |
Android 11(R) |
11.0 |
30 |
2019 |
Android 10(Q) |
10.0 |
29 |
2018 |
Android Pie |
9.0 |
28 |
2017 |
Android Oreo |
8.0-8.1 |
26-27 |
2016 |
Android Nougat |
7.0-7.1.2 |
24-25 |
2015 |
Android Marshmallow |
6.0-6.0.1 |
23 |
2014 |
Android Lollipop |
5.0-5.1.1 |
21-22 |
2013 |
Android KitKat |
4.4-4.4.4 |
19-20 |
2012 |
Android Jelly Bean |
4.1-4.3 |
16-18 |
2011 |
Android Ice Cream Sandwich |
4.0.1-4.0.4 |
14-15 |
2011 |
Android Honeycomb |
3.0-3.2 |
11-13 |
2010 |
Android Gingerbread |
2.3-2.3.7 |
9-10 |
2010 |
Android Froyo |
2.2 |
8 |
2009 |
Android Eclair |
2.0-2.1 |
5-7 |
2008 |
Android Donut |
1.6 |
4 |
2008 |
Android Cupcake |
1.5 |
3 |
2008 |
- |
1.1 |
2 |
2008 |
- |
1.0 |
1 |
2023年2月9日,Google 发布了 Android 14 的首个开发者预览版(Developer Preview)。Android 14 重点关注大屏和跨设备体验的改进,特别是平板电脑和可折叠设备,增强对后台App的管控,提升待机续航,把文本缩放比例限制从130%提升到200%,引入非线性字体缩放曲线,引入“应用克隆”了,支持App双开等。此外,Android 14将阻止API等级为 22 或更早版本的旧App的安装。
2. Android体系结构
Android体系结构分为五层,从上到下依次为应用层(App)、框架层(API Framework)、系统库和运行时层(Native C/C++ Libraries & Android Runtime)、硬件抽象层(Hardware Abstraction Layer)、内核层(Linux Kernal)。
应用层分为系统应用和用户应用。系统应用包括拨号、短信、通信录等。用户应用就是用户下载的应用,本书介绍的就是用户应用的开发。
框架层包括Android应用开发需要的框架。框架层提供了应用层需要调用的接口,应用层使用这些接口实现特定的功能。框架层包括Activity Manager(活动管理器)、Window Manager(窗口管理器)、Content Providers(内容提供者)、View System(视图系统)、Notification Manager(通知管理器)、Package Manager(包管理器)等组件。
系统库和Android运行时层是框架层的支撑,是连接框架层与硬件抽象层的纽带。系统库包括一些C/C++库,如SurfaceManager、SQLite、SGL、FreeType等。Android运行时 (ART) 是 Android 上的应用和部分系统服务使用的托管式运行时。ART 及其前身 Dalvik 是专为 Android打造的。作为运行时的 ART 可执行 Dalvik 可执行文件并遵循 Dex 字节码规范。
硬件抽象层Android HAL(Hardware Abstract Layer)是对硬件设备的抽象和封装,为Android在不同硬件设备提供统一的访问接口。HAL处于Android framework和Linux kernel driver之间。HAL屏蔽了不同硬件设备的差异,为Android提供了统一的访问硬件设备的接口。HAL层帮助硬件厂商隐藏了设备相关模块的核心细节。
内核层基于上游 Linux 长期支持 (LTS) 内核。在 Google,LTS 内核会与 Android 专用补丁结合,形成所谓的“Android 通用内核 (ACK)”。