当前位置:  开发笔记 > Android > 正文

使用APK Splits for Release但不使用Debug构建类型

如何解决《使用APKSplitsforRelease但不使用Debug构建类型》经验,为你挑选了2个好方法。

我已成功实施APK Splits,以便为不同的ABI生成单独的APK.

但是,为了提高效率(因为我在调试中不需要非armeabi-v7a APK),我想限制Debug版本只生成armeabi-v7a APK.

如何才能做到这一点?

一个想法是这样的:

abi {
    enable true
    reset()
    include 'x86', 'armeabi-v7a', 'mips'
    universalApk false
}

也许有一些enable基于Build类型设置的方法?



1> 小智..:

您可以尝试@ Geralt_Encore的答案的变体,这避免了单独的gradlew命令.在我的情况下,我只关心使用APK拆分来减少已发布的APK文件大小,我想在Android Studio中完全执行此操作.

splits {
    abi {
      enable gradle.startParameter.taskNames.any { it.contains("Release") }
      reset()
      include 'x86', 'armeabi-v7a', 'mips'
      universalApk false
    }
}

如果assembleRelease前缀不是字面上的名称,则可能需要将前缀替换为应用程序模块的名称gradlew.

从我所见,Build | 在Android Studio中生成签名的APK菜单项使用assembleReleaseGradle目标生成APK .

请注意,如果您使用构建版本生成APK,或者您的版本构建未命名gradlew,则需要相应地更改assembleRelease目标,例如,gradlew如果您的构建风格是assembleRelease.


部分字符串匹配使它更清洁`taskNames.any {it.contains("assembleRelease")}`

2> Geralt_Encor..:

您可以enable根据命令行参数进行设置.当我只想为发布版本使用拆分时,我已经解决了类似的问题,但不适用于常规的调试版本.

splits {
    abi {
        enable project.hasProperty('splitApks')
        reset()
        include 'x86', 'armeabi-v7a'
    }
}

然后./gradlew -PsplitApks assembleProdRelease(在我的情况下prod是一种味道).

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有