美文网首页三千码友在身旁2020
Android apk 体积优化方法总结

Android apk 体积优化方法总结

作者: ImWiki | 来源:发表于2019-12-24 23:28 被阅读0次
    1. 大图使用WebP

    使用WebP可以非常有效降低图片的大小,而且不会降低图片的质量。在Android Studio右击图片就可以转换了,非常方便。

    2. 使用TinyPNG压缩

    https://tinypng.com 是一个非常好的有损压缩工具,降低部分质量情况下可以大幅度降低图片大小,有对应的开放API,也有对应的IEDA插件也方便我们使用。

    3. 去掉不必要的 so 库

    实际上我们只需要支持armeabi-v7a即可。

    android{
        ...
        defaultConfig{
            ...
                ndk {
                abiFilters "armeabi-v7a"
         }
    }
    
    4. so 动态下载

    so文件是占据很大的体积,对于一些不常用的功能,我们可以考虑动态下载,就无需打包到apk中。

    System.load(String filePath);

    5. 去除无用资源

    Android Studio提供了 Remove Unused Resource功能,可以方便我们去除无用的资源文件,但是使用的时候需要谨慎,如果代码中存在getIdentifier方式获取资源文件,切记不要删除,需要写入raw/keep.xml文件中,避免被删除,特别要注意第三方库的资源文件。

    Refactor > Remove Unused Resource


    下面是一个典型的案例 raw/keep.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools"
        tools:keep="@style/rc_*,@style/RC*,@style/Rc*,@xml/rc_*,@drawable/rc_*,@array/rc_*,@layout/rc_*,@color/rc_*,@dimen/rc_*,@string/rc_*,@integer/rc_*,@drawable/u*">
    </resources>
    
    6. shrinkResources

    shrinkResources 和Remove Unused Resource效果是差不多的。Remove Unused Resource 是物理移除,shrinkResources 是打包过程中去掉无用的资源文件,也是通过raw/keep.xml文件来避免没有直接引用的文件被误删。

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources = true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    
    7. AndResGuard

    AndResGuard 是微信团队开源的资源文件混淆工具,是一个帮助你缩小APK大小的工具,他的原理类似Java Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a,不但可以降低apk体积,也可以避免资源文件被盗用。

    8. Java 代码混淆

    开启代码混淆也是降低apk体积的重要手段,可以删除没有使用的代码,并且可以对代码进行压缩。每一个都应该开启混淆,这是保证代码安全的非常重要手段。

    相关文章

      网友评论

        本文标题:Android apk 体积优化方法总结

        本文链接:https://www.haomeiwen.com/subject/tohqoctx.html