1. 打包成jar
1 新建一个lib项目,这个过程都知道,不做介绍
2 在lib项目下新建一个与build.gradle同级的gradle文件,名字随便起。比如 toJar.gradle
3 在toJar.gradle中创建任务列表def jarName = "loadingAni1.0" //Copy类型 task makeJar(type: Copy) { //删除存在的 delete 'build/libs/' + jarName + ".jar" //设置拷贝的文件 from("build/intermediates/aar_main_jar/release") //打进jar包后的文件目录,将classes.jar放入build/libs/目录下 into('build/libs/') //要打包的jar文件 include('classes.jar') //重命名 rename('classes.jar', jarName + ".jar") } makeJar.dependsOn(build)
4 执行markJar任务(在Terminal中执行 gradlew makeJar
或者在面板右侧的gradle中找到lib项目-tasks-other-makeJar,双击执行)
2. 引用jar
经过上面几个步骤之后,会在lib项目的build-libs目录下生成一个loadingAni1.0的jar包,将这个jar包拷贝到要引用的项目的libs目录下,这个时候如果你的项目的gradle中有“implementation fileTree(dir: ‘libs’, include: [’*.jar’])”的字样,就可以直接引用jar包中的内容了,如果没有,要么需要添加这段代码,要么在jar包上右键执行Add as library将jar包添加到gradle中。
上面介绍了生成jar包以及引用jar包的方式,接下来介绍一个aar包的生成和引用方式。
3. 打包成aar
aar包的生成相对简单一些主要有两步
1 创建lib项目
2 右侧的grdle面板中找到新建的lib项目,执行build任务
4. 引用aar
执行完成上面两个步骤之后会在lib项目的build-outputs-aar目录下生成release和debug两个aar。将这两个aar中的任何一个拷贝到要使用的项目下的libs目录下,然后稍微配置一下gradle
repositories {
flatDir {
dirs 'libs'
}
}
implementation(name: 'myloadinganilib-release', ext: 'aar')
之后同步一下就可以引用aar包下的内容了
5. jar包和aar包的区别
jar包只包含class文件,不包含资源文件。
aar包包含class文件和资源文件。