打包jar
打包目錄截圖
下面那個(gè)就是我們要打包的jar了 由于我打包的內(nèi)容是和url有關(guān)的 所以就這名字了
請(qǐng)?jiān)趯?duì)應(yīng)library的build.gradle寫下如下代碼
buildTypes {
release {
minifyEnabled false// 開啟代碼混淆 個(gè)人建議用false true的話 好多奇怪的問題 實(shí)際上 混淆作用也不大 下面會(huì)有分析
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
task makeJar(type: Copy) {
delete 'build/libs/MySdk.jar' //打包出來(lái)的路徑
from('build/intermediates/bundles/release/') //路徑之類的玩意 照填吧
into('build/libs/') //路徑之類的玩意 照填吧
include('classes.jar') //那這個(gè)包然后包裝一下 成為我們的
rename ('classes.jar', 'MySdk.jar') //MySdk.jar 這個(gè)是打包出來(lái)的文件名稱 后綴不變
}
makeJar.dependsOn(build)
然后執(zhí)行打包命令 是 gradlew makeJar 直接在android studio 內(nèi)部的Terminal內(nèi) 執(zhí)行就在平時(shí)看LOG窗口的旁邊,他默認(rèn)會(huì)進(jìn)入到對(duì)應(yīng)目錄 你直接復(fù)制 進(jìn)去回車執(zhí)行就可以進(jìn)行打包操作了
你要在里面封裝什么就封吧新建個(gè)class也行 封點(diǎn)別的代碼也是可以的 不過 jar不可以封裝資源 aar可以下面講一下 更加簡(jiǎn)單 更好的的aar
打包aar
配置不用了 就新建一個(gè)library 寫入要封裝的代碼 執(zhí)行一下這個(gè)命令就完事了
然后再去 library (你封裝的library 名稱)\build\outputs\aar\這個(gè)目錄下找最大那個(gè)aar
那個(gè)就是我們要的
至于混淆內(nèi)容: 這里我糾結(jié)了很久吧 也查了很久悯恍,剛開始以為jar代碼混淆的話能把一些重要的數(shù)據(jù)給隱藏起來(lái)桑涎,但是實(shí)際上還是可以看到的 基本混淆不混淆意義也不大了吧
后來(lái)問了一下大佬 他建議說
String 這樣的數(shù)據(jù)采取 R.string.data 這樣的形式外部引用會(huì)好一些
最終點(diǎn)進(jìn)去看到的地址是一串0x000000這樣的地址引用劫侧,打比方說我把重要的數(shù)據(jù)封裝在里面了雾棺,然后老大要求這玩意不能讓第三方調(diào)用者輕易看到蚂蕴,就可以使用這種方式吧盆昙。
jar aar應(yīng)該是一樣的 人家直接點(diǎn)開是看不到的,希望以后還能有更好的方法
good luck