生成适用于 Android 的 Java 应用

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方法。

若要生成第一个 Android 应用,请执行以下步骤:

  1. (GitHub、Bitbucket、VSTS、Azure DevOps) 连接到存储库服务帐户。
  2. 选择应用所在的存储库和分支。
  3. 选择要生成的 Android 项目。
  4. 设置第一个生成。

注意

要使应用在实际设备上运行,生成需要使用有效证书进行代码签名。

注意

App Center 通过搜索 Android 项目的 gradle (和 gradlew) 目录文件来跟踪项目。 请不要在项目 .gitignore 中包含这些文件,因为 App Center Build 将无法找到它们。

警告

由于 JCenter 最近关闭,某些应用在使用 App Center 生成时可能会遇到 Gradle 任务失败。 请查看 Gradle 提供的迁移指南。 作为一种解决方法,可以从 文件中删除 build.gradle 的所有jcenter()实例,并将其替换为 jcenter { url "http://jcenter.bintray.com/"}在此处阅读有关 JCenter 关闭的详细信息。

1. 链接存储库

必须连接到存储库服务帐户(如果尚未连接)。 连接帐户后,选择 Android 项目所在的存储库。 若要为存储库设置生成,需要为其设置管理员和拉取权限。

2. 选择分支

选择存储库后,选择要生成的分支。 默认情况下,将列出所有活动分支。

3. 设置第一个生成

在首次生成之前,需要配置 Android 项目。

3.1. 生成触发器

默认情况下,每次开发人员推送到配置的分支时,都会触发新的生成。 这称为“持续集成”。 如果希望手动触发新版本,可以在配置窗格中更改此设置。

3.2. 生成变体

可用的生成变体将从 build.gradle (应用级别) 文件中指定的生成类型和产品风格进行填充。 选择应生成的生成变体。

注意

App Center Build 支持查找生成变体,作为生成类型 (调试、发布或自定义) 和 gradle 声明的产品风格之一的组合。 目前不支持检测风格维度 (多种产品口味) 的组合。

3.3. 生成 Android App Bundle (.aab)

Android 应用程序包是上传到 Play 商店的分发格式,用于为特定设备生成优化的 APK。 有关 Android 应用程序包的详细信息,请参阅 官方 Android 文档

切换 Android 应用程序包选项以生成 .aab 除 之外。.apk build.gradle如果 (应用级别) 文件包含 android.bundle 块,则此选项已打开。

3.4. 递增版本号

启用后,应用 AndroidManifest.xml 中的版本代码会针对每个生成自动递增。 更改发生在实际生成期间,不会提交到存储库。

3.5. 代码签名

如果启用,成功生成将生成一个 .apk 文件和一个附加 .aab 文件。 若要将内部版本发布到 Play 商店,需要使用存储在密钥存储中的有效证书对其进行签名。 若要对分支生成的生成进行签名,请在配置窗格中启用代码签名,将密钥存储上传到存储库,并在配置窗格中提供相关凭据。 可以在 App Center 的 Android 代码签名文档中阅读有关代码签名的详细信息。 .aab将使用与 相同的凭据对 .apk进行签名。

3.6. 在真实设备上启动成功的生成

使用新生成的 APK 文件测试应用是否在真实设备上启动。 这增加了大约 10 分钟的总生成时间。 详细了解 如何配置启动测试

3.7. 从 build.gradle (应用级别) 文件进行配置

有关生成的特定信息将从 Gradle 文件收集,包括依赖项、生成工具版本、生成类型和产品风格。

3.8. 分发生成

可以将分支中的每个成功生成配置为分发到以前创建的通讯组或存储目标。 可以从分发服务中添加新的通讯组或 配置存储连接 。 始终有一个名为“协作者”的默认通讯组,其中包含有权访问该应用的所有用户。

注意

如果分发到 Google Play 商店,则首选 Android App Bundle (.aab) ,并且将在启用时分发。 对于 App Center 通讯组和Intune存储目标,即使.aab还生成了 ,也会使用常规.apk

4.生成结果

触发生成后,它可以处于以下状态:

  • queued - 生成处于等待释放资源的队列中。
  • 生成 - 应用正在生成并运行相关任务。
  • succeeded - 生成已成功完成。
  • failed - 生成已完成,但失败。 可以下载并检查生成日志进行故障排除。
  • 已取消 - 生成已被用户操作取消,或者已超时。

4.1. 生成日志

对于已完成的生成 (成功或失败) ,请下载日志以了解有关生成过程的详细信息。 App Center 提供包含以下文件的存档:

|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
    |-- <build-step-1>
    |-- <build-step-2>
    |--
    |-- <build-step-n> (e.g. n_Post Job Cleanup.txt)

特定于生成步骤的日志 (位于存档) 的 build/ 目录中,有助于排查和了解生成失败的步骤和原因。

4.2. 应用包 (APK)

APK 是包含 Android 应用和资产的包。 如果内部版本已正确签名,则可以在真实设备上安装 APK 并部署到 Play Store。 如果生成尚未签名,则 APK 可以在仿真器上运行或用于其他目的。

4.3. 生成多个 APK

如果应用配置生成多个 APK,则还需要生成通用 APK。 我们的生成系统使用一个main APK 文件,并将忽略特定于特定 CPU ABI 或屏幕密度的所有 APK。 若要详细了解 APK 拆分和生成通用 APK,请阅读 ABI 拆分指南

4.4. deobfuscation-mapping 文件 (mapping.txt)

该文件 mapping.txt 包含有关如何将应用的模糊堆栈跟踪映射回原始类和方法名称的信息。

  • 如果之前已在应用中将 App Center SDK 与已启用故障报告模块集成,并使用 Proguard 或 R8 缩小和模糊处理应用二进制文件,则崩溃报告服务需要此 mapping.txt 文件才能生成以显示 人工可读 (取消混淆) 故障报告
  • 如果之前在应用中集成了另一个 SDK 用于故障报告目的, (例如 HockeyApp SDK) ,则相应的服务需要 mapping.txt 文件显示可读的故障报告。

5. 支持的版本和要求

支持生成 Android 应用的最低版本为 7.0 (API 级别 24) 。 Android 应用可以具有运行所需的较低最低 API 级别,但必须至少面向 API 级别 24。

必须使用 Gradle 和 Android Gradle 插件生成应用才能正确配置。 存储库需要包含 Gradle 包装器。

另请参阅: 云生成计算机信息