使用微信的AndResGuard混淆资源,减少apk大小

AndResGuard介绍:

微信资源压缩打包,主要为了混淆资源ID长度(例如将res/drawable/welcome.png混淆为r/s/a.png),同时利用7z深度压缩,大大减少了安装包体积,同时也增加了逼格,提升了反破解难度。

详情参考:https://github.com/shwenzhang/AndResGuard 
原理介绍: 
http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd

 

使用方法:

首先在主项目的 build.gradle中

使用微信的AndResGuard混淆资源,减少apk大小_第1张图片

加入  classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.14'

使用微信的AndResGuard混淆资源,减少apk大小_第2张图片

 

然后在app中的 build.gradle中,

使用微信的AndResGuard混淆资源,减少apk大小_第3张图片

使用微信的AndResGuard混淆资源,减少apk大小_第4张图片

 

如果需要复制代码请进入官网:https://github.com/shwenzhang/AndResGuard 

最后打包:

使用微信的AndResGuard混淆资源,减少apk大小_第5张图片

 

打包的apk

可以测试后缀改成zip,解压后如果变混淆的文件夹就成功

使用微信的AndResGuard混淆资源,减少apk大小_第6张图片

apply plugin: 'AndResGuard'
andResGuard {
    mappingFile = null
    use7zip = true
    useSign = true
    keepRoot = false
    compressFilePattern = [
            "*.png",
            "*.jpg",
            "*.jpeg",
            "*.gif",
            "resources.arsc"
    ]
//白名单列表,不添加友盟等第三方文件会被混淆,会弹未找到资源文件
    whiteList = [
            // your icon
            "com.jh.tehui.R.drawable.ic_launcher",
            "com.jh.tehui.R.mipmap.ic_launcher",
            // for fabric
            "R.string.com.crashlytics.*",
            // for umeng update
            "com.jh.tehui.R.string.umeng*",
            "com.jh.tehui.R.string.UM*",
            "com.jh.tehui.R.string.tb_*",
            "com.jh.tehui.R.string.rc_*",
            "com.jh.tehui.R.layout.umeng*",
            "com.jh.tehui.R.layout.tb_*",
            "com.jh.tehui.R.layout.rc_*",
            "com.jh.tehui.R.drawable.umeng*",
            "com.jh.tehui.R.drawable.tb_*",
            "com.jh.tehui.R.drawable.rc_*",
            "com.jh.tehui.R.drawable.u1*",
            "com.jh.tehui.R.drawable.u2*",
            "com.jh.tehui.R.anim.umeng*",
            "com.jh.tehui.R.color.umeng*",
            "com.jh.tehui.R.color.tb_*",
            "com.jh.tehui.R.color.rc_*",
            "com.jh.tehui.R.style.*UM*",
            "com.jh.tehui.R.style.umeng*",
            "com.jh.tehui.R.style.rc_*",
            "com.jh.tehui.R.id.umeng*",
            "com.jh.tehui.R.id.rc_*",

            // umeng share for sina
            "com.jh.tehui.R.drawable.sina*",
            // for google-services.json
            "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",

            //友盟
            "com.jh.tehui.R.string.umeng*",
            "com.jh.tehui.R.string.UM*",
            "com.jh.tehui.R.layout.umeng*",
            "com.jh.tehui.R.drawable.umeng*",
            "com.jh.tehui.R.id.umeng*",
            "com.jh.tehui.R.anim.umeng*",
            "com.jh.tehui.R.color.umeng*",
            "com.jh.tehui.R.style.*UM*",
            "com.jh.tehui.R.style.umeng*",
            //友盟分享
            "com.jh.tehui.R.layout.socialize_share_menu_item",
            "com.jh.tehui.R.id.socialize_image_view",
            "com.jh.tehui.R.id.socialize_text_view",

            //融云
//            "com.jh.tehui.R.drawable.u*",
//            "com.jh.tehui.R.drawable.rc_*",
//            "com.jh.tehui.R.string.rc_*",
//            "com.jh.tehui.R.layout.rc_*",
//            "com.jh.tehui.R.color.rc_*",
//            "com.jh.tehui.R.id.rc_*",
//            "com.jh.tehui.R.style.rc_*",
//            "com.jh.tehui.R.dimen.rc_*",
//            "com.jh.tehui.R.array.rc_*"
    ]

    sevenzip {
        artifact = 'com.tencent.mm:SevenZip:1.2.14'
    }

 //签名打包后的最终文件
    finalApkBackupPath = "E:\\appoutput\\特惠\\tehui.apk"

}

 

你可能感兴趣的:(android)