一、先贴几个效果图对比感受一下
1.混淆前后安装包大小对比
2.混淆前后使用反编译工具看到的资源文件
混淆前
2.混淆后
二、AndResGuard使用方法
1.创建一个and_res_guard.gradle文件
apply plugin: '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 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",
]
sevenzip {
artifact = 'com.tencent.mm:SevenZip:1.2.10'
//path = "/usr/local/bin/7za"
}
}
2.app包下build.gradle中添加
apply from: 'and_res_guard.gradle'
3.在项目的build.gradle中添加插件
dependencies {
classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.17'
}
4.打包
我这里把app包名改为shell了
如果想打debug包,双击resguardDebug
如果想打preview包,双击resguardPreview
如果想打release包,双击resguardRelease
————————————————————————————————————————————————
打包时遇到错误
What went wrong:
Execution failed for task ':app:resguardRelease'.
> can't the get signConfig for release build
解决办法
在app包下的build.gradle中添加代码
signingConfigs {
release {
keyAlias 'key0'
keyPassword '123456'
storeFile file('...\app.jks')
storePassword '123456'
}
}
buildTypes {
release {
signingConfig signingConfigs.release//签名
}
}