如何混淆Jar或AAR文件

问题描述 投票:1回答:1

有人可以帮我解决,混淆或给我这样做的例子吗?

我创建了一个.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);
}

请保存我的一天。希望你帮帮我。提前致谢。

android android-studio jar obfuscation aar
1个回答
1
投票

您可以将私有类/接口移动到其他包,例如把你的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 *; }

请注意,您应该使用单个wild char *来对内部包进行模糊处理。

© www.soinside.com 2019 - 2024. All rights reserved.