Android libmoudle生成jar包并混淆

工具 Android studio4.0.1 和一個library的moudle
在lib的biuld文件里寫上

 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同級
然后點(diǎn)擊右邊gradle找到 makeJar雙擊運(yùn)行
再找到ProguardJar雙擊運(yùn)行
去自己寫好的路徑里找生成出來的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的時候一定要配置,不然會把沒有用到的代碼全部remove   我本來封裝一個jar就是給別人調(diào)用的,全部刪掉就沒有東西了

-verbose
-keep class com.mmm.security.MainActivity


-keep class com.mmm.security.SecurityUtil{
    public <fields>;
    public <methods>;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容