我已经使用Android build-> analysis apk从.apk中看到了下面的报告。
我用过类似的波纹管
buildTypes {
release {
shrinkResources true
minifyEnabled true
zipAlignEnabled true
//Other parameters
debuggable false
jniDebuggable false
renderscriptDebuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
但是我的调试APK 大小为 26.9 MB 。当我要为发行apk 进行构建时,其大小将变为 23.5 MB 。它的大小很大。 请帮助我减少apk或减少至少60%。谢谢Enamul
答案 0 :(得分:1)
拆分apk是一个很好的解决方案。但这又是一招。
如果您仅在自己的apk中包含armeabi-v7a
,除非您支持<4.4 android版本,否则就可以了。
ARMv6
自Android 4.4(10月13日)起不再受Android支持
请参阅此Unity Statics,您只需添加ARMv7
和Intelx86
就可以100%支持设备。
现在您所要做的只是在您的应用程序中包含ARMv7
和x86
。参见abiFilter。
将此添加到您的应用级别build.gradle
buildTypes {
release {
ndk {
abiFilters "x86", "armeabi-v7a"
}
}
按同步
构建并检查大小
答案 1 :(得分:0)
唯一的方法是为每个abi
以下是简短示例:
android {
splits {
abi {
enable true
reset()
include "mips", "x86", "x86_64", "armeabi-v7a", "armeabi-v7a", "arm64-v8a"
}
}
}
使用单个JNI库,您将获得适用于不同体系结构的apk。
但是您还需要为其执行特殊的版本控制过程,因此将文件上传到 Google Play 中没有问题。
赞:
android {
def abiCodes = ['mips':1, 'x86':2, 'x86_64':3, 'armeabi':4, 'armeabi-v7a':5, 'arm64-v8a':6]
android.applicationVariants.all { variant ->
variant.outputs.each {
output ->
def abiName = output.getFilter(OutputFile.ABI)
output.versionCodeOverride = abiCodes.get(abiName, 0) * 100000 + variant.versionCode
}
}
}
答案 2 :(得分:-1)
使用棉绒并从代码中删除不需要的资源。 这是链接 Remove all unused resources from an android project
这可能会对您有所帮助。