APK 大小过大
Posted
技术标签:
【中文标题】APK 大小过大【英文标题】:APK size is too large 【发布时间】:2017-10-06 04:12:27 【问题描述】:您可以看到 res 文件夹只有 2.2 MB,而 APK 大小仍然是 17 MB。 lib 文件夹大小为 11 MB,所以我认为这有问题。任何人都可以建议我这样做有什么问题,以便可以减小我的 APK 大小。
【问题讨论】:
您可以使用 gradle 启用 minify 您的代码,还可以缩减您的资源。 developer.android.com/studio/build/shrink-code.html 您的minifyEnabled
状态如何? runProguard
***.com/questions/25101534/…
是的 minify 和 shrinkResources 都是真的
我也在用proguard
【参考方案1】:
第一
android
// Other settings
buildTypes
release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
第二次
减少资源数量和大小。
删除未使用的资源。
第三次
尽量压缩.jpg文件,可以使用TinyPng
希望这能解决你的问题
【讨论】:
如果你还需要更多尝试使用proguard-android-optimize.txt
developer.android.com/studio/build/shrink-code.html【参考方案2】:
您在应用程序中使用了一些本机代码(您自己的应用程序代码或库),因此 libs 文件夹和 .so(共享对象)文件正在生成。你无法逃脱。哈哈。无论如何,您可以通过将您的 apk 拆分为不同的 CPU 架构来解决此问题。打开您的应用程序级 build.gradle 并粘贴此代码。您将获得针对不同 CPU 架构的不同 apk。
splits
abi
enable true // enable ABI split feature to create one APK per ABI
universalApk true //generate an additional APK that targets all the ABIs
// map for the version code
project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'mips':5, 'mips64':6, 'x86':8, 'x86_64':9]
android.applicationVariants.all variant ->
// assign different version code for each output
variant.outputs.each output ->
output.versionCodeOverride =
project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) * 10000000 + android.defaultConfig.versionCode
稍后,您可以将这些 apk 上传到仅具有特定一种架构的 Play 商店。欲了解更多信息,请参考这个伟大的blog 和这个blog
【讨论】:
以上是关于APK 大小过大的主要内容,如果未能解决你的问题,请参考以下文章