Android Studio 如何编译运行应用?

前面的小节我们介绍了运行配置相关的知识,从本小结我们学习如何构建和运行我们的应用。

1. 构建和运行

我们只需点击几下,即可让 Android Studio 设置好要部署至 Android 模拟器或已连接设备的新项目。

1.1 编译运行

要编译和运行我们的应用,请按以下步骤操作:

  1. 在工具栏中,从运行配置下拉菜单中选择我们的应用。

  2. 从目标设备下拉菜单中,选择要用来运行应用的设备。


4. 点击 Run 图标 。

1.2 更改运行/调试配置

当我们首次运行应用时,Android Studio 使用默认运行配置。该运行配置用于指定要通过 APK 还是 Android App Bundle 部署我们的应用、要运行的模块、要部署的软件包、要启动的 Activity、目标设备、模拟器设置、logcat 选项,等等。

默认运行/调试配置会构建 APK,启动默认项目 Activity,并使用 Select Deployment Target 对话框选择目标设备。如果默认设置不适合我们的项目或模块,我们可以自定义运行/调试配置,也可以在项目、默认和模块级别创建新配置。要修改运行/调试配置,请依次选择 Run > Edit Configurations

Tips:这部分在前一小节已经详细学习。

1.3 更改编译变体

默认情况下,在我们点击 Run 后,Android Studio 会编译应用的调试版本,不过这仅供在开发期间使用。

要更改 Android Studio 使用的构建变体,请在菜单栏中依次选择 Build > Select Build Variant

对于不含原生/C++ 代码的项目

Build Variants 面板有两列:ModuleActive Build Variant。模块的 Active Build Variant 值决定了 IDE 部署到连接的设备并显示在编辑器中的构建变体。

要在变体之间切换,请点击模块的 Active Build Variant 单元格,然后从列表字段中选择所需的变体。

对于含有原生/C++ 代码的项目

Build Variants 面板有三列:ModuleActive Build VariantActive ABI。模块的 Active Build Variant 值决定了 IDE 部署到设备并显示在编辑器中的构建变体。对于原生模块,Active ABI 值决定了编辑器使用的 ABI,但不会影响部署的内容。

要更改构建变体或 ABI,请点击 Active Build VariantActive ABI 列的单元格,然后从列表中选择所需的变体或 ABI。在我们更改所选内容后,IDE 会自动同步我们的项目。更改应用或库模块的任一列都会将更改应用于所有相关行。

1.4 构建选项

Run 按钮用于构建应用并将其部署到设备。不过,要构建应用并上传发布到应用市场,我们需要使用 Build 菜单中的某个选项来编译项目的部分或全部代码。

Build 菜单中的各项构建选项功能如下:

Make Module

编译自上次编译以来已修改的所选模块中的所有源文件,以及所选模块以递归方式依赖的所有模块。编译包括相关源文件和所有关联的构建任务。我们可以通过在 Project 窗口中选择模块名称或模块的某个文件来选择要构建的模块。此命令不会生成 APK。

Make Project

生成所有模块。

Clean Project

删除所有中间/缓存的构建文件。

Rebuild Project

针对所选编译变体运行 Clean Project 并生成 APK。

Build Bundle(s)/APK(s) > Build APK(s)

为所选的变体构建当前项目中所有模块的 APK。构建完成后,系统将显示确认通知,提供指向 APK 文件的链接以及用于在 APK 分析器中对其进行分析的链接。

Build Bundle(s)/APK(s) > Build Bundle(s)

为所选的变体构建当前项目中所有模块的 Android App Bundle。构建完成后,系统将显示确认通知,提供指向 app bundle 的链接以及用于在 APK 分析器中对其进行分析的链接。

Generate Signed Bundle/APK

使用向导打开一个对话框以设置新的签名配置,并构建已签名的 app bundle 或 APK。我们需要先使用发布密钥为我们的应用签名,然后才能将其上传到 Play 管理中心。

