美文网首页性能优化
APK优化(七)之启用shrinkResources资源缩减 ,

APK优化(七)之启用shrinkResources资源缩减 ,

作者: 晓晓桑 | 来源:发表于2019-02-27 18:25 被阅读257次

    官网:https://developer.android.com/studio/build/shrink-code

    要启用资源压缩

    请在 build.gradle 文件中将 shrinkResources 属性设置为 true(在用于代码压缩的 minifyEnabled 旁边)。例如:

    android {
        ...
        buildTypes {
            release {
                //资源缩减
                shrinkResources true
                //源代码混淆 true
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
            debug {
                //资源缩减
                shrinkResources true
                //源代码混淆 true
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    

    自定义要保留的资源

    如果您有想要保留或舍弃的特定资源,请在您的项目中创建一个包含 <resources> 标记的 XML 文件,并在 tools:keep 属性中指定每个要保留的资源,在 tools:discard 属性中指定每个要舍弃的资源。这两个属性都接受逗号分隔的资源名称列表。您可以使用星号字符作为通配符。路径:res/raw/keep.xml。构建不会将该文件打包到 APK 之中。

    res---raw---keep.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools"
               tools:discard="@color/selector_tint_color"
               tools:keep="@layout/activity_test1,@layout/activity_test2"
               tools:shrinkMode="strict"/>
        <!--discard:做严格检查-->
        <!--keep :不做严格检查-->
        <!--shrinkMode="strict" :该模式只保留在代码或者资源文件中明确引用的资源-->
        <!--shrinkMode="safe" :该模式会保留所有明确引用的资源以及可能被 Resources.getIdentifier() 动态引用的资源-->
    
    image.png

    项目中activity_test资源被用了,activity_test1、activity_test2被keep住了,activity_test3没被keep住,也没被用,这时rebuild之后,看效果


    image.png
    image.png
    image.png
    image.png

    apk里面的activity_test、activity_test1、activity_test2都有代码,而activity_test3里面代码没有了,而且占用内存极小,不需要做文件删除,就可以使不用的资源最小化

    APK优化(一)之SVG--------------解决大量的套图问题
    APK优化(二)之Tint着色器-------------减少apk体积
    APK优化(三)之资源打包配置----resources.arsc
    APK优化(四)之.so动态库打包配置
    APK优化(五)之移除无用资源,物理删除
    APK优化(六)之代码混淆
    APK优化(七)之启用shrinkResources资源缩减 ,不需要物理上的删除
    APK优化(八)之启用webp转换插件-----图片变小
    APK优化(九)之资源res文件混淆和7ZIP压缩

    相关文章

      网友评论

        本文标题:APK优化(七)之启用shrinkResources资源缩减 ,

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