我已成功实施APK Splits,以便为不同的ABI生成单独的APK.
但是,为了提高效率(因为我在调试中不需要非armeabi-v7a APK),我想限制Debug版本只生成armeabi-v7a APK.
如何才能做到这一点?
一个想法是这样的:
abi { enable true reset() include 'x86', 'armeabi-v7a', 'mips' universalApk false }
也许有一些enable
基于Build类型设置的方法?
您可以尝试@ 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菜单项使用assembleRelease
Gradle目标生成APK .
请注意,如果您使用构建版本生成APK,或者您的版本构建未命名gradlew
,则需要相应地更改assembleRelease
目标,例如,gradlew
如果您的构建风格是assembleRelease
.
您可以enable
根据命令行参数进行设置.当我只想为发布版本使用拆分时,我已经解决了类似的问题,但不适用于常规的调试版本.
splits { abi { enable project.hasProperty('splitApks') reset() include 'x86', 'armeabi-v7a' } }
然后./gradlew -PsplitApks assembleProdRelease
(在我的情况下prod是一种味道).