AndResGuard的使用

AndResGuard個(gè)人感覺就是對(duì)資源文件路徑或者文件名進(jìn)行了重命名,稍微增加了反編譯人員查看資源的直觀性,稍微減小了apk的大??;

1):pro下的build.gradle下添加:classpath'com.tencent.mm:AndResGuard-gradle-plugin:1.2.20'


2):咱們app下新建一個(gè)文件隨你命名:xxx.grdle

并寫入:

applyplugin:'AndResGuard'

andResGuard{

? ? // keep住不混淆的資源原有的物理路徑 mappingFile = file("./resource_mapping.txt");

? ? //如果混淆全部的話,設(shè)置mappingFile = null

? ? mappingFile =null

? ? // 打開這個(gè)開關(guān),會(huì)keep住所有資源的原始路徑,只混淆資源的名字

? ? keepRoot =false

? ? // 設(shè)置這個(gè)值,會(huì)把a(bǔ)rsc name列混淆成相同的名字,減少string常量池的大小

? ? fixedResName ="arg"

? ? // 打開這個(gè)開關(guān)會(huì)合并所有哈希值相同的資源,但請(qǐng)不要過(guò)度依賴這個(gè)功能去除去冗余資源

? ? mergeDuplicatedRes =true

? ? // 啟用7zip壓縮。當(dāng)你使用v2簽名的時(shí)候,7zip壓縮是無(wú)法生效的。

? ? // use7zip 為true時(shí),useSign必須為true

? ? // 對(duì)于發(fā)布于 Google Play 的 APP,建議不要使用 7Zip 壓縮,因?yàn)檫@個(gè)會(huì)導(dǎo)致 Google Play 的優(yōu)化 Patch 算法失效

? ? use7zip =true

? ? // 啟用簽名,(需要配置signConfig)

? ? useSign =true

? ? // 保留不被混淆的資源文件,只作用于文件名,不會(huì)對(duì)路徑有影響,支持通配符:? * +

? ? //? 【+】代表1個(gè)或多個(gè),【?】代表0個(gè)或1個(gè),【*】代表0個(gè)或多個(gè)。如? "R.id.*",//任意id

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

? ? ]

// 打包時(shí)是否壓縮這類文件,支持通配符:? * +

? ? compressFilePattern = [

"*.png",

"*.jpg",

"*.jpeg",

"*.gif",

//如果不是對(duì)APK size有極致的需求,請(qǐng)不要把resources.arsc添加進(jìn)compressFilePattern

//"resources.arsc"

? ? ]

//配置7Zip,只需設(shè)置 artifact 或 path;支持同時(shí)設(shè)置,但此時(shí)以 path 的值為優(yōu)先

? ? sevenzip{

? ? ? ? artifact ='com.tencent.mm:SevenZip:1.2.7'

? ? ? ? //path = "/usr/local/bin/7za"? //path指本地安裝的7za(7zip命令行工具)

? ? }

? ? /**

? ? * 可選: 如果不設(shè)置則會(huì)默認(rèn)覆蓋assemble輸出的apk

**/

? ? finalApkBackupPath ="${project.rootDir}/final.apk"

? ? /**

? ? *? 可選: 指定v1簽名時(shí)生成jar文件的摘要算法 默認(rèn)值為“SHA-1”

**/

? ? // digestalg = "SHA-256"

}


其中whiteList 為白名單

白名單直接參考官方,一般用goolge

3):app下的build.gradle下申請(qǐng)?jiān)撐募?/b>


4)配置簽名并生成apk






后邊打包需要簽名需要在buildTypes配置:signingConfig signingConfigs.release

最后:





5)apktool進(jìn)行反編譯和通過(guò)修改apk后綴名查看資源文件:

1、修改apk文件,將.apk修改為.zip


會(huì)發(fā)現(xiàn)資源文件變?yōu)椴恢庇^的名稱了,查看得靠運(yùn)氣去點(diǎn)找自己需要的而已


2、通過(guò)apktool工具進(jìn)行反編譯:




資源名字都作了統(tǒng)一的處理,也不直觀了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容