美文网首页
Android中将依赖库Module打包成jar包

Android中将依赖库Module打包成jar包

作者: CarlosLynn | 来源:发表于2020-02-11 21:35 被阅读0次

前言

AndroidStudio中,如果需要把一个库Module打包成Jar包,需要自己在对应的库Module下对应的gradle.build脚本编写相应的gradle脚本。

jar包和aar包概述

本质上无论是jar或者aar包都是压缩文件,和普通的压缩文件无本质差别,至于后缀那是Windows系统下的设计为了便于找到指定的软件打开不同后缀的文件,这也是我们可以把jar、aar等这些后缀改成.zip或者rar也可以用压缩软件打开不报错的原因,也正是因为才有加密加固dex的需求。但是jar和aar来说又还是有一些细微的区别的。

1,jar包是Java开发时期的产物,而在Android环境下主要是包含class字节码文件和清单文件,没有res、asset等Android资源文件。

2,aar
Android 库在结构上与 Android 应用 模块相同,它可以提供构建应用所需的几乎一切内容包括:class字节码文件、libs库、jni库、aidl文件、res、assets资源文件和 Android 清单。

Android Studio库项目打包成jar

1,配置库依赖中的build.gradle添加

//常量
def supportV4 = file('libs/android-support-v4.jar')

//删除原来的jar
task deleteBuild(type: Delete) {
    delete "general-notification.jar"
}

//定义makeJar任务打包jar包 start
task makeJar(type: Copy) {
    delete 'build/libs/general-notification.jar'//先删除存在的jar包
    from('build/intermediates/packaged-classes/release/')
    from zipTree(supportV4)
    into('build/libs/')//打包后生成的jar包的存放目录
    include('classes.jar')//include、exclude参数过滤,这里只关注classes.jar
    rename('classes.jar', 'general-notification.jar')
}

//定义执行
makeJar.dependsOn(deleteBuild, build)

2,配置完成后,同步下,在右侧直接执行gradle命令,即可实现jar的生成

窗口输入命令生成JAR包:gradlew makeJar

3,完整配置

apply plugin: 'com.android.library'

android {
    compileSdkVersion 28


    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 2
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
//    implementation 'com.android.support:appcompat-v7:28.0.0'
}

def supportV4 = file('libs/android-support-v4.jar')

task deleteBuild(type: Delete) {
    delete "general-notification.jar"
}

//定义makeJar任务打包jar包 start
task makeJar(type: Copy) {
    delete 'build/libs/general-notification.jar'//先删除存在的jar包
    from('build/intermediates/packaged-classes/release/')
    from zipTree(supportV4)
    into('build/libs/')//打包后生成的jar包的存放目录
    include('classes.jar')//include、exclude参数过滤,这里只关注classes.jar
    rename('classes.jar', 'general-notification.jar')
}

//定义执行
makeJar.dependsOn(deleteBuild, build)
// 2017-10-17 在Terminal 窗口输入命令生成JAR包:gradlew makeJar

4,打包完成


image.png

相关文章

网友评论

      本文标题:Android中将依赖库Module打包成jar包

      本文链接:https://www.haomeiwen.com/subject/hjlffhtx.html