2. 监控构建流程

我们可以通过依次点击 View > Tool Windows > Build(或点击工具窗口栏中的 Build 图标 ),查看有关构建流程的详细信息。该窗口显示 Gradle 为构建应用而执行的任务,如下图:

  1. Build 标签页:以树状显示 Gradle 执行的任务,其中每个节点表示一个构建阶段或一组任务依赖项。如果您收到构建时错误或编译时错误,可以检查该树并选择一个元素来查看错误输出;

  1. Sync 标签页:显示 Gradle 为与项目文件同步而执行的任务。与 Build 标签页类似,如果您遇到同步错误,可以在树中选择元素来查找有关错误的更多信息;

  2. Restart:通过为项目中的所有模块生成中间构建文件,执行与依次选择 Build > Make Project 相同的操作;

  3. Toggle view:在以图形树形式显示任务执行情况与显示 Gradle 中更详细的文本输出之间切换。

如果在构建流程中出现错误,Gradle 可能会向我们推荐一些命令行选项来帮助我们解决问题,如 --stacktrace 或 --debug。要在构建流程中使用命令行选项,请执行以下操作:

  1. 打开 Settings 或 Preferences 对话框:

    • 在 Windows 或 Linux 上,从菜单栏中依次选择 File > Settings

    • 在 Mac OSX 上,从菜单栏中依次选择 Android Studio > Preferences

  2. 依次转到 Build, Execution, Deployment > Compiler

  3. Command-line Options 旁边的文本字段中,输入您的命令行选项:

  1. 点击 OK 保存,然后退出。

3. Apply Changes

在 Android Studio 3.5 及更高版本中,Apply Changes 可让我们将代码和资源更改推送到正在运行的应用,而无需重启应用(在某些情况下,无需重启当前 Activity)。有了这种灵活性,我们就可以控制在想部署和测试细微增量更改时应用的重启范围,同时保持设备的当前状态。

3.1 使用要求

Apply Changes 操作仅在满足以下条件时可用:

  • 我们使用调试编译变体来编译应用的 APK。

  • 我们将应用部署到搭载 Android 8.0(API 级别 26)或更高版本的目标设备或模拟器上。

3.2 使用 Apply Changes

如果要将更改部署到兼容设备,请使用以下选项:

Apply Changes and Restart Activity 图标
尝试通过重启 Activity 但不重启应用来应用资源和代码更改。通常,如果我们修改了方法正文中的代码或修改了现有资源,则可以使用此选项。

Apply Code Changes 图标
尝试仅应用代码更改而不重启任何内容。通常,如果我们修改了方法正文中的代码,但没有修改任何资源,则可以使用此选项。

Run 图标
部署所有更改并重启应用。如果使用任一 Apply Changes 选项都无法应用我们所做的更改,请使用此选项。

3.3 启用 Run 回退机制

在我们点击 Apply Changes and Restart ActivityApply Code Changes 后,Android Studio 会构建新 APK 并确定是否可以应用更改。如果无法应用更改并且会导致 Apply Changes 失败,则 Android Studio 会改为提示我们重新运行您的应用。不过,如果我们不想在每次发生这种情况时都收到提示,则可以将 Android Studio 配置为在无法应用更改时自动重新运行您的应用。

要启用此行为,请按以下步骤操作:

  1. 打开 SettingsPreferences 对话框:

    • 在 Windows 或 Linux 上,从菜单栏中依次选择 File > Settings

    • 在 macOS 上,从菜单栏中依次选择 Android Studio > Preferences

  2. 依次转到 Build, Execution, Deployment > Deployment

  3. 选中复选框以针对任一 Apply Changes 操作启用自动 Run fallback

  4. 点击 OK

4. 小结

本节课程我们主要学习了如何编译和运行应用。本节课程的重点如下:

  • 掌握构建变体和处理构建错误;
  • 掌握Apply Changes方面的知识。