Skip to content

Android - 概览

Android 是一个基于 Linux 的开源操作系统,主要为移动设备(如智能手机和平板电脑)设计。它最初由 Android Inc. 开发,该公司于 2005 年被 Google 收购,现在由 Google 和开放手机联盟 (OHA) 领导。如今,Android 也为各种其他设备提供支持,包括智能电视 (Android TV)、可穿戴设备 (Wear OS) 和车载信息娱乐系统 (Android Auto)。

Android 提供了一个丰富的应用框架,允许开发者为全球用户创建创新的应用和游戏。它提供了一种统一的应用开发方法,这意味着开发者可以编写可在各种各样的 Android 设备上运行的应用。

自 2008 年 9 月首次商业发布 Android 1.0 以来,Android 平台已显著发展。它持续接收定期更新,引入新功能、性能改进和安全增强。Android 的源代码(Android 开源项目 - AOSP)在开源许可下提供,主要是 Apache License 2.0。

由于以下几个关键因素,Android 已成为全球使用最广泛的移动操作系统:

  • 开放性和定制性: 作为开源系统,Android 允许制造商为其设备定制系统,也允许开发者深入访问平台能力。
  • 庞大的用户群体: Android 为全球数十亿设备提供支持,为应用提供了巨大的潜在用户群。
  • 丰富的开发环境: 谷歌提供了强大的工具,如 Android Studio(官方 IDE)和 Android SDK,以及全面的文档和社区支持。
  • Google Play 商店: 一个庞大的应用分发和变现市场,覆盖几乎所有国家的用户。
  • 与 Google 服务集成: 与流行的 Google 服务(如 Gmail、Maps、Drive 和 Firebase)无缝集成。
  • 硬件多样性: Android 可运行在众多制造商的各种硬件上,提供不同价格点和外形的设备选择。

Android 是一个功能强大的操作系统,包含诸多特性,可提供丰富的应用体验。主要特性包括:

序号特性与描述
1现代 UI 与 Material Design
Android 提供直观的用户界面框架。Material Design(及其最新迭代 Material You)为创建视觉吸引力强且一致的 UI 提供了指南和组件。Jetpack Compose 允许使用 Kotlin 进行声明式 UI 开发。
2连接性
支持多种连接选项:GSM/EDGE、CDMA、EV-DO、UMTS/HSPA+、LTE、5G、Wi-Fi(包括 Wi-Fi 6/6E)、蓝牙(包括 BLE)、NFC 和 Wi-Fi Direct。
3存储
使用 SQLite 存储结构化数据。Jetpack Room Persistence Library 是推荐的基于 SQLite 的抽象层。还支持文件系统存储、用于键值对的 SharedPreferences 和云存储集成。
4媒体支持
广泛支持各种音频、视频和图像格式(例如 H.264、HEVC、AV1、AAC、MP3、Ogg Vorbis、JPEG、PNG、WebP、AVIF、HEIF)。提供用于媒体播放、录制和流媒体的 API。
5消息传递
通过各种应用支持 SMS、MMS 和 Rich Communication Services (RCS)。
6网页浏览器 (WebView)
应用可以使用 WebView 组件嵌入网页内容,该组件基于 Chromium 的渲染引擎,支持 HTML5、CSS3 和 JavaScript 等现代 Web 标准。
7多点触控与手势
原生支持多点触控屏幕和丰富的手势系统,实现直观的用户交互。
8多任务处理
允许用户无缝切换应用,应用可在后台运行(受系统优化以延长电池寿命的影响)。
9可调整大小的 Widgets
应用 Widgets 可以嵌入到其他应用(如主屏幕)中,用户可以调整其大小。
10多语言与无障碍功能
全面支持多种语言,包括双向文本 (RTL)。提供强大的无障碍功能和 API,使残障人士也能使用应用。
11Firebase Cloud Messaging (FCM)
一种跨平台消息解决方案(前身为 Google Cloud Messaging - GCM),允许开发者向 Android、iOS 和 Web 用户发送通知和数据消息。
12附近分享 (Nearby Share)
一项功能,允许用户立即与附近的 Android 设备分享文件、链接等,类似于 Apple 的 AirDrop。取代了 Android Beam。
13安全特性
包括应用沙盒、安全启动、加密、权限系统和定期安全更新等功能,以保护用户数据和设备完整性。
14生物识别认证
支持指纹、面部和虹膜识别,以实现安全认证。

