Android aar打包和jar打包

jar包和aar包的区别

jar:内含“assets",“com”,“META-INF”,里面只包含class文件和清单文件,不包含资源文件,如res下的文件。

aar:class以及res下的所有的资源文件。必定包含AndroidManifest.xml,classes.jar,res,R.txt文件,可能还包含些其他文件。

/assets/ (可选)    /libs/*.jar (可选)    /jni/<abi>/*.so (可选)    /proguard.txt (可选)    /lint.jar (可选)

jar的打包

首先要确保module是library,才可以生成jar包,即apply plugin: 'com.android.library'

apply plugin: 'com.android.library'

android {
   ...
}

def _BASENAME = "MakeJar"
def _VERSION = "_V1.1"
//生成jar包的位置
def _DestinationPath = "build"
//待打包文件位置--不同的studio版本,路径不一样(设置拷贝的文件)
def zipFile = file('build/intermediates/intermediate-jars/release/classes.jar')

//删除已存在的版本
task deleteBuild(type: Delete) {
    delete _DestinationPath + _BASENAME + _VERSION + ".jar"
}

task makeJar(type: Jar) {
    from zipTree(zipFile)
    from fileTree(dir: 'src/main', includes: ['assets/**']) //将assets目录打入jar包
    baseName = _BASENAME + _VERSION
    destinationDir = file(_DestinationPath)
}

makeJar.dependsOn(deleteBuild, build)

配置完成,先进行编译,然后可以在命令行Terminal中执行gradlew makejar命令 或者
在Gradle中点击 :对应library名称-->Tasks-->other-->makeJar; 提示BUILD SUCCESSFUL,即打包成功

执行makeJar之后会在build/intermediates/intermediate-jars/release中生成class.jar)

aar打包:

首先要确保module是library,才可以生成jar包,即apply plugin: 'com.android.library'

执行 gradle-->对应library名称-->build-->assemble;成功后会在build/outputs文件夹中生成aar文件夹,包含debug.aar和release.aar。

 

 

 使用release.aar,放在主项目的lib中,build.gradle中添加如下代码。编译成功即可调用!

repositories {
    flatDir { dirs 'libs' }
}

dependencies {
    ...
    implementation(name: 'testaarlibrary-release', ext: 'aar')
}

注意:

当需要把主module打成jar包或者aar时,需要改成library,并且把applicationId 注释掉;然后执行上述步骤。

//apply plugin: 'com.android.application'
  apply plugin: 'com.android.library'

  android {
    compileSdkVersion config.compileSdkVersion
    defaultConfig {
          //        applicationId "com.curry.android.android_collection"
          ...
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值