我想使用混淆器混淆我的 Android Studio 项目中的一些类。这些是 com.myproject.fragments 文件夹中的一些 fragment 。所有这些类都扩展了 Android 的 Fragment 类。似乎到目前为止,我的混淆规则正在将这些类排除在混淆之外。请告诉我如何编辑混淆器规则文件以实现这种混淆。
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keepattributes Signature
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.content.Context
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}
-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
# Preserve the special static methods that are required in all enumeration classes.
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
public *;
}
-keep public enum com.sync.model$** {
**[] $VALUES;
public *;
}
# Application classes that will be serialized/deserialized over Gson
-keep class com.myproject.models.** { *; }
-keep class com.myproject.httputils.** { *; }
-keep class com.facebook.** {
*;
}
-keep class com.androidplot.** { *; }
-keepclassmembers class * extends com.actionbarsherlock.ActionBarSherlock {
<init>(android.app.Activity, int);
}
# Gson specific classes
#-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
最佳答案
您可以排除 Proguard 文件中的特定类和包...
用于排除特定类
-保持类 com.demo.fragment.myfragment { *;
用于排除整个包类
-保留 com.demo.fragment 类。 { *; }**
关于java - 如何使用混淆器混淆选择性类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29469044/