通过jarjar.jar来替换jar包名的详细介绍
有時(shí)候我們根據(jù)一些場(chǎng)景 需要替換第三方j(luò)ar包的包名,比如Android廣告平臺(tái)sdk,更換他們jar包包名的話,可以防止市場(chǎng)檢測(cè)到有廣告插件,所以,今天就介紹一下如何使用jarjar.jar工具來(lái)替換jar包的包名
一、首先下載jarjar.jar工具
地址在:https://code.google.com/p/jarjar/
二、下載完以后,使用cmd命令--打開(kāi)到它所在的目錄,它有三個(gè)命令:
(1)java –jar jarjar.jar 查看幫助信息的
(2)java –jar jarjar.jar strings <cp> 這個(gè)是查看jar包里面所有包名的。
例如:拿多盟廣告的jar包為例,使用命令如下:
java -jar jarjar.jar strings domob_android_sdk.jar
(3)更換包名的命令為:
java -jar jarjar.jar process <rulesFile> <inJar> <outJar>
注意事項(xiàng):這里面有一個(gè)重要的東西是rulesFile,就是定義一個(gè)替換規(guī)則。injar就是指要替換的jar包,outjar就是替換完要輸出的jar包
rulesFile直接用.txt文檔寫就行,
rulesFile有三種指令,分別如下:
1. rule用來(lái)取代Package的名稱。
rule pattern result
2.zap用來(lái)移除符合名稱的Package。
zap pattern
3.keep只會(huì)保留符合的Package的名稱,其他的則會(huì)刪除。如果和zap一起使用,將會(huì)在zap執(zhí)行完之后才執(zhí)行。
keep pattern
備注: pattern為要比對(duì)的字串,可以使用「*」和「**」來(lái)表示任意的Package名稱。「*」可以代表一層的Package,「**」可以代表多層的Package。
result為要取代成的字串,可以使用「@1」、「@2」這類的符號(hào)表示要使用第幾個(gè)pattern的「*」或「**」所代表的字串。
如果要將Jar包內(nèi)的「cn.domob」名稱全都替換成「com.google」,可以編寫以下的rulesFile:
rule cn.domob.** com.google.@1
三、正式替換包名
命令為(我所有的jar包放到同一個(gè)目錄下了,所以可以使用 ./ ):
java -jar jarjar.jar process ./rule.txt domob_android_sdk.jar ./google.jar
已經(jīng)ok。
總結(jié)
以上是生活随笔為你收集整理的通过jarjar.jar来替换jar包名的详细介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 学习笔记103—win10连接惠普打印机
- 下一篇: 简单运行 Jupyter Noteboo