AndResGuard接入

作者: 神的漾 | 来源:发表于2020-10-30 18:44 被阅读0次

    AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a

    AndResGuard不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件中输入签名信息,可自动重签名并对齐,得到可直接发布的apk)以及对应资源ID的mapping文件。

    一方面可以减少包体积,一方面逆向后不好区分资源的用处.

    项目github地址:https://github.com/shwenzhang/AndResGuard

    1.项目根布局的build.gradle添加(最新版本是1.2.19,但是build不起来,经过尝试只有这个1.2.17可以使用)

    dependencies {
     classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.17'
    }
    

    2.在app目录下的build.gradle添加

    最上面添加

    apply plugin: 'AndResGuard'
    

    最下面添加

    andResGuard {
    // mappingFile = file("./resource_mapping.txt")
     mappingFile = null
     use7zip = true
     useSign = true
     // 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字
     keepRoot = true
     // 设置这个值,会把arsc name列混淆成相同的名字,减少string常量池的大小
    // fixedResName = "arg"
     // 打开这个开关会合并所有哈希值相同的资源,但请不要过度依赖这个功能去除去冗余资源
     mergeDuplicatedRes = false
     whiteList = [
                // for your icon
     "R.drawable.ic_launcher",
                // for fabric
     "R.string.com.crashlytics.*",
                // for google-services
     "R.string.google_app_id",
                "R.string.gcm_defaultSenderId",
                "R.string.default_web_client_id",
                "R.string.ga_trackingId",
                "R.string.firebase_database_url",
                "R.string.google_api_key",
                "R.string.google_crash_reporting_api_key"
     ]
        compressFilePattern = [
                "*.png",
                "*.jpg",
                "*.jpeg",
                "*.gif",
        ]
        sevenzip {
     artifact = 'com.tencent.mm:SevenZip:1.2.19'
     //path = "/usr/local/bin/7za"
     }
    
     /**
     * 可选: 如果不设置则会默认覆盖assemble输出的apk
     **/
     // finalApkBackupPath = "${project.rootDir}/final.apk"
    
     /**
     * 可选: 指定v1签名时生成jar文件的摘要算法
     * 默认值为“SHA-1”
     **/
     // digestalg = "SHA-256"
    }
    

    3.点击asyn now 后等待build完毕.先运行一个包.出来

    1.png

    是82.3MB

    再去右侧的gradle找到对应的包的gradle命令,是dev就选dev是online就选online的.双击运行.时间比较长,耐心等待.

    2.png

    执行完毕后可以看到

    image.png

    新生成的包大概80.6MB,大概缩小了2%.
    后续研究看是否可以打包后自动运行这个gradle方法

    相关文章

      网友评论

        本文标题:AndResGuard接入

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