有人可以帮我解决,混淆或给我这样做的例子吗?
我创建了一个.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 *; }
请注意,您应该使用单个wild char *
来对内部包进行模糊处理。