为什么80%的码农都做不了架构师?>>>
一、背景
因为最近编写的android项目,需要编写对应的SDK给别人使用,还好以前我都是拆成module写的,所以还不太费工夫,不过因为一些module里面包含第三方的jar,所以打包有点麻烦
二、背景
我是看到这位的写法然后实现成功的 利用Gradle打包含第三方类库的jar包,很感谢
三、操作步骤
如果要混淆加密含有JNI的sdk,可以看这篇博客含有JNI的SDK通过proguard混淆加密
1、首先进入对应的module里面查找对应 build.gradle 文件
2、在build.gradle文件中编写对应的打包说明
task makeMyJar(dependsOn:['compileReleaseJavaWithJavac'], type: Jar) {
archiveName = "printer.jar" //这个是你打包之后的jar包的名字
from('build/intermediates/classes/release') //这是一些资源
from(project.zipTree("libs/fastjson-1.2.6.jar")) //第三方jar,是需要打包进入我这个printer包的
from(project.zipTree("libs/HitiPrinterService.jar")) //第三方jar,是需要打包进入我这个printer包的
destinationDir = file('build/libs') //生成的jar的输出路径,我这里是在module对应的build文件夹下面的libs文件夹
exclude('com/maigao/printer/BuildConfig.class') //需要导出的配置
exclude('com/maigao/printer/BuildConfig\$*.class')
include('com/maigao/**/*.class') //自己module里面的代码,这个写法是包含所有
include('com/alibaba/fastjson/**/*.class') //要包含的第三方的代码
include('com/hiti/**/*.class') //要包含的第三方的代码
}
3、执行打包(我这里使用的是android studio)
3-1、直接双击shift键,跳出蓝色搜索输入框,在搜索输入框里面输入 Terminal
3-2、在Terminal的命令栏中输入 gradlew makeMyJar,然后接下来就等待它自己打印,如果你没有编写错什么,基本是可以打印成功的
3-3、打印成功的之后,在 Terminal 中会出现 BUILD SUCCESSFUL 字样,然后在 module的build/libs 文件夹下面会有对应的jar包