前言
萌新進入職場也有一段時間了舔稀,發(fā)現(xiàn)同學們開始寫博客記錄學到的東西壶唤,所以決定也寫寫博客記錄自己剛開始工作時學到的一些東西。
入職第一個任務(wù)是根據(jù)第三方的支付平臺(微信幢痘,支付寶等)裂七,整合成一個通過公司后臺的支付jar包皆看,要求要對自己寫的jar包進行混淆,為了方便使用碍讯,也需要將整合了支付的代碼導出jar包和使用到的第三方支付平臺的jar包進行融合悬蔽。
接下來就是我混淆和融合多個jar包的過程,當然捉兴,調(diào)用支付平臺的代碼就不多做贅述了蝎困。
一录语、jar包的混淆
1、準備混淆工具
首先禾乘,我們要準備好混淆jar包的工具ProguardGui澎埠,這個工具直接可以在sdk的文件夾里找到,具體路徑(sdk\tools\proguard\bin\proguardgui.bat)始藕,雙擊groguardgui.bat文件我們就可以看到ProguardGui的窗口了蒲稳,如下圖
2、創(chuàng)建配置文件
可以直接在Process選項中點擊Save configuration伍派,在指定位置江耀,以.pro為擴展名創(chuàng)建默認的配置文件
3、根據(jù)需求修改混淆的配置文件
找到剛剛創(chuàng)建的配置文件诉植,并修改成如下形式祥国。
#基本指令
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Fragment
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.**
-keep public class com.android.vending.licensing.ILicensingService
#需要混淆的jar包,此寫法為test.jar和配置配件在同一路徑下晾腔,亦可寫成絕對路徑的形式,用單引號擴起舌稀,如'F:\sdk打包\jar混淆\test.jar'。
-injars test.jar
#混淆后導出的jar包灼擂,和配置文件在同一路徑下壁查,也可以寫成絕對路徑的形式導出到指定位置。
-outjars out.jar
#jar包依賴的其他庫,也可以寫成絕對路徑的形式
-libraryjars android.jar
.....
--libraryjars android.jar
#自己jar包的相關(guān)混淆配置
-keep class a.aa.aaa.**{*;}
.....
.....
#后面則是生成這個文件時默認的規(guī)則
......
4剔应、混淆jar包
回到ProGuard選項中睡腿,點擊Load configuration選擇剛剛編輯好的配置文件
一路點擊Next,直到出現(xiàn)以下窗口后點擊Process峻贮。
當出現(xiàn)Processing completed successfully時則說明混淆成功并導出了jar包了嫉到,如下圖。
二月洛、jar包的融合
1、準備融合工具
jar包的融合這里用到的是Apache的Ant孽锥,可以在這個鏈接http://ant.apache.org/bindownload.cgi中下載最新版本的Ant
直接解壓下載好的壓縮文件嚼黔,然后在系統(tǒng)的環(huán)境變量Path中加入Ant的路徑,相信添加環(huán)境變量對于一個程序員來說并不陌生惜辑,就不一一截圖了唬涧,在CMD命令窗口中輸入ant -version指令,如果顯示的是Ant的版本號而不是找不到指令就說明環(huán)境變量配置成功了盛撑。
2碎节、編寫執(zhí)行文件
因為Ant默認運行文件為build.xml,所以我們可以創(chuàng)建一個名字為build的xml文件抵卫,文件的內(nèi)容如下
<?xml version="1.0" encoding="utf-8"?>
<project name= "TEST_Android" default="main" basedir="." >
<target name="main">
<zip destfile="F:\sdk打包\jar融合\out.jar" > <!-- 融合后到處的jar包-->
<zipgroupfileset dir= "libs" includes ="*.jar"/> <!--融合執(zhí)行文件所在路徑下libs文件里的所有jar包-->
</zip>
</target>
</project>
3狮荔、融合jar包
在CMD命令窗口中進入到build.xml文件所在的路徑下胎撇,執(zhí)行ant指令,很快融合好的jar包就生成了殖氏,如下圖
這樣就完成了jar包混淆和多個jar包的全部過程了晚树。