天天看點

Android代碼混淆指南

請尊重他人的勞動成果,轉載請注明出處:《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前的#号去到。如下圖:

Android代碼混淆指南

至此,有關混淆的配置已經完成了。 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即可。如下圖:

Android代碼混淆指南

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代碼混淆指南

Android代碼混淆指南

推薦閱讀:《Android開發之反編譯與防止反編譯》

《Android代碼混淆技巧》

繼續閱讀