本文已同步发表到个人微信公众号,扫一扫文章底部的二维码或在微信搜索 “程序员驿站”便可关注,天天都会更新优质技术文章。java
经过以前的介绍,咱们已经完成了整个sdk开发,包括环境搭建——>sdk功能代码编写——>经过gradle实现sdk的打包。下面将介绍如何经过ProGuard工具实现咱们sdk代码的混淆。android
1.下载ProGuard工具包,这里我选择从ProGuard官网:http://proguard.sourceforge.NET 下载。程序员
ps:有的道友喜欢使用sdk路径下的proguard工具,路径为:..\Sdk\tools\proguard,其实也是能够的,只是可能会出现“Can’t read [/Users/wanny/Library/Android/sdk/platforms/android-25/android.jar] (Can’t process class [java/text/CollationElementIterator.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))”错误,并且把系统的jdk版本安装为1.7的,问题依然存在。因此我的建议去官网下载最新版Proguard工具包,就不会出现jdk版本的问题了。Proguard官网下载的工具包解压目录以下图:微信
2.在bin目录下双击proguardgui.bat或者在lib目录下双击proguardgui.jar(mac系统下双击proguardgui.jar)打开后如图:app
3.点击Next进入下一步(注:Load configuration 为导入已经配置好的混淆文件,由于咱们这里是全新的,本地还存有这个文件,只需点击Next进入下一步便可)。工具
3.为了方便操做,我把sdk中用到的全部依赖库拷贝到lib目录中,sdk也拷贝到“ProGuard混淆打包”目录下,out目录为我混淆后sdk存放目录。gradle
4.点击Add input和Add output分别添加要混淆的jar包以及混淆后jar的输出路径和名字。点击Library jars右边的add添加项目中依赖的jar。添加好以后以下图:ui
5.配置Shrinking(按我的需求配置便可)spa
6.配置Obfuscation:3d
7.配置Optimization:
8.配置Infomation:
9.配置Process。这里说明一下,咱们能够把以前的配置以文件形式保存到本地,以便之后能够直接在第二步中提到的“Load configuration”导入配置便可使用。
10.点击第九步中的Process!按钮,而后便可开始混淆,直至出现"Processing completed successfully",表明混淆成功。
注:在之后咱们须要增长sdk功能以后,只须要打开配置文件“mylibrary.pro”进行编辑配置该混淆的类和不应混淆的类(和 app 混淆编写规则相似),编辑好了以后,保存,而后在首页““Load configuration”导入配置,便可开始混淆了。
",下图为以文件形式打开“mylibrary.pro”配置文件的截图,之后混淆规则均可以直接在文档中修改便可。
关注个人技术公众号"程序员驿站",天天都有优质技术文章推送,微信扫一扫下方二维码便可关注: