美文网首页wxxw
shrinkResources 的使用

shrinkResources 的使用

作者: 程序猿TODO | 来源:发表于2021-03-09 09:32 被阅读0次

    一.背景
    对于缩小APK大小,除了开启混淆

    minifyEnabled true
    还有使用
    shrinkResources true
    说下这两者的区别
    minifyEnabled 这个是用来开启删除无用代码,比如没有引用到的代码

    shrinkResources 用来开启删除无用资源,也就是没有被引用的文件(经过实测是drawable,layout,实际并不是彻底删除,而是保留文件名,但是没有内容,等等),但是因为需要知道是否被引用所以需要配合mififyEnable使用,只有当两者都为true的时候才会起到真正的删除无效代码和无引用资源的目的

    二.实际动手试试
    同样的资源代码

    1.只有minififyEnable false 或者 minififyEnable false && shrinkResources true

    APK大小为1.39M

    资源文件和layout都存在且是有内容的

    2.只有minifyEnable true

    866K

    资源文件和layout都存在且是有内容的
    3.minifyEnable true && shrinkResources true

    资源文件在但是没有内容大小都变成67字节,layout文件内容被清空

    4.minifyEnable true && shrinkResources true 在res/raw/keep.xml(避免被误删除)写了配置的

    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools"
               tools:keep="@layout/activity_four,@drawable/no_reference_but_keep"/>
    

    没有在配置文件中声明保存的文件没有内容,声明保存的文件有内容(资源文件和layout文件)

    注意:string.xml中没有被引用的怎么设置都不会被删除

    可以通过gradlew clean assembleRelease - info来获得APK缩减资源的概览

    当您压缩资源时,Gradle Console 会显示它从应用软件包中移除的资源的摘要。例如:

    :android:shrinkDebugResources
    Removed unused resources: Binary resource data reduced from 2570KB to 1711KB: Removed 33%
    :android:validateDebugSigning
    

    相关文章

      网友评论

        本文标题:shrinkResources 的使用

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