微信资源压缩打包,主要为了混淆资源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中
加入 classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.14'
然后在app中的 build.gradle中,
如果需要复制代码请进入官网:https://github.com/shwenzhang/AndResGuard
打包的apk
可以测试后缀改成zip,解压后如果变混淆的文件夹就成功
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"
}