一、简介
Android开发过程中,我们有时候需要将一个功能模块的东西通过组件的思想单独打包(jar、aar、so),然后在别的工程中导入使用。一来可以减少代码耦合、业务穿插;二来可插拔,不需要时拿掉就OK。下面主要介绍jar包生成、合并以及aar包的生成以及在工程中遇到的问题。
一、jar包的生成及合并
1.jar包的生成
task makeJar(type: Copy) {
delete 'build/WebSocket_V1.0.jar' //删除之前的旧jar包
from('build/intermediates/packaged-classes/release/') //从这个目录下取出默认jar包
into('build/') //将jar包输出到指定目录下
include('classes.jar')
rename('classes.jar', 'WebSocket_V1.2.jar') //自定义jar包的名字
}
makeJar.dependsOn(build)
注意:build/intermediates/packaged-classes/release/此路径为Android Studio3.0+的classes.jar路径
2.jar包的合并
a.将需要合并的多个jar文件放在一个单独的文件夹中。
b.将文件夹中的每个jar里面的class文件解压出来。
jar -xvf oldName.jar
c.移除多余的文件,只留下从jar包解压出来的内容。
del /F *.jar
d.合并class文件,newName就是新生成的jar。
jar -cvfM newName.jar . /* 注意后面有个"." */
二、aar包的生成
当module申明为library,执行构建时会自动生成aar的debug包和release包,你可以根据需要使用。
gradle.png
build.png
三、遇到的问题
1.moduleA
网友评论