需求
项目越来越大,需要对核心代码进行封装加密管理
Jar 包制作
- 优点:简单,方便
- 缺点:不能把资源文件都打进去 Jar 包里面,例如图片,布局文件等等
aar 制作
- 优点:跟 Jar 一样,可以把资源文件都打包进去,AS可以直接引用,管理方便
- 缺点:-
so 制作
- 优点:增加反编译难度,核定代码可以放进去
- 缺点:需要 C/C++基础,并不是所有都适合放到 so 里面去。
实现
制作
- 新建一个 module,选择 Android Library
- Finish
- 把你需要封装的代码写在 module 里面去
打包
- 在 module 里面的 build.gradle 文件加入一下 Task
1 | task buildJar(type: Jar, dependsOn: ['compileReleaseJavaWithJavac']) { // task buildJar(type: Jar, dependsOn: ['build']) |
打开 Gradle 任务,执行 buildJar
然后再执行 proguardJar 任务进行混淆
最后你会发现在项目中出现 test-relase.jar
注意buildJar里面archiveName名字必须有-,不然会执行错误的。原因在与在混淆的时候,需要把包名改成 relase.不喜欢的可以自行修改逻辑代码
注意buildJar里面archiveName名字必须有-,不然会执行错误的。原因在与在混淆的时候,需要把包名改成 relase.不喜欢的可以自行修改逻辑代码
注意buildJar里面archiveName名字必须有-,不然会执行错误的。原因在与在混淆的时候,需要把包名改成 relase.不喜欢的可以自行修改逻辑代码