美文网首页
使用AndResGuard对资源文件进行混淆,瘦身

使用AndResGuard对资源文件进行混淆,瘦身

作者: 二贝呀 | 来源:发表于2018-08-18 15:16 被阅读68次

首先在Project的build.gradle中添加一下代码片段:

classpath'com.tencent.mm:AndResGuard-gradle-plugin:1.2.10'

其次在app的build.gradle中引用这个库,

whiteList是白名单,里面存放的是要混淆的文件格式

更多要添加的白名单请查看:AndResGuard白名单

下面是完整的build.gradle文件:

applyplugin:'AndResGuard'

andResGuard {

mappingFile =null

    use7zip =true

    useSign =true

    keepRoot =false

    compressFilePattern = [

"*.png",

"*.jpg",

"*.jpeg",

"*.gif",

"resources.arsc"

    ]

whiteList = [

// your icon

            "R.drawable.icon",

// for fabric

            "R.string.com.crashlytics.*",

// for umeng update

            "R.string.tb_*",

"R.layout.tb_*",

"R.drawable.tb_*",

"R.drawable.u1*",

"R.drawable.u2*",

"R.color.tb_*",

// umeng share for sina

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

//友盟

            "R.string.umeng*",

"R.string.UM*",

"R.layout.umeng*",

"R.drawable.umeng*",

"R.id.umeng*",

"R.anim.umeng*",

"R.color.umeng*",

"R.style.*UM*",

"R.style.umeng*",

//融云

            "R.drawable.u*",

"R.drawable.rc_*",

"R.string.rc_*",

"R.layout.rc_*",

"R.color.rc_*",

"R.id.rc_*",

"R.style.rc_*",

"R.dimen.rc_*",

"R.array.rc_*"

    ]

sevenzip {

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

        //path = "/usr/local/bin/7za"

    }

}

build clenr一下项目,编译完成之后会看到这几个按钮

如果想打debug包,则执行resguardDebug指令;

如果想打preview包,则执行resguardPreview指令;

如果想打release包,则执行resguardRelease指令。

打完的包会生成在

此时将安装包反编译一下会看到所有的资源文件名都被替换成a,b,c...这些简短的字符代替,不仅混淆了文件名而且达到了apk瘦身的效果,简直棒棒哒!!!

可以看到res包下面的layout中所有的文件名都被替换掉了,完成了!

最后有想了解反编译apk的同学可以观看我之前发布的一篇文章AndroidAPK安装包反编译流程以及踩过的坑,简单明了有不懂的小伙伴可以加我QQ:291252192.

相关文章

网友评论

      本文标题:使用AndResGuard对资源文件进行混淆,瘦身

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