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

本文已同步發表到個人微信公衆號,掃一掃文章底部的二維碼或在微信搜索 「程序員驛站」便可關注,天天都會更新優質技術文章。java

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

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)打開後如圖:app

3.點擊Next進入下一步(注:Load configuration 爲導入已經配置好的混淆文件,由於咱們這裏是全新的,本地還存有這個文件,只需點擊Next進入下一步便可)。工具

3.爲了方便操做,我把sdk中用到的全部依賴庫拷貝到lib目錄中,sdk也拷貝到「ProGuard混淆打包」目錄下,out目錄爲我混淆後sdk存放目錄。gradle

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

5.配置Shrinking(按我的需求配置便可)spa

6.配置Obfuscation:3d

7.配置Optimization:

8.配置Infomation:

9.配置Process。這裏說明一下,咱們能夠把以前的配置以文件形式保存到本地,以便之後能夠直接在第二步中提到的「Load configuration」導入配置便可使用。

10.點擊第九步中的Process!按鈕,而後便可開始混淆,直至出現"Processing completed successfully",表明混淆成功。

注:在之後咱們須要增長sdk功能以後,只須要打開配置文件「mylibrary.pro」進行編輯配置該混淆的類和不應混淆的類(和 app 混淆編寫規則相似),編輯好了以後,保存,而後在首頁「「Load configuration」導入配置,便可開始混淆了。

",下圖爲以文件形式打開「mylibrary.pro」配置文件的截圖,之後混淆規則均可以直接在文檔中修改便可。

 

關注個人技術公衆號"程序員驛站",天天都有優質技術文章推送,微信掃一掃下方二維碼便可關注:


相關文章
相關標籤/搜索