Android将library打包成jar包或者aar文件
Android Library就是一个没有界面的应用程序,一般会把经常用到的应用层的逻辑抽出来放在Library中,或者把要作为第三方使用的代码写在Library中。
打成jar包
(1). 在Android Studio新建一个Library,然后编写需要的业务逻辑代码;
(2). 在这个Library的build.gradle文件中,加上如下的配置代码:
task makeJar(type:Copy){
//删除项目中先前存在的已经打好的jar包(build/libs是接下来在into()中设置的jar生成目录,exampleSDK.jar是接下来的rename()中进行的重命名);
delete 'build/libs/exampleSDK.jar'
//设置拷贝的文件;
from('build/intermediates/bundles/release/')
//打好的jar包的存放位置;
into('build/libs/')
//使用include和exclude参数来设置过滤;
include('classes.jar')
//进行jar包的重命名;
rename('classes.jar','exampleSDK.jar')
}
makeJar.dependsOn(build)
(3). 在Android Studio的终端窗口Terminal中,输入gradlew makeJar命令,然后回车等待jar包的生成。等到terminal窗口出现BUILD SUCCESSFUL,就代表打好了jar包了,就可以去build/libs目录下去查看jar包文件了;
- 可能遇到的问题:
可能会遇到Execution failed for task ':xxx(library名字):lint'.
那么,就跟据报错下面的提示,在build.gradle文件的android{}中添加如下代码:
lintOptions{
abortOnError false
}
就可以解决这个问题啦。
- 小结:
jar包中最好不要有静态资源文件,因为是访问不到的。如果要访问静态文件,需要利用java的反射机制,来获取添加依赖项目的静态资源。当然。如果我们的Library里面有动态库(用c写的so文件),也是访问不到的,这时候需要使用aar文件。
打成aar包
(1). 在Android Studio新建一个Library,然后编写需要的业务逻辑代码;
(2). 对Library执行Build--Rebuild,就可以在Library文件夹下的build--outputs--aar--xxx.aar(生成的aar文件)中找到aar文件了;
------------------------last line for now-----------------------