android 混淆jar 或者library混淆

http://blog.csdn.net/u013042707/article/details/51461677[java]  view plain  copy
  1. </pre><pre>  

http://blog.csdn.net/u013042707/article/details/51461677

http://blog.csdn.net/u013042707/article/details/51461677

http://blog.csdn.net/u013042707/article/details/51461677

http://blog.csdn.net/u013042707/article/details/51461677

http://blog.csdn.net/u013042707/article/details/51461677

http://blog.csdn.net/u013042707/article/details/51461677





1.到你的sdk目录找一个.pro文件(我的目录

D:\eclipse_google\adt-bundle-windows-x86-20131030\sdk\tools\proguard\examples)随便

复制到一个目录我将复制的.pro名称修改为test.pro(我桌面的test\before\text.pro

解释下四个文件夹:after是我jar混淆后的输出目录,第二个文件夹不解释,before是存放混淆之前的Text.jar和pro文件;注意:lib是我的jar需要的一些依赖jar

2. 使用记事本打开test.pro添加如下混淆规则

[java]  view plain  copy
  1. 代码片段:<pre>  
[java]  view plain  copy
  1. -injars before\Test.jar  
  2. -outjars after\Test.jar  
  3.   
  4. //添加支持的jar  
  5. -libraryjars before\test\android-support-v4.jar    //必需  
  6. -libraryjars before\test\android.jar                        //必需  
  7. -libraryjars before\test\xxx.jar               //此处为Test.jar需要的依赖jar  
  8. -libraryjars before\test\xxx.jar  
  9.   
  10.   
  11.   
  12. -allowaccessmodification  
  13. -overloadaggressively  
  14. -repackageclasses ''  
  15.   
  16.   
  17.   
  18.   
  19. # The entry point: ProGuard and its main method.  
  20. -keep public class proguard.ProGuard {  
  21.     public static void main(java.lang.String[]);  
  22. }  
  23.   
  24. //android相关的组件不能混淆  
  25. -keep public class * extends android.app.Activity  
  26.   
  27.   
  28. -keep public class * extends android.app.Application  
  29.   
  30.   
  31. -keep public class * extends android.app.Service  
  32.   
  33.   
  34. // jar提供调用者的方法和属性不做混淆start  
  35. -keep class com.cn.tiankong.ReaderExtra {  
  36.     public <fields>;  
  37.     public static final <methods>;  
  38. }  
  39.   
  40.   
  41. -keep class com.cn.tiankong.MyClass2{  
  42.     public private protected <fields>;  
  43.     public <methods>;  
  44. }  
  45.   
  46.   
  47. -keep class com.cn.tiankong.MyClass3{  
  48.     public <fields>;  
  49.     public <methods>;  
  50. }  
  51.   
  52.   
  53. -keep class com.cn.tiankong.Ulitily {  
  54.     public <fields>;  
  55.     public <methods>;  
  56. }  
  57. // jar提供调用者的方法和属性不做混淆end  
  58.   
  59.   
  60. # Also keep - Enumerations. Keep the special static methods that are required in  
  61. # enumeration classes.  
  62. -keepclassmembers enum  * {  
  63.     public static **[] values();  
  64.     public static ** valueOf(java.lang.String);  
  65. }  
  66.   
  67. // native方法不做混淆  
  68. # Keep names - Native method names. Keep all native class/method names.  
  69. -keepclasseswithmembers,allowshrinking class * {  
  70.     native <methods>;  
  71. }  

 
 
 
 
 

注意:去掉中文注释

3. 找到proguardgui.bat(我的目录

D:\eclipse_google\adt-bundle-windows-x86-20131030\sdk\tools\proguard\bin)双击打开



4.点击 Load configration选择你的test.pro



5.检查Input/Output(混淆前和混淆后路径是否正确)添加项目依赖jar



6.检查修改添加编辑不做混淆的类



7.如果没有什么特殊的配置就可以一直下一步到Process



8.将混淆后的jar使用jd-gui打开如下



9.jar导入项目测试是否正常运行,如果保错或者闪退,请根据log异常信息定位查看是否提供给调用者的方法或类被混淆了,如果是请修改pro文件按上面的再次混淆



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值