請尊重他人的勞動成果,轉載請注明出處:《Android代碼混淆指南》
本文将和大家分享使用Eclipse+ADT與使用Android Studio進行代碼混淆打包的方法。
使用Eclipse+ADT進行代碼混淆打包的方法
新版本SDK下進行打包混淆
如果使用新版本的SDK建立的Android項目會在項目的根目錄下生成一個proguard-project.txt檔案,該檔案是預設的混淆規則檔案。 混淆打包的步驟: 1.在proguard-project.txt檔案中添加混淆的項目規則,大家可參考:《Android代碼混淆之混淆規則》一文。 2.将project.properties檔案中的#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt前的#号去到。如下圖:
至此,有關混淆的配置已經完成了。 3.打包項目,依次:右鍵項目》Export》選擇Export Android Application》Next》選擇Android項目密鑰(沒有的話可以建立一個)》Finish即可。 至此,項目已經混淆打包完成了,如果不放心的話,大家可以用《Android開發之反編譯與防止反編譯》一文中講解的方法對試混淆後的代碼進行測試。 注意:直接運作程式生成的安裝包是沒有經過混淆的。
老版本SDK下進行打包混淆
在老版本的SDK下建立的項目不會生成proguard-project.txt檔案而是proguard.cfg檔案。 混淆打包的步驟:
1.在proguard.cfg檔案中添加混淆的項目規則,大家可參考:《Android代碼混淆之混淆規則》一文。
2.在project.properties檔案中添加proguard.config=proguard.cfg即可。如下圖:
3.其餘步驟和在新版本SDK下打包的方法一緻。
使用Android Studio進行代碼混淆打包的方法
使用Android Studio建立的項目會在項目側根目錄下生成一個proguard-rules.pro檔案,此檔案便是混淆規則檔案。
混淆打包的步驟:
1.在proguard-rules.pro檔案中添加混淆的項目規則,大家可參考:《Android代碼混淆之混淆規則》一文。
2.在Module下的build.gradle檔案中将minifyEnabled false改為minifyEnabled true。
如:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
其中:proguardFiles getDefaultProguardFile('proguard-android.txt')表示擷取SDK下'proguard-android.txt‘檔案中的預設混淆規則。
'proguard-rules.pro'表示使用項目根目錄下的 'proguard-rules.pro'檔案中的混淆規則。
提示:proguard-rules.pro檔案名可以任意,隻要在配置檔案中指明即可。比如,從其它項目中複制一個proguard.cfg混淆規則檔案,隻需将上面的代碼改成 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'即可,這句話表示使用項目中根目錄下的proguard.cfg檔案作為本項目的混淆規則檔案。
3.打包項目,使用Build菜單下的Generate Signed APK進行打包即可。注意,記得在Build Type:選項下選擇release,否則隻打包不會混淆。如下圖:
》
》
推薦閱讀:《Android開發之反編譯與防止反編譯》
《Android代碼混淆技巧》