【问题标题】:On-demand feature module not installed by default默认情况下未安装按需功能模块
【发布时间】:2019-11-15 22:10:06
【问题描述】:

我们有一个名为replay 的动态功能模块。我们开始将此作为安装时模块:

    <dist:module
        dist:instant="false"
        dist:title="@string/title_replay">
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
        <dist:fusing dist:include="true" />
    </dist:module>

当我们在本地安装应用时:

$ ./gradlew app:installDebug --info

我们看到基础应用和动态模块都安装了:

Generating APKs for device 'Pixel 3a - 10' for app:debug
The APKs have been extracted in the directory: /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259
Installing APKs 'base-xxhdpi.apk, base-master_2.apk, base-en.apk, base-arm64_v8a_2.apk, replay-xxhdpi.apk, replay-master.apk' on 'Pixel 3a - 10' for app:debug
[SplitApkInstallerBase]: Created install session 1842207670 with options -r -t -S 12108428
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/base-xxhdpi.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/base-master_2.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/base-en.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/base-arm64_v8a_2.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/replay-xxhdpi.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/replay-master.apk to session 1842207670
Installed on 1 device.
Task :app:installDebug in app Finished

但是当我们改为按需时:

    <dist:module
        dist:instant="false"
        dist:title="@string/title_replay">
        <dist:delivery>
            <dist:on-demand />  THIS IS THE ONLY CHANGE
        </dist:delivery>
        <dist:fusing dist:include="true" />
    </dist:module>

安装不再安装动态 apk:

$ ./gradlew app:installDebug --info

Generating APKs for device 'Pixel 3a - 10' for app:debug
The APKs have been extracted in the directory: /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897
Installing APKs 'base-xxhdpi.apk, base-master_2.apk, base-en.apk, base-arm64_v8a_2.apk' on 'Pixel 3a - 10' for app:debug
[SplitApkInstallerBase]: Created install session 745896174 with options -r -t -S 12031951
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897/base-xxhdpi.apk to session 745896174
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897/base-master_2.apk to session 745896174
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897/base-en.apk to session 745896174
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897/base-arm64_v8a_2.apk to session 745896174
Installed on 1 device.

在开发过程中我们应该如何在本地执行此操作?我们使用bundletool 来生成通用apk 吗?我认为 Android 插件足够聪明,可以为我们完成所有这些工作。

【问题讨论】:

    标签: android android-gradle-plugin dynamic-feature-module


    【解决方案1】:

    (当前)在Android Studio中,它仅预先安装动态功能模块(如“模块”对话框中选择),选择“默认APK”而不是“ App Bundle”以进行部署,这可能是由这个issue

    【讨论】:

    • 谢谢。希望 CL 也有办法做到这一点。现在我们只使用两个单独的 AndroidManifest.xml 进行调试和发布,调试设置为安装时,发布设置为按需
    猜你喜欢
    • 2022-11-19
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2019-03-29
    • 2017-10-18
    • 2010-12-15
    • 2018-05-30
    • 2021-02-24
    相关资源
    最近更新 更多