前面文章《Proguard進行源代碼混淆》講解過怎麼使用Proguard工具對Android的源代碼進行混淆的方法(感興趣的朋友能夠訪問:http://blog.csdn.net/p106786860/article/details/11974863),可是在實際工做中發現,經過上述方法對導出的Jar並無進行混淆。 android
下面咱們就介紹,若是對導出的Jar包進行代碼混淆。 app
1、準備工做 編輯器
首先咱們要準備好:1.你已經導出的jar包(srcjar.jar)文件,2.ProguardGui工具 (sdk\tools\proguard\bin\proguardgui.bat)。 工具
2、操做步驟 ui
1.啓動proguardgui工具。 spa
雙擊groguardgui.bat文件,運行以下圖: .net
2.設置咱們須要混淆的jar包和混淆後輸出的jar包。 code
點擊左邊的Input/Output按鈕,運行以下圖。在點擊Add input按鈕,添加咱們須要進行混淆的jar包(srcjar.jar)。點擊Add output按鈕,填入咱們要輸出的jar包的名稱。 orm
3.添加jar包支持的庫。 blog
點擊下面的Add按鈕,一一添加jar包支持的庫。建議把你的Eclipe中,項目下全部的jar包都拷貝到一個統一的目錄中,而後進行添加。
項目中全部的jar支持
集中了全部的jar在同一個文件夾下
添加了jar包支持的庫
4.依次設置混淆的各類配置
依次點擊Shrinking按鈕、Obfuscation按鈕、Optimization按鈕和Information按鈕,分別對混淆進行各類配置。
5.保存混淆的配置文件
點擊Process按鈕,在點擊Save configuration按鈕,保存咱們混淆配置文件。
6.根據需求修改混淆配置文件
在真實的項目中,可能因爲各類第三方的jar包,自動類和控件等問題,在混淆的時候,會致使各類類沒法找到的問題。使用文本編輯器打開srcjar.pro文件,能夠根據本身的需求編輯混淆配置。
-injars ruyicai.jar //須要混淆的jar包 -outjars ruyicai-out.jar //混淆完畢輸出的jar包 //引用依賴的jar包 -libraryjars 'C:\Program Files\Java\jdk1.6.0_43\jre\lib\rt.jar' … ... -libraryjars libs\weibo-1.2.jar -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* //在混淆的過程當中,建議保留Activity,Application四大組件,其它的類可根據實際狀況設置是否混淆 -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service … … -keep public class com.ruyicai.activity.common.PullRefreshListView{*;} //不混淆第三方的jar包 -keep class com.alipay.android.app.**{*;} … ... -keep class cn.jpush.android.**{*;} //後面的規則使用默認的,這裏不在描述 … ….
7.載入混淆配置文件,對Jar進行混淆
從新啓動proguardgui程序,在點擊右邊Proguard按鈕,點擊Load configration按鈕,導入上面配置好的混淆文件。
而後點擊右邊Process按鈕,再次點擊下面的Process按鈕,進行Jar的混淆。
如出現上圖successfully提示,則混淆完畢