配置免安装分发

Google Play 免安装体验让用户无需在设备上安装 APK 即可与应用互动。用户可以通过 Google Play 商店中的“立即体验”按钮或您创建的网址体验您的应用。这种内容分发形式可让您更轻松地提高应用的使用率。

您可以仅在应用的基本模块支持免安装体验时使动态功能支持免安装体验。这是因为,如果用户想要体验您的应用中某项支持免安装体验的动态功能,他们的设备还必须下载应用的基本模块以获取通用代码和资源。请注意,要支持 Google Play 免安装体验,基本模块和动态功能的下载大小必须满足严格的大小限制。要了解详情,请阅读通过减少应用或游戏大小来启用免安装体验

如果您使用 Android Studio 3.3 或更高版本创建支持免安装体验的动态功能模块(如本节中所述),IDE 会在每个模块的清单中添加以下内容,从而自动使基本模块和动态功能模块支持免安装体验:

<manifest xmlns:dist="http://schemas.android.com/apk/distribution"
        ... >
        <dist:module dist:instant="true" />
        ...
    

请注意,当您设置 dist:instant="true" 时,您无法同时设置 dist:onDemand="true"。也就是说,在下载并安装您的应用时,系统会使用该应用的基本 APK 自动下载并安装支持免安装体验的动态功能。不过,您仍可以使用 Play 核心库在享受免安装体验的过程中按需请求支持免安装体验的模块。

配置一个新模块以实现免安装分发

要使用 Android Studio 在应用项目中添加支持免安装体验的动态功能模块,请执行以下操作:

  1. 在 IDE 中打开您的应用项目(如果您尚未打开)。
  2. 从菜单栏中依次选择 File > New > New Module
  3. Create New Module 对话框中,选择 Instant Dynamic Feature Module,然后点击 Next
  4. Configure your new module 部分中,完成以下操作:

    1. 从下拉菜单中选择应用项目的 Base application module
    2. 指定 Module name。IDE 会使用此名称在 Gradle 设置文件中将该模块标识为 Gradle 子项目。当您编译 App Bundle 时,Gradle 会使用子项目名称的最后一个元素在动态功能模块的清单中注入 <manifest split> 属性。
    3. 指定该模块的 package name。默认情况下,Android Studio 会建议一个软件包名称,该名称由基本模块的根目录软件包名称和您在上一步中指定的模块名称合成。
    4. 选择您希望该模块支持的 Minimum API level。此值应与基本模块的值一致。
    5. 指定最多包含 50 个字符的 Module title。平台会使用此标题向用户标识该模块。因此,应用的基本模块必须将模块标题作为您能读懂的字符串资源纳入其中。使用 Android Studio 创建模块时,IDE 会为您将字符串资源添加到基本模块中,并在动态功能模块的清单中注入以下条目:

      <dist:module
              ...
              dist:title="@string/title_dynamic_feature">
          </dist:module>
          
    6. 如果您希望搭载 Android 4.4(API 级别 20)及更低版本的设备可以使用该模块并将其包含在多 APK 中,请选中 Fusing 旁边的复选框。Android Studio 会在该模块的清单中注入以下内容,以反映您的选择。

      <dist:module>
              <dist:fusing dist:include="true" />
          </dist:module>
          
  5. 点击 Finish

在 Android Studio 完成模块创建后,从 Project 窗格中自行检查其内容(从菜单栏中依次选择 View > Tool Windows > Project)。默认代码、资源和组织应与标准应用模块的默认代码、资源和组织类似。

在实现要按需下载的功能后,请了解如何使用 Play 核心库请求该功能。

部署应用

在开发支持 Dynamic Delivery 的应用时,您可以像往常一样,从菜单栏中依次选择 Run > Run(或点击工具栏中的 Run 图标 ),将该应用部署到连接的设备。

如果您的应用项目包含一个或多个动态功能模块,则可以通过修改现有的运行/调试配置来选择要在部署应用时包含的动态功能,如下所示:

  1. 从菜单栏中依次选择 Run > Edit Configurations
  2. Run/Debug Configurations 对话框的左侧面板中,选择所需的 Android App 配置。
  3. General 标签中的 Dynamic features to deploy 下,选中要在部署应用时包含的每个动态功能模块旁边的复选框。
  4. 点击 OK

默认情况下,Android Studio 不会以免安装体验的形式部署支持免安装体验的模块,也不会使用 App Bundle 部署您的应用。但是,IDE 会编译针对部署速度(而非 APK 大小)进行了优化的 APK,并将其安装到设备中。要将 Android Studio 配置为通过 App Bundle 编译和部署 APK 和免安装体验,请修改运行/调试配置

其他资源

要详细了解如何使用/支持 Dynamic Delivery,请使用以下资源。

示例

博文

视频