Apk瘦身

2020-04-11  本文已影响0人  佼佼者Mr

优化方式

图片资源优化

    首先选择VD

        矢量图片只需放置一份

        图片太大绘制时间长,制作复杂成都高

    否则选择We'bP,

        体积更小,4.2.1+支持透明度

    之后选择PNG

        有透明度,渐变,阴影的情况下选择

    剩下的选择JPG

资源压缩

    PNG转换成WebP

    1. Android studio 右击鼠标-cover to webp--单张转换

    2.下载转换工具,进行统一压缩

        下载地址https://developers.google.com/speed/webp/docs/precompiled/

    PNG压缩

        1.可以采用ImageOptim或者Pnfyu对png进行压缩

        2.AAPT会使用内置的图片压缩算法来优化res/drawable目录下的PNG图片,但也可能会导致本来已经优化过的图片体积变大,这里禁用aapt优化PNG图片

    Jpg压缩

        同等质量的图片jpg比png要小

        packJpg压缩工具

  总结  app再5.0以后建议使用WebP,5.0以前如果需要透明效果使用png,

    其他优化

        纯色图片代码实现利用shape标签

        减少资源放置份数

        如果只在xxhdpi放一份图片会有问题吗

        能用代码实现的图片尽量用代码实现 圆形 环形 渐变等都可以用代码实现

    开启代码混淆和去除无用资源

android{

        ...

        buildTypes{

            release{

                shrinkResources true

                minifyEnabled true

                proguardFiles getDefaultProguardFile('proguard-android.txt'),

                                'proguard-rules.pro'

                }

            }

        }

进一步资源混淆,微信开源了AndResGuard

其他优化

冗余代码优化

为什么会有冗余代码

1.CTRL+C CTRL+V

2.对项目不了解

荣誉代码的定义

完全一致的代码或者只修改了空格和评论

结构上和句法上一致的代码,例如只是修改了变量名

插入和删除了部分代码

功能和逻辑上一致的代码,语义上的拷贝

用什么工具检测荣誉代码

1.使用工具,例如PMD

2.PMD下载地址 https://pmd.gethub.io/

怎么检测

下载后输入: ./run.sh cpdgui

pmd-d/user/src-R rulesets/java/quickstart.xml -f text

https://pmd.gethub.io/pmd-6.17.0/pmd_rules_java.html

工具Lint

1.检查未使用资源并删除

2.Android studio -Analyze-Run inspection by Name -unused resource

无用代码优化

Analyze->Run inspection by Name -unused declaration ->Module app ->OK

压缩文件存储

1.导入7Zip,压缩存储预置资源

2.使用时,解压到本地,比如asserts中的资源

语言资源优化

再build配置中,配置resConfigs指定需要的语言类型

Splits根据不同的ABI以及不同的密度分别打包

重复的string,color优化

过滤重复的string

定义唯一的color名

减少enum的使用

每减少一个枚举的文件可以减少1K作用的大小

采用常量来定义

优化引用的库

去除不使用的库

优化过时的库

仅仅提取使用的代码

选用更小的外部库

音频资源压缩

采用音频压缩工具,压缩音频,降低音频采样率,通道数等在不明显影响效果的前提下,压缩音频

So动态下发

So可以采用动态下发的方式,将So放到服务器,只下载该手机对应型号的So文件即可

下载失败怎么办?

Gradle中指定abiFilter

ndk{

abiFilters:"x86","armeabi-v7a"

}

上一篇 下一篇

猜你喜欢

热点阅读