1. 程式人生 > >Android studio生成jar包

Android studio生成jar包

1.將app依賴一個moudle。

2.執行app。這是在build/intermediates/bundles/debug or release/目錄下回看到一個classer.jar (這個就是生成的jar)

3.在moudle 的build.gradle中新增如下程式碼,下面這些程式碼是將原本的classer.jar轉成自定義的jar

apply plugin: 'com.android.library'
def releaseTime() {
    return new Date().format("yyyy.MM.dd", TimeZone.getTimeZone("UTC"))
}

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig {
        minSdkVersion 18
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        

    }
    buildTypes {
        release {
            // 混淆  todo-打jar包的時候變為 true  false
            minifyEnabled true
            // Zipalign優化
            zipAlignEnabled true
            // 移除無用的resource檔案
            shrinkResources true
            // 前一部分代表系統預設的android程式的混淆檔案,該檔案已經包含了基本的混淆宣告,
            // 後一個檔案是自己的定義混淆檔案
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
    testCompile 'junit:junit:4.12'
}
task clearJar(type: Delete) {
    def fileName = "Sdk-${android.defaultConfig.versionName}-v1.1-${releaseTime()}.jar"
    delete fileName////這行表示如果你已經打過一次包了,再進行打包則把原來的包刪掉
}

task makeJar(type: Copy) {
    // build/intermediates/bundles/release/
    from('build/intermediates/bundles/release/') //這行表示要打包的檔案的路徑,根據下面的內容,其實是該路徑下的classes.jar
    into('build/libs/')  //這行表示打包完畢後包的生成路徑,也就是生成的包存在哪
    include('classes.jar')  //看到這行,如果你對分包有了解的話,你就可以看出來這行它只是將一些類打包了
    def fileName = "Sdk-${android.defaultConfig.versionName}-v1.1-${releaseTime()}.jar"
    rename('classes.jar', fileName)
}
makeJar.dependsOn(clearJar, build)

4.重新sync now一下。

5.點選android studio右邊的gradle,然後找到自己的module名字點選進去,然後點選Tasks後找到other點選計入,找到makeJAr 雙擊,

6.jar包生成後你會在build/libs/目錄下找到。例如Sdk-1.0-v1.1-2018.07.18.jar