APK大小的瘦身的总结:

    xiaoxiao2021-03-25  89

    首先是看了博客:http://blog.csdn.net/sw950729/article/details/64919051 时,觉得大神我就是马云飞写的很有道理,所有自己就自己写了一遍,长话短说: 在实际开发中,特别是多人接手迭代开发的项目中,随着时间的推移,项目会越来越大。所以让项目大小变小是可以如下操作:

    1,在gradle使用minifyEnabled进行Proguard混淆的配置,可大大减小APP大小,如以下代码:

    buildTypes { release { //开启混淆(as自带默认配置) minifyEnabled ture //去出无用的资源文件 shrinkResources true //移除无用的Resources的资源文件 zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }

    2,删除无用资源,主要是xml文件,操作–点击Analyze——>Run Inspection by Name–然后输入unused Resources即可显示出未使用的资源文件,其操作步骤为:

    3,图片瘦身值熊猫大法–使用tinypng压缩图片,官方网站:https://tinypng.com PNG是有用的,因为它是唯一广泛支持的格式,可以存储部分透明的图像。格式使用压缩,但是文件仍然可能很大。使用TinyPNG缩小您的应用程序和网站的图像。它将使用更少的带宽和更快的加载。图片就不截取出来了,大家可以直接去官网查看了解。

    4,通过重构Refactor来删除无用的资源(通过id找到),具体操作如下 通过Remove Unused Resources来删除无用的资源

    其中Refactor表示直接重构,Preview表示预览的意思,建议大家先使用预览的方式,因为代码中引用方式不同,所以存在代码中使用了某个资源,但是依然被当成没有引用的情况,例如通过使用getIdentifier、Uri等方式。

    5,针对不同cpu的so库进行打包,目前仍就在试验当中 armeabi、armeabi-v7a(32的cpu),armeabi-v8a(64位的cpu)和x86, 在其安装设备中,是默认以armeabi为选项,同时需要指出:打包出的x86的so,总会比armeabi平台的体积更小,但是却有性能的损耗。

    如果项目只包含了 armeabi,那么在所有Android设备都可以运行; 如果项目只包含了 armeabi-v7a,除armeabi架构的设备外都可以运行; 如果项目只包含了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的; 如果同时包含了 armeabi, armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。 所以其操作为: 5.1为了减小apk体积,只保留armeabi和armeabi-v7a两个文件夹,并保证这两个文件夹中so数量一致。 2,对只提供aremabi版本的第三方so,原样复制一份到armeabi-v7a文件夹 以上!

    转载请注明原文地址: https://ju.6miu.com/read-12947.html

    最新回复(0)