2015-04-06 33 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