• 基于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”配置文件的截图,以后混淆规则都可以直接在文档中修改即可。

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


  • 相关阅读:
    C#多态的实现
    C#虚方法
    stm32HAL库中串口部分各个传输和接收函数分析
    ASC字符串取模网址
    STM32F1高级定时器做普通PWM输出配置(例TIM1)
    maven 插件说明
    mac 离线安装yarn
    Tomcat 远程调试
    杀死 tomcat 进程的脚本
    mysql 安装
  • 原文地址:https://www.cnblogs.com/wood3/p/7074146.html
Copyright © 2020-2023  润新知