Android Studio 如何编译运行应用?
前面的小节我们介绍了运行配置相关的知识,从本小结我们学习如何构建和运行我们的应用。
1. 构建和运行
我们只需点击几下,即可让 Android Studio 设置好要部署至 Android 模拟器或已连接设备的新项目。
1.1 编译运行
要编译和运行我们的应用,请按以下步骤操作:
-
在工具栏中,从运行配置下拉菜单中选择我们的应用。
-
从目标设备下拉菜单中,选择要用来运行应用的设备。
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 面板有两列:Module 和 Active Build Variant。模块的 Active Build Variant 值决定了 IDE 部署到连接的设备并显示在编辑器中的构建变体。
要在变体之间切换,请点击模块的 Active Build Variant 单元格,然后从列表字段中选择所需的变体。
对于含有原生/C++ 代码的项目
Build Variants 面板有三列:Module、Active Build Variant 和 Active ABI。模块的 Active Build Variant 值决定了 IDE 部署到设备并显示在编辑器中的构建变体。对于原生模块,Active ABI 值决定了编辑器使用的 ABI,但不会影响部署的内容。
要更改构建变体或 ABI,请点击 Active Build Variant 或 Active 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 为构建应用而执行的任务,如下图:
- Build 标签页:以树状显示 Gradle 执行的任务,其中每个节点表示一个构建阶段或一组任务依赖项。如果您收到构建时错误或编译时错误,可以检查该树并选择一个元素来查看错误输出;
-
Sync 标签页:显示 Gradle 为与项目文件同步而执行的任务。与 Build 标签页类似,如果您遇到同步错误,可以在树中选择元素来查找有关错误的更多信息;
-
Restart:通过为项目中的所有模块生成中间构建文件,执行与依次选择 Build > Make Project 相同的操作;
-
Toggle view:在以图形树形式显示任务执行情况与显示 Gradle 中更详细的文本输出之间切换。
如果在构建流程中出现错误,Gradle 可能会向我们推荐一些命令行选项来帮助我们解决问题,如 --stacktrace 或 --debug。要在构建流程中使用命令行选项,请执行以下操作:
-
打开 Settings 或 Preferences 对话框:
-
在 Windows 或 Linux 上,从菜单栏中依次选择 File > Settings。
-
在 Mac OSX 上,从菜单栏中依次选择 Android Studio > Preferences。
-
-
依次转到 Build, Execution, Deployment > Compiler。
-
在 Command-line Options 旁边的文本字段中,输入您的命令行选项:
- 点击 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 Activity 或 Apply Code Changes 后,Android Studio 会构建新 APK 并确定是否可以应用更改。如果无法应用更改并且会导致 Apply Changes 失败,则 Android Studio 会改为提示我们重新运行您的应用。不过,如果我们不想在每次发生这种情况时都收到提示,则可以将 Android Studio 配置为在无法应用更改时自动重新运行您的应用。
要启用此行为,请按以下步骤操作:
-
打开 Settings 或 Preferences 对话框:
-
在 Windows 或 Linux 上,从菜单栏中依次选择 File > Settings。
-
在 macOS 上,从菜单栏中依次选择 Android Studio > Preferences。
-
-
依次转到 Build, Execution, Deployment > Deployment。
-
选中复选框以针对任一 Apply Changes 操作启用自动 Run fallback。
-
点击 OK。
4. 小结
本节课程我们主要学习了如何编译和运行应用。本节课程的重点如下:
- 掌握构建变体和处理构建错误;
- 掌握Apply Changes方面的知识。