配置免安装分发

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

仅当应用的基本模块也支持免安装体验时,您才能使功能支持免安装体验。这是因为,如果用户想要体验您的应用中某个支持免安装体验的功能模块,他们的设备还必须下载应用的基本模块以获取通用代码和资源。请注意,为了支持 Google Play 免安装体验,基本模块和功能的下载必须满足几个条件:

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

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

此外,在下载并安装您的应用时,系统会随该应用的基本 APK 自动下载并安装支持免安装体验的功能模块。因此,IDE 还会在支持免安装体验的功能模块中添加以下内容。

    <dist:module ...>
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
    </dist:module>

此行为意味着,当您设置 dist:instant="true" 时,不能同时包含 <dist:on-demand />。不过,您可以根据需要使用 Play Feature Delivery 库在免安装体验中请求支持免安装体验的模块。

将新模块配置为免安装分发

如需使用 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(最低 API 级别)。此值应与基本模块的值一致。
    5. 指定最多包含 50 个字符的 Module title。平台会使用此标题向用户标识该模块。因此,应用的基本模块必须将模块标题作为您能读懂的字符串资源纳入其中。使用 Android Studio 创建模块时,IDE 会为您将字符串资源添加到基本模块中,并在功能模块的清单中注入以下条目:

      <dist:module
          ...
          dist:title="@string/feature_title">
      </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 Feature Delivery 库请求该功能。

部署应用

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

如果您的应用项目包含一个或多个功能模块,您可以通过修改现有的运行/调试配置以选择需要在部署应用时包含的功能,具体操作步骤如下:

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

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