您的位置:首页 > 移动开发 > Android开发

jar和aar在Android Studio中的生成和使用

2017-12-15 17:30 1326 查看

jar和aar在Android Studio中的生成和使用

当前环境

Android Studio3.0
jdk1.8

认识jar和aar

jar:java application resource 只包含class文件和清单文件

aar:Android application resource 包含class文件和其他所有的资源文件

如此便一目了然了,如果你的库需要资源文件的话,jar是满足不了的,只能使用aar。

生成jar和aar

新建工程

新建moudle(library类型)

新建之后我们看下moudle的目录,主要是在build-intermediates这层目录下!


编译一下项目,此时再来看moudle的目录



经过以上简单的三步,已经看到了我们的jar和aar的生成过程和存放目录。是不是很简单,继续往下看!

4. 用jd-jui打开我们的jar,如图:



哈哈,我们什么也没写。接下来我们在myLibTest这个moudle里边编写一个文件JarTest,再编译得到jar,继续打开这个jar

编写的内容是:


再次打开jar后是这样的:



这次终于看到内容了,但或许你又会说,BuildConfig这是干嘛的,都没用,不想要。我们再来看一个目录:



编译之后,所有的文件都会生成对应的.class文件,我们的jar包也就是将这些class文件都打进去了。
问题1:像R.class和BuildConfig.class这些没用的不需要打进去。那么能否设置过滤。
问题2:这个jar的名字能否自己指定,以及存放的路径能否自己指定

针对以上问题,我们来了解一下修改gradle来生成jar包

gradle代码示例:

//Copy类型
task makeJar(type: Copy) {
//删除存在的
delete 'build/libs/myLib.jar'
//设置要拷贝的文件的目录。debug or release
from('build/intermediates/bundles/debug/')
//拷贝到的那个目录
into('build/libs/')
//将classes.jar放入build/libs/目录下
//include ,exclude参数来设置过滤
include('classes.jar')
exclude('**/R.class')
exclude('**/BuildConfig.class')
exclude { it.name.startsWith('R$')}
//重命名
rename ('classes.jar', 'myLib.jar')
}
//生成jar
makeJar.dependsOn(build)


接下来在我们的命令终端Terminal输入gradlew makeJar执行一下就ok了。然后再来看我们的目录结构:



如代码中所述,在build下多出了libs目录,我们重新命名后的jar包就在这个目录下。

jar和aar的使用

jar的使用

方法1:将jar拷贝到app中的libs,右键add as library选择app即可。然后在你的gradle中会增加上依赖的那句话。

方法2:通过studio的试图添加,步骤自行百度谷歌

aar的使用

同样,还是拷贝到app的libs下。然后在gradle中配置如下



//指定在libs目录下的文件
repositories {
flatDir {
dirs 'libs'
}
}
//添加依赖
dependencies {
compile(name: 'aar的名字', ext: 'aar')
}


ps:如果有引入其他的第三方lib,是打不进aar中的。所以如果有引用的话,app中除了aar外的其他第三方库也需要拷贝过来引用上!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jar aar studio