Android 应用主要使用 Kotlin(官方推荐语言)或 Java 开发,利用 Android Software Development Kit (SDK) 和 Android Studio。C/C++ 也可以通过 Android Native Development Kit (NDK) 用于应用的性能关键部分。

开发完成后,Android 应用会打包为 APK (Android Package Kit) 或 AAB (Android App Bundle) 文件。它们可以通过多种渠道分发,其中 Google Play 商店是主要渠道。其他应用商店包括 Amazon Appstore、Samsung Galaxy Store 以及其他制造商的平台专属商店。

Android 为全球 190 多个国家的数十亿移动设备提供支持,是任何移动平台中安装量最大的。其生态系统持续快速增长,开发者不断创造新的创新应用。

本教程旨在教你如何开发和打包现代 Android 应用,从搭建开发环境开始,逐步探索 Android 应用开发的各个方面,并采用最新的最佳实践。

Android 应用涵盖广泛的类别,满足不同的用户需求。一些热门类别包括:

  • 通讯类(例如消息应用、社交媒体、电子邮件)
  • 效率类(例如办公套件、笔记、任务管理)
  • 娱乐类(例如游戏、视频流媒体、音乐播放器)
  • 生活方式类(例如健身、旅行、美食饮品)
  • 工具与实用工具类(例如文件管理器、安全应用、定制工具)
  • 教育与参考类
  • 金融与商务类
  • 健康与健身类
  • 购物类
  • 摄影与视频编辑类

Android 版本通常按照字母顺序使用甜点或糖果命名。以下是一些值得注意的版本:

  • Android 1.0(无代号,API 1)- 2008
  • Android 1.5 Cupcake(API 3)- 2009
  • Android 1.6 Donut(API 4)- 2009
  • Android 2.0/2.1 Eclair(API 5-7)- 2009/2010
  • Android 2.2 Froyo(API 8)- 2010
  • Android 2.3 Gingerbread(API 9-10)- 2010
  • Android 3.0/3.1/3.2 Honeycomb(API 11-13)- 2011(仅限平板)
  • Android 4.0 Ice Cream Sandwich(API 14-15)- 2011(统一手机和平板 UI)
  • Android 4.1/4.2/4.3 Jelly Bean(API 16-18)- 2012/2013
  • Android 4.4 KitKat(API 19-20)- 2013
  • Android 5.0/5.1 Lollipop(API 21-22)- 2014(引入 Material Design)
  • Android 6.0 Marshmallow(API 23)- 2015(运行时权限)
  • Android 7.0/7.1 Nougat(API 24-25)- 2016(多窗口支持)
  • Android 8.0/8.1 Oreo(API 26-27)- 2017(Project Treble, 通知渠道)
  • Android 9 Pie(API 28)- 2018(手势导航,数字健康)
  • Android 10(API 29)- 2019(系统范围暗色主题,改进隐私控制)
  • Android 11(API 30)- 2020(气泡,一次性权限,对话通知)
  • Android 12(API 31-32)- 2021(Material You,隐私面板,大概位置)
  • Android 13(API 33)- 2022(按应用设置语言偏好,主题化应用图标,照片选择器)
  • Android 14(API 34)- 2023(改进系统健康,隐私和安全增强,定制功能)

API Level 是一个整数值,用于唯一标识特定 Android 平台版本提供的框架 API 修订版本。应用通过声明 targetSdkVersion 来表明它们设计和测试所针对的 API level,并通过声明 minSdkVersion 来指定运行所需的最低 API level。

下表显示了最新的 Android 版本、它们对应的 API Level 和版本代码 (VERSION_CODE Constant,Android 内部使用):

平台版本API LevelVERSION_CODE 常量
Android 1434UPSIDE_DOWN_CAKE
Android 1333TIRAMISU
Android 12L32S_V2
Android 1231S
Android 1130R
Android 1029Q
Android 928P
Android 8.127O_MR1
Android 8.026O
Android 7.125N_MR1
Android 7.024N
Android 6.023M

开发者使用 minSdkVersion 来确保他们的应用不会安装在缺少必要 API 的旧平台版本设备上,并使用 targetSdkVersion 来选择启用最新的平台行为和功能。