一、系统

Android 操作系统诞生于 2003 年的 Android Inc .公司,后来于 2005 年被谷歌公司收购。第一款运行安卓系统的设备于 2008 年上市。自那以来,它已经进行了多次更新,2018 年初的最新版本号为 8.1。

自从第一次构建以来,Android 操作系统的市场份额一直在不断增加,据说到 2018 年,它的市场份额超过了 80%。尽管这些数字因你使用的来源不同而不同,但 Android 操作系统的成功是不可否认的。这一胜利部分源于谷歌公司是全球智能手机市场上的一个聪明的参与者,但也源于 Android 操作系统经过精心定制,以满足智能手机和其他手持或类似手持设备的需求。

大多数以前或仍然在 PC 环境中工作的计算机开发人员会在完全忽视手持设备开发的情况下做不好工作,本书的目标是帮助开发人员理解 Android OS 并掌握其程序的开发。这本书还专注于使用 Kotlin 作为一种语言来实现开发需求,但首先我们将看看 Android 操作系统和辅助开发相关系统,让您了解 Android 的内部功能。

安卓操作系统

Android 基于一个特别定制的 Linux 内核。这个内核提供了处理硬件、程序执行环境和低级通信通道所需的所有低级驱动程序。

在内核之上,你会发现 Android 运行时 (ART)和几个用 c 编写的底层库。后者是应用相关库和内核之间的粘合剂。Android 运行时是 Android 程序运行的执行引擎。

作为开发人员,您几乎不需要了解这些底层库和 Android 运行时如何工作的细节,但是您将使用它们来完成基本的编程任务,例如处理音频子系统或数据库。

在底层库和 Android 运行时之上是应用框架,它定义了你为 Android 构建的任何应用的外部结构。它处理活动、GUI 部件、通知、资源等等。虽然理解底层库肯定有助于你编写好的程序,但是了解应用框架对于编写任何 Android 应用都是必不可少的。

最重要的是,你会发现你的用户为他们必须完成的任务而启动的应用。见图 1-1

img/463716_1_En_1_Fig1_HTML.png

图 1-1

安卓操作系统

作为开发人员,你将使用 Kotlin、Java 或 C++ 作为编程语言,或者它们的组合来创建 Android 应用。您将使用应用框架和库与 Android 操作系统和硬件对话。使用 C++ 作为较低层次的编程语言,解决目标体系结构的特殊性,导致合并了本地开发工具包 (NDK),这是 Android SDK 的可选部分。虽然出于特殊目的,可能有必要使用 NDK,但在大多数情况下,处理另一种语言及其带来的特殊挑战的额外努力并没有得到回报。因此,在本书中,我们将主要讨论 Kotlin,有时也会适当地讨论 Java。

开发系统

运行在手持设备上的操作系统是故事的一部分;作为开发者,你也需要一个创建 Android 应用的系统。后者发生在 PC 或笔记本电脑上,你使用的软件套件是 Android Studio

Android Studio 是您用于开发的 IDE,但是在您安装和操作它的同时,软件开发工具包(参见“SDK”)也会被安装,我们将在下面的部分中讨论这两者。我们还将讨论虚拟设备,它为在各种目标设备上测试你的应用提供了宝贵的帮助。

Android Studio

Android Studio IDE 是创建和运行 Android 应用的专用开发环境。图 1-2 显示了它的主窗口和仿真器视图。

Android Studio 提供以下功能:

img/463716_1_En_1_Fig2_HTML.jpg

图 1-2

Android Studio

  • 管理 Kotlin、Java 和 C++ (NDK)的程序源

  • 管理项目资源

  • 在模拟器或连接的真实设备中测试运行应用的能力

  • 更多测试工具

  • 调试设备

  • 性能和内存分析器

  • 代码检查

  • 用于构建本地或可发布应用的工具

studio 和在线资源中包含的帮助为掌握 Android Studio 提供了足够的信息。在本书中,我们将偶尔在专门的章节中讨论它。

虚拟设备

开发计算机软件总是包括创建一个能够处理所有可能的目标系统的程序的挑战。如今手持设备以如此多的不同形式出现,这一方面变得比以往任何时候都更加重要。你有尺寸在 3.9 英寸到 5.4 英寸及以上的智能手机设备,7 英寸到 14 英寸及以上的平板电脑,可穿戴设备,不同尺寸的电视等等,都运行 Android 操作系统。

当然,作为开发人员,您不可能购买覆盖所有可能尺寸的所有设备。这就是模拟器派上用场的地方。有了模拟器,你不必购买硬件,你仍然可以开发 Android 应用。

Android Studio 让您可以轻松使用仿真器开发和测试应用,使用软件开发套件中的工具,您甚至可以从 Android Studio 外部操作仿真器。

警告

可以开发应用,而不需要拥有一个真正的设备。但是,不建议这样做。你应该至少有一部上一代的智能手机,如果你买得起的话,也许还有一部平板电脑。原因是与模拟器相比,操作真实设备的感觉不同。物理处理不是 100%相同,性能也不同。

要从 Android Studio 内部管理虚拟设备,请通过工具➤T2】Android➤avd 管理器打开 Android 虚拟设备管理器。在这里,您可以调查、更改、创建、删除和启动虚拟设备。见图 1-3

img/463716_1_En_1_Fig3_HTML.jpg

图 1-3

AVD 经理

创建新的虚拟设备时,您将能够从电视、穿戴设备、电话或平板设备中进行选择;您可以选择要使用的 API 级别(并下载新的 API 级别);在设置中,您可以指定如下内容:

  • 图形性能

  • 相机模式(高级设置)

  • 网络速度(高级设置)

  • 引导选项(高级设置;设备首次启动后,快速启动可显著提高启动速度)

  • 模拟 CPU 的数量(高级设置)

  • 内存和存储设置(高级设置)

用于创建虚拟映像的虚拟设备基础映像和皮肤可以在以下位置找到:

SDK_INST/system-images
SDK_INST/skins

安装了应用和用户数据的实际虚拟设备位于以下位置:

∼/.android/avd

警告

虚拟设备不会模拟真实设备支持的所有硬件。即 2018 年第一季度,不支持以下内容:

  • API 等级 25 之前的 WiFi

  • 蓝牙

  • 国家足球联盟

  • SD 卡弹出和插入

  • 连接到设备的耳机

  • 通用串行总线

因此,如果您想使用模拟器,您必须在应用中采取预防措施,以避免这些问题的出现。

处理正在运行的虚拟设备也可以通过各种命令行工具来完成;更多信息见第 18 章。

SDK

与 Android Studio 相反,软件开发工具包(SDK)是一个松散耦合的工具选择,这些工具要么是 Android 开发的基本工具,因此直接由 Android Studio 使用,要么至少对一些开发任务有帮助。它们都可以从 shell 中启动,有或没有自己的 GUI。

如果你在安装 Android Studio 的时候不知道 SDK 安装在哪里,你可以很容易地问 Android Studio:从菜单中选择文件➤项目结构➤ SDK 位置

属于 SDK 一部分的命令行工具在第 18 章中描述。