AndResGuard的使用

AndResGuard个人感觉就是对资源文件路径或者文件名进行了重命名,稍微增加了反编译人员查看资源的直观性,稍微减小了apk的大小;

1):pro下的build.gradle下添加:classpath'com.tencent.mm:AndResGuard-gradle-plugin:1.2.20'


2):咱们app下新建一个文件随你命名:xxx.grdle

并写入:

applyplugin:'AndResGuard'

andResGuard{

    // keep住不混淆的资源原有的物理路径 mappingFile = file("./resource_mapping.txt");

    //如果混淆全部的话,设置mappingFile = null

    mappingFile =null

    // 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字

    keepRoot =false

    // 设置这个值,会把arsc name列混淆成相同的名字,减少string常量池的大小

    fixedResName ="arg"

    // 打开这个开关会合并所有哈希值相同的资源,但请不要过度依赖这个功能去除去冗余资源

    mergeDuplicatedRes =true

    // 启用7zip压缩。当你使用v2签名的时候,7zip压缩是无法生效的。

    // use7zip 为true时,useSign必须为true

    // 对于发布于 Google Play 的 APP,建议不要使用 7Zip 压缩,因为这个会导致 Google Play 的优化 Patch 算法失效

    use7zip =true

    // 启用签名,(需要配置signConfig)

    useSign =true

    // 保留不被混淆的资源文件,只作用于文件名,不会对路径有影响,支持通配符:? * +

    //  【+】代表1个或多个,【?】代表0个或1个,【*】代表0个或多个。如  "R.id.*",//任意id

    whiteList = [

// for your icon

            "R.drawable.icon",

// 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",

//如果不是对APK size有极致的需求,请不要把resources.arsc添加进compressFilePattern

//"resources.arsc"

    ]

//配置7Zip,只需设置 artifact 或 path;支持同时设置,但此时以 path 的值为优先

    sevenzip{

        artifact ='com.tencent.mm:SevenZip:1.2.7'

        //path = "/usr/local/bin/7za"  //path指本地安装的7za(7zip命令行工具)

    }

    /**

    * 可选: 如果不设置则会默认覆盖assemble输出的apk

**/

    finalApkBackupPath ="${project.rootDir}/final.apk"

    /**

    *  可选: 指定v1签名时生成jar文件的摘要算法 默认值为“SHA-1”

**/

    // digestalg = "SHA-256"

}


其中whiteList 为白名单

白名单直接参考官方,一般用goolge

3):app下的build.gradle下申请该文件


4)配置签名并生成apk






后边打包需要签名需要在buildTypes配置:signingConfig signingConfigs.release

最后:





5)apktool进行反编译和通过修改apk后缀名查看资源文件:

1、修改apk文件,将.apk修改为.zip


会发现资源文件变为不直观的名称了,查看得靠运气去点找自己需要的而已


2、通过apktool工具进行反编译:




资源名字都作了统一的处理,也不直观了。

你可能感兴趣的:(AndResGuard的使用)