如何把项目打包成aar文件或jar文件

在Android开发中咱们每每为了节省开发时间,会用直接引入其余工程中的module,避免重在新工程中开发,尤为一个团队多项目时候用到特别多,固然也有包括引入第三方jar包或者aar文件,有的时候会以jar包形式引入,有的时候以aar包形式引入,那种两种有啥区别呢,那咱们简单的来说讲这两个概念...
android

1.什么是aar包?

xxx.aar,AAR(Android Archive)是一个Android库项目的二进制归档文件,里面不只包含工程代码也还包含工程资源文件,例如各类字体大小,字符串资源,图片等,固然每一个工程所包含的资源文件不用,最后编译出来的aar文件里面包含的内容也不尽相同,例若有的工程有aidl业务处理,可是大部分都包括:AndroidManifest.xml,classes.jar,res,R.txt,你能够随便找一个aar文件将后缀名字改为.zip或者.rar压缩包形式,而后解压查看解压后的内容,网络


(网上直接引用一张图片)
app


2.aar文件和jar文件有什么区别?

xxx.jar:只包含了class文件与清单文件,不包含资源文件,如图片等全部res中的文件,maven

反之 xxx.aar则包含全部资源,class以及res资源文件;学习

因此若是你有资源文件须要,那么你就以aar文件形式引入到工程中去,反之直接引入jar便可;字体

3.使用方式

如何使用别人提升好的jar包和aar文件呢?gradle

xxx.jar文件:将其拷贝到:libs目录,并在AndroidStudio项目中build.gradle中添加:ui

dependencies {debug

compile fileTree(include: ['*.jar'], dir: 'libs')cdn

}

从新编译一次项目既可完成加载,(可在工程的External Libraries目录下查看)。

xxx.aar:有两种方式,分别为本地加载以及网络加载,因为网络加载涉及到发布到mavenCentral托管的问题这里不作讨论;在这里给你们说一种本地加载的方式,简单快捷。

第一步:将aar文件拷贝到:libs目录

第二步:build.gradle 配置文件中更改成


repositories {

   flatDir {

       dirs 'libs'

   }

}


dependencies {

compile(name:'xxx', ext:'aar')

}

分别添加了”repositories“与更改了”dependencies“,而后从新编译一次项目就能够正常使用了。

一样编译成功后能够在工程的External Libraries目录下查看;

那么到此你算成功引入了别人提供的jar文件和aar包了;

那么就会引用不行啊,有时候须要咱们本身打包文件,那么下面的步骤就是教你如何打成引用包...请看大屏幕,哦,不对,请看下文...

4.如何将项目打成aar文件?

1.通常咱们的module的build.gradle文件中存在apply plugin和applicationId,是建立时默认生成的,须要对build.gradle(必定是要打的module对应的)进行修改,

  • 将apply plugin: 'com.android.application'改成apply plugin: 'com.android.library';
  • 去掉applicationId

如图:


此时再点击右侧的assembleRelease,看到module层的outputs文件夹下生成了.aar文件,

即:xxx.aar文件位置为:module(你对应的)/build/outputs/aar/xxx.aar

固然执行右侧的assebleDebug脚本则生成debug版的aar文件,执行asseble会生成release和debug两个版本的aar,名字也会有所体现,目录仍是在 module(你对应的)/build/outputs/aar/下;

如图:


看到这里就已经差很少了,那么jar文件如何生成的呢? 

在module下的intermediates文件夹,也生成了一个bundles文件夹,.jar文件也能够用这里生成的,这个就是生成的jar包,如今是否是很明白了;

如图:


到这儿了其实已经将aar文件打包说完了,固然咱们在建立module的时候能够直接以Libiary形式建立,具体操做就是在工程中右键--选择Module--选择Android Library,而后看看咱们module的build.gradle文件,意外又惊喜发现这行代码 apply plugin: 'com.android.library',由于咱们建立的时候指定了Module类型为Library形式,这也是为何咱们要把其余项目的Module的build.gradle文件Application改为Library, 此时改Module也没有ApplicationId,由于Libiary包没有应用Id;


 到此,咱们基本对打aar文件有了总体了解;

最后,提早祝你们 新年快乐! 18年即将过去,这一年发生了不少,昨天即将被定格,让咱们以新的姿态迎接19,但愿全部的人都能在19年离梦想更进一步,工做和学习更加顺利快乐!

感谢!

相关文章
相关标签/搜索