创建免安装的 app bundle

要创建 Google Play 免安装体验,您需要将其添加到 Android App Bundle 中。这类软件包称为免安装的 app bundle。本文档介绍如何针对免安装的 app bundle 设置开发环境,以及如何配置、构建、测试和发布免安装的 app bundle。

如果您已经有免安装应用项目,但它使用的是已弃用的功能插件 (com.android.feature),您可以了解如何迁移您的免安装应用以支持 Android App Bundle

设置开发环境

要在 app bundle 中提供免安装体验,您需要访问 Google Play 免安装体验开发 SDK。您可以通过以下某种方式安装该 SDK:

  • 安装 Android Studio 3.3 或更高版本。打开 Android Studio,然后从 SDK 管理器SDK Tools 标签页下载 Google Play 免安装体验开发 SDK。
  • 从命令行安装:

        cd path/to/android/sdk/tools/bin && \
          ./sdkmanager 'extras;google;instantapps'
        

此外,如果您想在本地测试免安装体验,可以使用物理或虚拟设备。

针对免安装体验配置您的项目

为了与 Google Play 免安装体验兼容,您必须在几个方面对免安装 app bundle 进行适当的配置。下面几节将介绍这些注意事项。

免安装的应用模块

您可以通过以下某种方式声明 app bundle 支持免安装体验:

  • 如果您要在 Android Studio 中创建新项目,请在 Configure your project 步骤中选中 This project will support instant apps 复选框。
  • 如果您已经有 app bundle,但它只包含一个基础模块,则可以通过在模块清单中添加以下声明来使该 app bundle 支持免安装体验:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
  • 如果您的现有 app bundle 包含多个模块,则可以创建免安装的动态功能模块。此过程还会使应用的基础模块支持免安装体验,让您可以选择在应用内支持多个免安装入口点

支持的权限

免安装的 app bundle 只能使用以下列表中的权限:

访问安装版应用

如果要开发免安装体验,请记住除非满足以下某种条件,否则该体验将无法与设备上的安装版应用互动:

  • 安装版应用中的一个或多个 Activity 将其 android:visibleToInstantApps 元素设为 true – 此元素适用于运行 Android 8.0(API 级别 26)或更高版本的应用。
  • 安装版应用包含具有 CATEGORY_BROWSABLE 的 intent 过滤器。
  • 免安装体验使用 ACTION_SENDACTION_SENDTOACTION_SEND_MULTIPLE 操作发送 intent。

执行环境

为了提高安全性,Google Play 免安装体验在一种特殊的 SELinux 沙盒中运行免安装的 app bundle。为了与此环境兼容,您需要在免安装的 app bundle 中创建以下配置:

构建 app bundle

您可以使用 Android Studio 或命令行界面来构建免安装的 app bundle。

Android Studio

使用 Android Studio,您可以依次选择 Build > Build Bundle(s) / APK(s) > Build Bundle(s) 来构建 app bundle。要详细了解如何构建项目,请参阅构建您的项目

命令行界面

您还可以使用 Gradle 从命令行构建 app bundle。完成此构建后,请运行以下命令来执行免安装体验健全性检查:

    ia check app-artifact
    

该应用工件可以是 ZIP 文件、app bundle 或包含至少一项免安装体验的 APK 列表。

测试免安装体验

在发布免安装 app bundle 之前,您可以从以下任一位置测试免安装体验,以验证其能否正常运行:

Android Studio

要使用 Android Studio 在本地设备上测试应用的免安装体验,请执行以下步骤:

  1. 如果您的测试设备上有安装版应用,请将其卸载。
  2. 在 Android Studio 中,从“Run/Debug Configurations”对话框General 标签页中显示的安装选项中,勾选 Deploy as instant app 复选框。
  3. 在菜单栏中依次选择 Run > Run,或点击工具栏中的 Run 按钮 ,然后选择要用来测试应用的免安装体验的设备。应用的免安装体验会加载到您选择的测试设备上。

命令行界面

要使用 Android Studio 在本地设备上测试应用的免安装体验,请执行以下步骤:

  1. 如果您的测试设备上有安装版应用,请将其卸载。
  2. 输入以下命令,在测试设备上旁加载并运行您的免安装应用:
    ia run output-from-build-command
    

内部测试轨道

要通过 Play 商店或网站上的横幅测试应用的免安装体验,请将应用发布到 Play 管理中心的内部测试轨道上。为此,请执行以下步骤:

  1. 请按照将您的 app bundle 上传到 Play 管理中心指南中的步骤上传 app bundle。
  2. 为上传的软件包制作发布到内部测试轨道的版本。要了解详情,请参阅有关如何准备和发布版本的支持文章。
  3. 使用内部测试人员帐号登录设备,然后通过以下界面之一启动免安装体验:

    • 应用的 Play 商品详情中的立即体验按钮。
    • 应用网站上的横幅中的链接。

将 app bundle 发布到正式版轨道

要发布免安装的 app bundle,请执行以下步骤:

  1. 使用发布密钥为您的 app bundle 签名(如果尚未执行签名),然后将 app bundle 上传到 Play 管理中心
  2. 在 Play 管理中心,依次打开 Release management > Android Instant Apps,然后导航到 instant app production 轨道。
  3. 选择 Update from Library,然后选择已上传的免安装 app bundle。

其他资源

要详细了解如何创建免安装体验和 Android App Bundle,请参阅以下资源:

视频:利用 App Bundle 打造免安装应用
观看 2018 年 Android 开发者峰会中本次会议的视频,了解如何为 Android App Bundle 添加免安装体验。
视频:使用 Android App Bundle 发布体量更小的应用
了解如何通过 app bundle 加快应用开发速度,并为用户创建更小的 APK。
Codelab:您的首个 Android App Bundle
关于创建 Android App Bundle 并向其中添加功能的分步指南。
Android App Bundle 格式
详细了解 bundletool 命令行程序如何使用应用的代码和资源构建 app bundle。