2015-04-06 28 views
1

我想使用proguard在我的Android Studio项目中混淆几个类。这些是com.myproject.fragments文件夹中的一些片段。所有这些类都扩展了Android的Fragment类。看来,从现在起,我的proguard规则将这些类排除在混淆之外。请告诉我如何编辑我的proguard规则文件以使此混淆发生。如何使用proguard来选择性的课程?

-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.** { *; } 

回答

0

您可以排除特定的类& Proguard文件包...

用于排除特定类别

-keep class com.demo.fragment.myfragment {*; }

为了排除整个包中的类

-keep类com.demo.fragment。 {*; } **

+1

这将排除模糊权的类?我想强制一个“包含混淆” – iamlegend 2015-04-06 10:48:38