arr和jar的区别
jar:只包含了class文件与清单文件,不包含资源文件。适合传统的Java或者没有资源文件的Android项目。
arr:包含所有资源,class以及res资源文件。适合Android项目。
一、生成jar包
1.在library模块下的build.gradle中添加如下设置:添加到最下面与android {…….} 配置平级关系
task makeJar(type: Copy) {
delete 'build/libs/mylibrary.jar' //删除已经存在的jar包
from('build/intermediates/bundles/release/')//从该目录下加载要打包的文件
into('build/libs/')//jar包的保存目录
include('classes.jar')//设置过滤,只打包classes文件
rename('classes.jar', 'mylibrary.jar')//重命名,mylibrary.jar 根据自己的需求设置
}
makeJar.dependsOn(build)
或者
task clearJar(type: Delete) {
delete 'library.jar' //jar包的名字,随便命名
}
task makeJar(type:org.gradle.api.tasks.bundling.Jar) {
//指定生成的jar名
baseName 'library'
//从哪里打包class文件
from('build/intermediates/bundles/default/')
//打包到jar后的目录结构
into('build/')
//去掉不需要打包的目录和文件
exclude('test/', 'BuildConfig.class', 'R.class')
//去掉R开头的文件
exclude{it.name.startsWith('R')}
}
makeJar.dependsOn(clearJar, build)
2.打jar包
2.1在Terminal中输入gradlew makeJar来
第一次打包会特别慢
打包成功后可以在lib文件夹查看
2.2 通过可视化窗口操作
点击右侧Gradle
点击之后选择 library包下面的Tasks->other->makeJar方法 然后运行它
会有如下进度:正在打包中
打包成功
二、aar文件的生成
1.选择右上角Gradle
2.选择library目录下的 Tasks->build->assembleRelease方法
三、arr包导入使用
1.将arr文件放入项目lib目录内
2.build.gradle(app)里添加如下内容
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
...
compile(name: 'library-release', ext: 'aar')
}
3.最后 Sync Now