Windows 上的本机 Android 开发入门
本指南帮助你开始使用 Windows 创建本机 Android 应用程序。 如果你偏好跨平台解决方案,请参阅 Windows 上的 Android 开发概述,其中提供了某些选项的简短摘要。
创建本机 Android 应用的最直接方法是在 Java 或 Kotlin 中使用 Android Studio,不过,你也可以出于特定的目的使用 C 或 C++ 进行 Android 开发。 Android Studio SDK 工具将代码、数据和资源文件编译成 Android 存档包(.apk 文件)。 一个 APK 文件包含 Android 应用的所有内容,Android 赋能的设备使用该文件来安装该应用。
Android Studio 是 Google Android 操作系统的官方集成开发环境。 下载最新版本的适用于 Windows 的 Android Studio。
- 如果下载了 .exe 文件(建议),请双击启动该文件。
- 如果下载了 .zip 文件,请解压缩该文件,将 android-studio 文件夹复制到 Program Files 文件夹中,然后打开 android-studio > bin 文件夹并启动 studio64.exe(适用于 64 位计算机)或 studio .exe(适用于 32 位计算机)。
遵循 Android Studio 中的安装向导安装它建议的所有 SDK 包。 有新的工具和其他 API 可用时,Android Studio 将通过弹出窗口向你发出通知,你也可以通过选择“帮助”>“检查更新”来检查更新。
选择“文件”>“新建”>“新建项目”。
在“选择项目”窗口中,可在以下模板之间进行选择:
基本活动:创建一个简单的应用,其中包含应用栏、浮动操作按钮和两个布局文件:一个文件用于活动,另一个文件用于隔离文本内容。
空活动:创建一个空活动和一个包含示例文本内容的布局文件。
底部导航活动:为活动创建标准的底部导航栏。 有关详细信息,请参阅 Google 发布的 Material Design guidelines(材料设计准则)的“Bottom Navigation Component”(底部导航组件)部分。
模板通常用于将活动添加到新的和现有的应用模块。 例如,若要为应用的用户创建登录屏幕,请使用“登录活动”模板添加一个活动。 若要详细了解如何选择活动以及如何从模板添加代码,请参阅 Google 发布的 Android Developer guide(Android 开发人员指南)。
备注
Android 操作系统基于“组件”的概念,使用术语“活动”和“意图”来定义交互。 活动表示用户可以执行的单个针对性任务。 活动提供一个窗口,用于通过基于 View 类的类生成用户界面。 Android 操作系统中的活动具有生命周期,该生命周期由六个回调定义:onCreate()
、onStart()
、onResume()
、onPause()
、onStop()
和 onDestroy()
。 活动组件使用意图对象来互相交互。 意图要么定义要启动的活动,要么描述要执行的操作类型(系统将为你选择适当的活动,该活动甚至可以来自不同的应用程序)。 请在 Google 发布的 Android Developer guide(Android 开发人员指南)中详细了解活动、活动生命周期和意图。
Java 语言于 1991 年问世,它最初是由 Sun Microsystems 开发的,但现在归 Oracle 所有。 它现已成为最流行且最强大的编程语言之一,其全球支持社区也名列前茅。 Java 基于类且面向对象,旨在尽量减少实现依赖关系。 其语法类似于 C 和 C++,但低级工具比后者更少。
Kotlin 于 2011 年由 JetBrains 首次宣布为新的开源语言,从 2017 年开始,它已作为 Java 的替代语言纳入 Android Studio 中。 2019 年 5 月,Google 宣布 Kotlin 已成为 Android 应用开发人员的首选语言,因此尽管它是一种较新的语言,但也拥有强大的支持社区,并被认为是发展最快的编程语言之一。 Kotlin 是跨平台的静态类型语言,可完全与 Java 互操作。
Java 更广泛地用于更多类型的应用程序,提供 Kotlin 所不具备的某些功能,例如检查异常、非类基元类型、静态成员、非专用字段、通配符类型和三元运算符。 Kotlin 专为 Android 设计,且建议在 Android 中使用。 它还提供 Java 所不具备的某些功能,例如由类型系统控制的 null 引用、无原始类型、不变数组、本征函数类型(与 Java 的 SAM 转换相反)、没有通配符的使用处型变、智能强制转换,等等。 请在 Kotlin 文档中更深入地了解该语言与 Java 的比较。
需要确定应用程序的最低 API 级别。 该级别确定了应用程序支持的 Android 版本。 API 级别越低,其推出时间就越早,因此通常支持更多的设备;但 API 级别越高,其推出时间就越近,因此提供更多的功能。
选择“帮我选择”链接打开一个比较图表,其中显示了设备支持分布,以及与平台版本相关的重要功能。
你可能已注意到,项目创建选项中有两个复选框:“支持即时应用”和“使用 androidx 项目”。 “支持即时应用”未选中,而“使用 androidx 项目”已选作建议的默认设置。
Google Play“即时应用”为用户提供一种试用应用或游戏的方式,而无需事先安装该应用或游戏。 可以在 Play Store、Google 搜索、社交网络以及共享链接的任何位置找到这些即时应用。 选中“支持即时应用”框后,Android Studio 会将 Google Play Instant Development SDK 包含在你的项目中。 在 Android developer guide(Android 开发人员指南)中详细了解 Google Play 即时应用。
AndroidX 项目表示新版 Android 支持库,并提供跨 Android 版本的向后兼容性。 AndroidX 为所有可用包提供以字符串 androidx 开头的一致命名空间。
备注
AndroidX 现在是默认库。 若要取消选中此框并使用以前的支持库,需要删除最新的 Android Q SDK。 有关说明,请参阅 StackOverflow 上的取消选中“使用 Androidx 项目”,但首先请注意,以前的支持库包已映射到相应的 androidx.* 包。 有关所有旧类的完整映射以及如何在新类中生成项目,请参阅迁移到 AndroidX。
Android Studio“项目”窗口包含以下文件(请确保从下拉菜单中选择了 Android 视图):
app > java > com.example.myfirstapp > MainActivity
应用的主要活动和入口点。 生成和运行应用时,系统会启动此活动的一个实例并加载其布局。
app > res > layout > activity_main.xml
定义活动用户界面 (UI) 布局的 XML 文件。 该文件包含一个带有文本“Hello World”的 TextView 元素
app > manifests > AndroidManifest.xml
描述应用及其每个组件的基本特征的清单文件。
Gradle Scripts > build.gradle
有两个具有此名称的文件:“项目: 我的第一个应用”(表示整个项目)和“模块: 应用”(表示每个应用模块)。 新项目最初只有一个模块。 使用模块的 build.file 来控制 Gradle 插件生成应用的方式。 在 Android developer guide(Android 开发人员指南)中详细了解如何配置生成。
Android 操作系统支持以 Java 或 Kotlin 编写的应用程序,可受益于嵌入在系统体系结构中的工具。 许多系统功能(例如 Android UI 和意图处理)仅通过 Java 接口公开。 在某些情况下,你可能希望通过 Android 本机开发工具包 (NDK) 使用 C 或 C++ 代码,尽管存在某些相关挑战。 游戏开发就是一个例子,因为游戏通常使用以 OpenGL 或 Vulkan 编写的自定义渲染逻辑,并可从注重于游戏开发的大量 C 库受益。 使用 C 或 C++ 可能还有助于进一步提高设备的性能,以实现低延迟或运行计算密集型应用程序,例如物理学模拟。 但是,NDK 不适合大多数新手 Android 程序员使用。 除非你出于特定的目的而要使用 NDK,否则我们建议坚持使用 Java、Kotlin 或某种跨平台框架。
若要创建支持 C/C++ 的新项目,请执行以下操作:
在 Android Studio 向导的“选择项目”部分,选择“本机 C++”* 项目类型。 选择“下一步”,填写剩余字段,然后再次选择“下一步”。
在向导的“自定义 C++ 支持”部分,可以使用“C++ 标准”字段自定义项目。 使用下拉列表选择要使用的 C++ 标准化。 选择“工具链默认设置”会使用默认 CMake 设置。 选择“完成”。
在 Android Studio 创建新项目后,你可以在“项目”窗格中找到一个 cpp 文件夹,其中包含本机源文件、标头、CMake 或 ndk-build 的生成脚本,以及预生成为项目的一部分的库。 还可以在
src/main/cpp/
文件夹中找到示例 C++ 源文件native-lib.cpp
,它提供一个简单的stringFromJNI()
函数用于返回字符串“Hello from C++”。 此外,在模块的根目录中,应会看到一个用于生成本机库的 CMake 生成脚本CMakeLists.txt
。
若要详细了解如何将 C 和 C++ 代码添加到项目,请参阅 Android developer guide(Android 开发人员指南)。 若要查找使用 C++ 集成的 Android NDK 示例,请参阅 GitHub 上的 Android NDK 示例存储库。 若要在 Android 上编译和运行 C++ 游戏,请使用 Google Play 游戏服务 API。
设备用户预期应用程序具有特定的外观和行为... 无论是轻扫、点击还是使用语音控件,用户都会对应用程序的外观及其使用方式抱有特定的预期。 这些预期应保持一致,以减少混淆和挫败感。 Android 提供了这些平台和设备预期的指南,其中结合了视觉和导航模式的 Google 材料设计基础知识,以及兼容性、性能和安全性方面的质量准则。
在 Android 设计文档中了解详细信息。
Microsoft 也提供了设计指导,旨在为 Microsoft 移动应用的整个产品组合提供无缝的体验。