基于Library去开发android SDK——sdk jar包混淆

本文已同步发表到我的微信公众号,扫一扫文章底部的二维码或在微信搜索 “程序员驿站”即可关注,每天都会更新优质技术文章。

通过之前的介绍,我们已经完成了整个sdk开发,包括环境搭建——>sdk功能代码编写——>通过gradle实现sdk的打包。下面将介绍如何通过ProGuard工具实现我们sdk代码的混淆。

1.下载ProGuard工具包,这里我选择从ProGuard官网:http://proguard.sourceforge.NET  下载。

    ps:有的道友喜欢使用sdk路径下的proguard工具,路径为:..Sdk oolsproguard,其实也是可以的,只是可能会出现“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)打开后如图:

3.点击Next进入下一步(注:Load configuration 为导入已经配置好的混淆文件,因为我们这里是全新的,本地还存有这个文件,只需点击Next进入下一步即可)。

3.为了方便操作,我把sdk中用到的所有依赖库拷贝到lib目录中,sdk也拷贝到“ProGuard混淆打包”目录下,out目录为我混淆后sdk存放目录。

4.点击Add input和Add output分别添加要混淆的jar包以及混淆后jar的输出路径和名字。点击Library jars右边的add添加项目中依赖的jar。添加好之后如下图:

5.配置Shrinking(按个人需求配置即可)

6.配置Obfuscation:

7.配置Optimization:

8.配置Infomation:

9.配置Process。这里说明一下,我们可以把之前的配置以文件形式保存到本地,以便以后可以直接在第二步中提到的“Load configuration”导入配置即可使用。

10.点击第九步中的Process!按钮,然后即可开始混淆,直至出现"Processing completed successfully",代表混淆成功。

注:在以后我们需要增加sdk功能之后,只需要打开配置文件“mylibrary.pro”进行编辑配置该混淆的类和不该混淆的类(和 app 混淆编写规则类似),编辑好了之后,保存,然后在首页““Load configuration”导入配置,即可开始混淆了。

",下图为以文件形式打开“mylibrary.pro”配置文件的截图,以后混淆规则都可以直接在文档中修改即可。

关注我的技术公众号"程序员驿站",每天都有优质技术文章推送,微信扫一扫下方二维码即可关注:


原文地址:https://www.cnblogs.com/wood3/p/7074146.html