Proguard代码混淆

公司的项目最近要进行代码混淆,因此学习使用了一个Proguard代码混淆工具,项目使用ssh框架。
操作步骤和参数配置方法主要参考文章地址:http://blog.csdn.net/zhangdaiscott/article/details/45368261

熟悉了一下Proguard的参数和配置方法,然后跟着文章流程走了一遍,但是没有能够走通。基于混淆过程中出现的问题,记录一下应该注意的问题和思路。

 1. 应该最大程度的熟悉项目的结构
 2. 对于保留和非保留的代码应该注意代码之间的关联关系,防止保留的部分调用到未混淆部分而出现异常
 3. 混淆后调试困难,有些问题不仅应该考虑混淆的问题,还应考虑proguard版本的问题(可能存在BUG)
 4. 应当保留bean对象和action中的属性名称,防止jsp页面和action数据无法交互
 5. 使用action的modeldriven 对象类型为List<T> 时,应当配置保留泛型
 6.  采用annotation配置应该注意spring注入的方式是采用byName还是byType,防止因为代码混淆后无法按照指定的类型注入bean

在我的项目中,除了根据以上做了必须的保留项之外,主要用到了以下配置:

/*
    java.lang.ClassFormatError: LVTT entry for 'a' in class file ×× does not match any LVT entry
    这个貌似是Proguard的bug,使用下面的代码解决
*/
-optimizations !code/allocation/variable
//忽略警告
-ignorewarnings
//忽略泛型
-keepattributes Signature
//忽略注解
-keepattributes *Annotation*

Proguard除了可以代码混淆还有代码优化缩减的功能,但这次只用到了代码混淆,其他的功能,以后再细加研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值