工具 Android studio4.0.1 和一個(gè)library的moudle
在lib的biuld文件里寫(xiě)上
def SDK_BASENAME = "myjar";
def SDK_VERSION = "_v1.0.0";
def sdkDestinationPath = "build/outputs/jar/";
task deleteBuild(type: Delete) {
delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar"
}
task makeJar(type: Jar) {
from('build/intermediates/javac/debug/classes/')
baseName SDK_BASENAME + SDK_VERSION
destinationDir file(sdkDestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
task ProguardJar(type: ProGuardTask, dependsOn: "build") {
// 未混淆的jar路徑
injars sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar"
// 混淆后的jar輸出路徑
outjars sdkDestinationPath + SDK_BASENAME + SDK_VERSION + "P.jar"
// 混淆協(xié)議
configuration 'proguard-rules.pro'
}
跟buildTypes同級(jí)
然后點(diǎn)擊右邊gradle找到 makeJar雙擊運(yùn)行
再找到ProguardJar雙擊運(yùn)行
去自己寫(xiě)好的路徑里找生成出來(lái)的jar包
附上混淆文件
-dontoptimize
-dontusemixedcaseclassnames
-keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod
-dontpreverify
-verbose
-dontnote com.android.vending.licensing.ILicensingService,com.google.vending.licensing.ILicensingService,com.google.android.vending.licensing.ILicensingService,android.support.**
-dontwarn android.support.**
-ignorewarnings
-dontshrink#混淆jar的時(shí)候一定要配置读宙,不然會(huì)把沒(méi)有用到的代碼全部remove 我本來(lái)封裝一個(gè)jar就是給別人調(diào)用的,全部刪掉就沒(méi)有東西了
-verbose
-keep class com.mmm.security.MainActivity
-keep class com.mmm.security.SecurityUtil{
public <fields>;
public <methods>;
}