最近公司要求对自己开发的SDK生成的jar包进行加密与混淆,之前也是小白,经过了一番研究,完成了这个需求,这里做个小小的总结,希望能对一些朋友起到些帮助作用,这里主要是理论。
先说一个心得:
1.jar包是需要导入项目中供别人使用的,class文件必须具备一定的规范才能被JVM识别,从而正确的被导入使用。加密是不可行的,因为虽然被加密的class文件虽然不能被gd_gui反编译,但是如果不解密的话,是无法被JVM识别,jar无法正常被导入,所以选择混淆处理。
这里进入正题:
我使用的常用的proguard工具进行混淆,注意较低版本的混淆器的配置文件名为proguard.mf。较新版本的配置文件是proguard-project.txt和project.properties。我们基本是后者,其实差别不大,如果要将项目打包成apk时,对其混淆,只需要修改配置文件,再Export导出apk,JVM会在执行配置文件时,混淆器会按照配置文件的要求,对代码进行混淆,但这个方法并不能实现我们混淆sdk的要求,这里我们就需要使用Android sdk里带的tool:proguardgui.bat这个图形化工具,通过设置,生成一个.pro配置文件(当然大