要達到代碼混淆,讓別人在反編譯你的代碼後看不懂,方法如下:
由於我的SDK和ADT20.0.1都是最新的,所以像網上的提供的使用proguard.cfg混淆代碼的方式我看了,都是一樣的,
。都說會在專案檔下自動產生proguard.cfg,可是我的怎麼也無法產生,因此也無法使用這個方法,搞得很頭痛。
不過今天在看的時候,發現其實在專案檔下,自動產生了檔案:proguard-project.txt, project.properties 兩個檔案,於是開啟這兩個檔案,在proguard-project.txt中有:
By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
於是開啟這個proguard-android.txt這個檔案,發現內容與上面所說的progurad.cfg差不多,估計功能也一樣。
在檔案project.properties中還有:
To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
意思很明顯,要想使用Proguard去混淆代碼,只要將這句注釋還原就行了#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt。
但是不能只是還原注釋,我在嘗試過之後,只有將這句話 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 放在target=android-10之後,才能產生apk.
接著我反編譯匯出的APK,如下:
發現在產生的jar檔案中,所有的類名,變數名都變成了a,b,c等無法正確理解的名稱,達到了預期的效果
作者:Jason_WKS