栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用proguard混淆除公共方法名称和属性以外的所有内容?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用proguard混淆除公共方法名称和属性以外的所有内容?

玩了一段时间后,我发现以下内容有效

-optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-keep, allowobfuscation class com.company.*-keepclassmembers, allowobfuscation class * {    *;}-keepnames class com.company.MyClass-keepclassmembernames class com.company.MyClass {    public <methods>;    public <fields>;    #!private *; also tried this but it didn't work}

配置中的错误是

{ *; }
-keepnames
选项末尾存在。

我使用了以下课程:

package com.company;public class MyClass {  public static void main(String[] args) {    int longVariableName = publicStaticMethod();    String abcxyz = privateStaticMethod("abc", "xyz");    System.out.println("longVariableName: " + longVariableName);    System.out.println("abcxyz: " + abcxyz);  }  public static int publicStaticMethod() {    return 9000;  }  private static String privateStaticMethod(String first, String second) {    return first + second;  }}

反编译的结果类是这样的:

package com.company;import java.io.PrintStream;public class MyClass {  public static void main(String[] paramArrayOfString) {    paramArrayOfString = publicStaticMethod();    String str = a("abc", "xyz");    System.out.println("longVariableName: " + paramArrayOfString);    System.out.println("abcxyz: " + str);  }  public static int publicStaticMethod() {    return 9000;  }  private static String a(String paramString1, String paramString2) {    return paramString1 + paramString2;  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393639.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号