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

首先在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安装包反编译流程以及踩过的坑,简单明了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是AndResGuard   AndResGuard是一个缩小APK大小的工具,它的原理类似Java Prog...
    王培921223阅读 560评论 0 0
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,045评论 2 59
  • AndroidStudio3.0刚刚发布两天(版本控的我~),便迫不及待的升级了,升级前也明白这次的版本跨度较大,...
    奈何心善阅读 1,398评论 0 1
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,186评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,122评论 0 4