繁体   English   中英

如何混淆 Jar 或 AAR 文件

[英]How to Obfuscated Jar or AAR files

有人可以帮助我,混淆或给我一个例子来做到这一点吗?

我创建了一个.aar文件和.jar文件,并放置了 getter 和 setter 的类,如果他们访问它,它们将赋予价值。

但是这个东西需要把隐藏的价值放在别人看不到的价值上。

     package com.example.test;
     public class MyClass  extends  privateClass{
            String testing;
            public MyClass() {
              this.testing = getStringExample();
            }
            public String getTesting() {
                return testing;
            }
            public void setTesting(String testing) {
                this.testing = testing;
            }
     }

如果我给我的库,这个类必须隐藏/混淆给其他开发人员

    package com.example.test;

    public class privateClass {
        String getStringExample()
        {
             return "TEST RESULT";
        }
    }

注意:我也尝试放置 proguard,并检查库,但他们仍然可以看到我的私有类,我尝试使用接口并扩展类,但仍然相同,

这是我的 proguard 示例:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontwarn ccom.example.test.R*
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class
-keepclassmembers class com.example.test.** { *; }
-keep class com.example.eyefixdata.** {
    void set*(***);
    void set*(int, ***);
    boolean is*();
    boolean is*(int);
    *** get*();
    *** get*(int);
}

请拯救我的一天。 希望你能帮助我。 提前致谢。

您可以将您的私人类/接口与其他软件包,例如把你privateClass内部封装package com.example.your.library.internal; 与您的公共类/接口区分开来。


package com.example.your.library.internal;

public class privateClass {
    String getStringExample()
    {
        return "TEST RESULT";
    }
}

并将以下行添加到您的 proguard 配置中

-keep public class com.example.your.library.* { public *; }

请注意,您应该使用单个通配符*混淆内部包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM