Android Studio 生成Jar并混淆

jopen 8年前發布 | 68K 次閱讀 Android Studio開發工具

初探:

    android studio生成Jar.

    android studio 自動生成aar.

    1.android studio 自動生成.jar, 首先將工程作為依賴庫,build即可。

    AndroidStudio 生成Jar并混淆 - Cinema2345的個人空間

    2.手動打包jar

        1> 僅打包class文件

task makeJar(type: Jar, dependsOn:['build', 'targetJar']) {
    from file('build/intermediates/classes/release')
    //目標文件名稱
    archiveName = 'un_proguard.jar'
    destinationDir = file('build/libs')
    exclude "lbs/tmplibary/BuildConfig.class"
    exclude "lbs/tmplibary/BuildConfig\$*.class"
    exclude "**/R.class"
    exclude "**/R\$*.class"
    //只導入資源路徑集下的部分資源
    include "lbs/**/*.class"
}

        2>添加assets文件

       (1)直接includes assets文件即可

task makeJar(type: Jar, dependsOn:['build', 'targetJar']) {
    from file('build/intermediates/classes/release')
    from fileTree(dir: 'src/main', includes: ['assets/**'])
    //目標文件名稱
    archiveName = 'un_proguard.jar'
    destinationDir = file('build/libs')
    exclude "lbs/tmplibary/BuildConfig.class"
    exclude "lbs/tmplibary/BuildConfig\$*.class"
    exclude "**/R.class"
    exclude "**/R\$*.class"
    //只導入資源路徑集下的部分資源
    include "lbs/**/*.class"
    include "assets/**"
}

        (2)使用zipTree

            將所需打包的assets文件打包成.zip,如下:

def zipFile = "src/main/assets.zip"
task makeJar(type: Jar, dependsOn:['build', 'targetJar']) {
    from zipTree(zipFile)
    from file('build/intermediates/classes/release')
    //目標文件名稱
    archiveName = 'un_proguard.jar'
    destinationDir = file('build/libs')
    exclude "lbs/tmplibary/BuildConfig.class"
    exclude "lbs/tmplibary/BuildConfig\$*.class"
    exclude "**/R.class"
    exclude "**/R\$*.class"
    //只導入資源路徑集下的部分資源
    include "lbs/**/*.class"
    
}

    3.混淆

task proguard(type: proguard.gradle.ProGuardTask, dependsOn: makeJar) {
//  輸入路徑
    injars "build/libs/un_proguard.jar"
//  輸出路徑
    outjars 'libs/app_proguard.jar'
//  添加配置信息
    configuration 'proguard-rules.pro'
}

        proguard-rules.pro需要配置一下路徑

    

-libraryjars <java.home>/lib/rt.jar
-libraryjars  xxxxx/android/sdk/platforms/android-22/android.jar

   注:代碼編譯出錯的情況下 添加

-dontpreverify

   盡可能的時候使用       

-dontwarn

 忽略一些不必要的警告,以便成功打包。


完結,~_~

來自: http://my.oschina.net/u/2531612/blog/591366?fromerr=Xd1Kd7dY

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!