「ANDROID」- 开源移动操作系统 | 基于 Linux 内核

认识

Android 是一个基于 Linux 内核的开源移动操作系统,主要由设计用于触摸屏移动设备,如智能手机和平板电脑。它由 Open Handset Alliance(开放手机联盟)开发,并由谷歌(Google)牵头和赞助。简单来说,Android 是手机的“大脑”,它管理手机的硬件(如屏幕、摄像头、处理器)和软件(应用程序),为用户和应用程序之间提供一个互动的平台。Android 是一个强大、开放且充满活力的移动操作系统。它的开源特性催生了一个极其多样化和竞争激烈的硬件市场,为全球用户提供了无与伦比的选择自由。尽管面临碎片化和安全性的挑战,但凭借其庞大的生态系统和持续的创新,Android 仍在持续塑造着全球移动计算的未来。

组成

Linux Kernel

底层基础,提供硬件抽象、驱动、核心系统功能(如内存管理、进程管理、电源管理)。

硬件抽象层 HAL

提供标准接口,将 Android 系统与特定的硬件驱动分离开来,使制造商能为设备实现硬件功能。

ART and DVM

ART Android Runtime 负责运行应用程序。它将应用的字节码转换为机器码进行执行。从 Android 5.0 开始,ART 取代了旧的 Dalvik 虚拟机。

《深入解析 Android 虚拟机》,黑色;
《深入解析 Android 虚拟机》,绿色;
《Android Dalvik 虚拟机结构及机制剖析,I,II》

原生 C/C++ 库

许多核心 Android 系统组件和服务(如 ART)是使用 C 和 C++ 编写的原生库。

Java API 框架

开发者用来构建 Android 应用的全部功能集,包括视图系统、资源管理器、通知管理器等。

系统应用

预装在设备上的应用,如电话、短信、浏览器、设置等,它们与用户安装的应用具有相同的地位。

生态系统的参与者

  • 谷歌(Google):主导开发和维护 Android 开源项目(AOSP),并提供核心的谷歌应用和服务(GMS)。
  • 设备制造商(OEMs):例如,三星、小米、OPPO、vivo、华为、索尼、……,其使用 AOSP 并为其设备添加自定义界面和附加功能。
  • 应用开发者:为 Google Play 和其他应用商店开发数百万个应用程序。
  • 用户:全球数十亿的消费者。

性质

开源(Open Source):

  • 这是 Android 成功的最关键因素。其源代码是公开的,这意味着手机制造商可以免费使用并根据自己的硬件进行定制。这极大地降低了设备制造成本,促进了生态系统的多样性。

开放性(Openness):

  • 与苹果的 iOS 系统相比,Android 更加开放。用户可以从多个应用商店(如 Google Play、三星 Galaxy Store、第三方商店)或直接安装APK文件来下载应用,拥有更高的自由度。

多任务处理:

  • 用户可以同时运行多个应用程序,并在它们之间轻松切换。

丰富的通知系统:

  • 通知中心可以集中管理来自所有应用的通知,并允许用户进行快速交互(如回复信息、暂停音乐等)。

深度集成谷歌服务:

  • 对于预装了 Google Mobile Services(GMS)的设备,用户可以无缝使用 Gmail、Google Maps、YouTube、Google Drive 等谷歌生态系统服务。

高度可定制性:

  • 用户可以根据自己的喜好定制主屏幕、使用小部件、更换启动器(Launcher)、主题和图标包,让每部手机都独一无二。

优势:

  • 市场占有率极高:全球市场份额超过 70%,是使用最广泛的移动操作系统。
  • 设备选择极其丰富:从百元入门机到万元高端旗舰,各种价位、尺寸、功能的设备应有尽有。
  • 自定义灵活:用户和制造商都可以深度定制。
  • 谷歌生态集成:与谷歌服务的无缝结合。

应用编程 Application Programming

Android 应用编程是指使用 Java 编程语言和 Android SDK(软件开发工具包)开发 Android 应用程序。Android 应用程序包含 Android 操作系统上的应用程序和游戏,可以在 Android 智能手机、平板电脑、智能手表、电视和其他设备上运行。

Android 应用程序由多个组件构成,包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供者(Content Provider)。这些组件可以相互交互,构成完整的应用程序。开发者可以使用 Android SDK 提供的 API,来创建这些组件,实现应用程序的功能。

在 Android 应用编程中,开发者需要掌握 Java 编程语言、Android SDK、Android Studio 集成开发环境以及 Android 应用程序的架构和生命周期等相关知识。开发者可以使用 Android Studio 创建项目、设计用户界面、编写代码、调试和测试应用程序,最终生成 APK(Android 应用程序包)并发布到 Google Play 商店或其他应用市场。

Android 应用编程是一项具有挑战性和创造性的工作,需要开发者具备良好的编程能力、开发经验和创新思维,才能开发出高质量的 Android 应用程序。

构建

发展历程与版本

Android 的版本命名传统上以甜点名称命名,并按字母顺序排列。近年来,谷歌放弃了这一传统,转而使用简单的数字版本号。

  • 早期版本:Android 1.5 Cupcake(纸杯蛋糕)、1.6 Donut(甜甜圈)、2.2 Froyo(冻酸奶)、2.3 Gingerbread(姜饼)。
  • 鼎盛时期:4.0 Ice Cream Sandwich(冰淇淋三明治)、4.1-4.3 Jelly Bean(果冻豆)、4.4 KitKat(奇巧巧克力)、5.0 Lollipop(棒棒糖)、6.0 Marshmallow(棉花糖)。
  • 现代版本:7.0 Nougat(牛轧糖)、8.0 Oreo(奥利奥)、9.0 Pie(派)。
  • 近期版本(数字命名):
    • Android 10:引入了全面的手势导航、深色主题、更强的隐私控制。
    • Android 11:强化了对话通知、气泡功能、一次性权限授权。
    • Android 12:带来了全新的设计语言 Material You,动态色彩主题,UI 大变。
    • Android 13:进一步优化 Material You,提升多设备协同能力,加强隐私和安全。
    • Android 14:专注于自定义、可访问性和效率,如超大字体的改进、更精细的权限控制。

应用

WIP

改进

挑战/劣势:

  • 碎片化严重:由于设备型号和系统版本过多,导致应用兼容性测试困难,系统更新推送缓慢且不统一。
  • 安全性问题:开放的特性也使其更容易成为恶意软件的攻击目标,尤其对于来自非官方商店的应用。
  • 用户体验不一致:不同制造商的自定义界面差异很大,可能导致体验上的割裂。

参考

DeepSeek / 介绍 Android