原理:项目构建生成的class.jar即为我们需要的jar,下面的操作只是将这个jar包拷贝到指定的目录并重命名一下。
1、创建新建Android Library 如名称为lib-test,编写业务代码。
package com.lpf.lib;
public class TestUtil {
public static String getString(){
return "这是结果!";
}
}
2、lib-test的build.gradle中添加如下代码,检查classes.jar是否存在,如果没有需要先build的一下工程,另外修改业务代码了,需要Rebuild工程来更新classes.jar
android {
......
}
task makeJar(type: Copy) {
//删除存在的jar
delete 'build/outputs/test-1.0.0.jar'
//设置拷贝的源文件 (不同版本路径可能一样)
from('build/intermediates/compile_library_classes/debug/classes.jar')
//打进jar包后的文件目录
into('build/outputs/')
//重命名
rename ('classes.jar', 'test-1.0.0.jar')
}
makeJar.dependsOn(build)
dependencies{
......
}
3、在Terminal窗口中执行gradlew makeJar或者Gradle窗口中选择lib-test-->Tasks-->other-->makeJar点击执行,成功后即可在指定目录下生成jar包
4、假如我们的jar中依赖第三方的jar,就需要我们将第三方jar包合并到我们的jar包中,jar包合并需要ant工具。
5、下载ant,Apache Ant - Binary Distributions
6、配置环境变量
在Path变量值后面加入:%ANT_HOME%\bin;%ANT_HOME%\lib;
8、编写合并脚本build.xml(basedir:合并后jar文件目录;destfile:合并后jar名称;zipfileset:需要合并的jar)
<?xml version="1.0" encoding="utf-8"?>
<project
name="test"
basedir="G:\mergejar"
default="makeAllJar" >
<target
name="makeAllJar"
description="description" >
<jar destfile="test-merge-1.0.0.jar" >
<zipfileset src="G:\test-1.0.0.jar" />
<zipfileset src="G:\imageloader_0.5.1.jar" />
</jar>
</target>
</project>
9、执行脚本ant -buildfile G:\build.xml即可生成合并后的jar
10、jar包混淆,这里采用SDK自带的混淆工具Sdk\tools\proguard\bin\proguardgui.bat
输出包可以新建一个空文件,后缀为.jar
一路next,最后点击Process!开始混淆