AndResGuard
AndResGuard是一個幫助你縮小APK大小的工具,他的原理類似Java Proguard商乎,但是只針對資源央拖。他會將原本冗長的資源路徑變短,例如將res/drawable/wechat變?yōu)閞/d/a.
項目地址:Android資源混淆工具使用說明
AndResGuard配置到項目中
gradle(Project)
classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.7'
gradle(app)
apply plugin: 'AndResGuard'
andResGuard {
// mappingFile = file("./resource_mapping.txt")
mappingFile = null
// 當你使用v2簽名的時候鹉戚,7zip壓縮是無法生效的鲜戒。
use7zip = true
useSign = true
// 打開這個開關(guān),會keep住所有資源的原始路徑抹凳,只混淆資源的名字
keepRoot = false
//保留不被混淆的資源文件
whiteList = [
// for your icon
"R.drawable.icon",
// for fabric
"R.string.com.crashlytics.*",
// for google-services
"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"
]
compressFilePattern = [
"*.png",
"*.jpg",
"*.jpeg",
"*.gif",
"resources.arsc"
]
sevenzip {
artifact = 'com.tencent.mm:SevenZip:1.2.7'
//path = "/usr/local/bin/7za"
}
/**
* 可選: 如果不設置則會默認覆蓋assemble輸出的apk
**/
finalApkBackupPath = "${project.rootDir}/final.apk"
/**
* 可選: 指定v1簽名時生成jar文件的摘要算法
* 默認值為“SHA1”
**/
digestalg = "SHA256"
}
如果是簽名包還需要加上下面配置:
//需要加上簽名配置
defaultConfig{
··········
signingConfigs {
signConfig {
storeFile file ('XXX/XXX.jks')//路徑
storePassword '123456'
keyAlias 'XXXX'
keyPassword '123456'
}
}
}
buildTypes {
release {
signingConfig signingConfigs.signConfig
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
配置完成后在Android Terminal執(zhí)行命令:
//Windows
gradlew.bat resguardRelease
//OS X or Linux
./gradlew reguardRelease