資源混淆簡(jiǎn)單來(lái)說(shuō)希望實(shí)現(xiàn)將res/drawable/icon,png轉(zhuǎn)換res/drawable/a.png粗俱,或者我們甚至可以將文件路徑也同時(shí)混淆,改成r/s/a.png涮帘。
Proguard->Resource Proguard
R.string.name->R.string.a
Res/drawable/icon->res/drawable/a/r/s/a
我們可以采用以下幾種方案:
1.最簡(jiǎn)單的方法帝簇,我們按照Proguard的做法,直接在源碼級(jí)別修改將代碼以及xml的R.string.name中替換到R.string.a来庭,icon.png重命名為a.png然后再交給Android編譯妒蔚。
2.根據(jù)Android的編譯流程,所有資源ID已經(jīng)被編譯成32位int值月弛。這說(shuō)明我們并不需要去修改xml與java肴盏,因?yàn)樵诰幾g過(guò)程中已經(jīng)被R.java所替換,我們直接修改resource.arsc的二進(jìn)制數(shù)據(jù)帽衙,不改變打包流程菜皂,只要在生成resource.arsc之后修改它,同時(shí)重命名資源文件厉萝。
3.雖然方案二看起來(lái)不錯(cuò)恍飘,但是它依然依賴(lài)了編譯流程榨崩,不利于使用。其實(shí)我們可以做到直接處理安裝包常侣,不依賴(lài)源碼蜡饵,不依賴(lài)編譯過(guò)程,僅僅輸入一個(gè)安裝包胳施,得到一個(gè)混淆包溯祸。