最近在做视频的,最近自己先前封装了一个library,每次用都要复制很麻烦,有没有一种方法直接做成架包呢,需要的时候直接引架包。于是上网学习查了一些资料,便有了这边文章。本篇是仅限于自己学习的笔记,又不正确的地方望指正。
jar包与aar包文件的区别
两者区别:
*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。
*.aar:包含所有资源,class以及res资源文件全部包含
如果你只是一个简单的类库那么使用生成的.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用.aar文件。
生成AAR
1.aar包是Android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件。
2.生成aar架包的步骤
2.1 打开项目的找到你的Module。记住Module的类型为android Library。
2.2编译整个工程后就会自动生成aar包,选中自己项目中的的Module
点击菜单栏 Build里面的Make Module ‘xxx’ 如下图:
2.3编译完成之后会在Module的build–>outputs–>aar–>xxxxx.aa
androidstudio工程引用aar包
配置build.gradle文件:
repositories {
flatDir {
dirs 'libs'
}
}
implementation(name:'VHPlayer_sdk', ext:'aar')
生成jar包
1.系统编译获取jar
众所周知android studio会在library所依赖的app运行或者build之后自动生成jar,路径为build/intermediates/bundles/debug or release/classes.jar,这样生成的jar是可以用的,但不是我们可以控制的,所以我们需要通过其他方式来解决这个问题。
然后把这个架包复制出来放到你需要的项目中,加入依赖,就可以使用这个架包了。
2.build.gradle中配置能生成jar文件
1.在library的工程目录下选中它的build.gradle文件并打开
2.grade文件配置:
ask exportJar(type: Copy) {
delete 'release/VHPlayer.jar'
from('build/intermediates/bundles/release/')
into('release/')
include('classes.jar')
///Rename the jar
rename('classes.jar', 'VHPlayer.jar')
}
exportJar.dependsOn(build)
点击右边的Gradle侧边栏选择你需要的library
运行完毕后 你就可以在library项目文件下面的release文件夹里面找到生成的jar文件了。
jar的使用这里就不做描述。