基於Library去開發android SDK——sdk jar包混淆


本文已同步發表到我的微信公眾號,掃一掃文章底部的二維碼或在微信搜索 “程序員驛站”即可關注,每天都會更新優質技術文章。

通過之前的介紹,我們已經完成了整個sdk開發,包括環境搭建——>sdk功能代碼編寫——>通過gradle實現sdk的打包。下面將介紹如何通過ProGuard工具實現我們sdk代碼的混淆。

1.下載ProGuard工具包,這里我選擇從ProGuard官網:http://proguard.sourceforge.NET  下載。

    ps:有的道友喜歡使用sdk路徑下的proguard工具,路徑為:..\Sdk\tools\proguard,其實也是可以的,只是可能會出現“Can’t read [/Users/wanny/Library/Android/sdk/platforms/android-25/android.jar] (Can’t process class [java/text/CollationElementIterator.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))”錯誤,而且把系統的jdk版本安裝為1.7的,問題依然存在。所以個人建議去官網下載最新版Proguard工具包,就不會出現jdk版本的問題了。Proguard官網下載的工具包解壓目錄如下圖:

2.在bin目錄下雙擊proguardgui.bat或者在lib目錄下雙擊proguardgui.jar(mac系統下雙擊proguardgui.jar)打開后如圖:

3.點擊Next進入下一步(注:Load configuration 為導入已經配置好的混淆文件,因為我們這里是全新的,本地還存有這個文件,只需點擊Next進入下一步即可)。

3.為了方便操作,我把sdk中用到的所有依賴庫拷貝到lib目錄中,sdk也拷貝到“ProGuard混淆打包”目錄下,out目錄為我混淆后sdk存放目錄。

4.點擊Add input和Add output分別添加要混淆的jar包以及混淆后jar的輸出路徑和名字。點擊Library jars右邊的add添加項目中依賴的jar。添加好之后如下圖:

5.配置Shrinking(按個人需求配置即可)

6.配置Obfuscation:

7.配置Optimization:

8.配置Infomation:

9.配置Process。這里說明一下,我們可以把之前的配置以文件形式保存到本地,以便以后可以直接在第二步中提到的“Load configuration”導入配置即可使用。

10.點擊第九步中的Process!按鈕,然后即可開始混淆,直至出現"Processing completed successfully",代表混淆成功。

注:在以后我們需要增加sdk功能之后,只需要打開配置文件“mylibrary.pro”進行編輯配置該混淆的類和不該混淆的類(和 app 混淆編寫規則類似),編輯好了之后,保存,然后在首頁““Load configuration”導入配置,即可開始混淆了。

",下圖為以文件形式打開“mylibrary.pro”配置文件的截圖,以后混淆規則都可以直接在文檔中修改即可。

 

關注我的技術公眾號"程序員驛站",每天都有優質技術文章推送,微信掃一掃下方二維碼即可關注:



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM