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.txtdeveloper.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 大小过大的主要内容,如果未能解决你的问题,请参考以下文章

如何减少APK包的大小

Apk 大小与下载大小

获取 APK / AAB 安装大小

了解 APK、ABB 大小和 Play 商店大小限制

如何在 android studio 中减小 Apk (.apk) 的大小

如何在 Android 中减小 APK 大小?