Proguard keepnames不会混淆应用程序

时间:2017-02-15 14:46:07

标签: java android

我想问一个noob问题。

这个proguard配置是不是混淆了我的文件,也没有模糊我的所有java类,只排除类的名称?

这一行:

-keepnames class ** { *; }

我想构建一个我的应用程序版本并将其上传到公众,这行是我的应用程序的问题吗?这条线是否允许其他人轻松地在我的应用上执行逆向工程?

我的应用只能使用此行生成。

谢谢。

PROGUARD SETTINGS

-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }

# Prevent proguard from stripping interface information from     TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

-dontwarn android.support.v4.**
-keep public class com.google.android.gms.* { public *; }
-dontwarn com.google.android.gms.**

-keepnames class org.apache.** {*;}
-keep class org.apache.http.** {*;}    
-dontwarn org.apache.commons.logging.LogFactory
-dontwarn org.apache.http.annotation.ThreadSafe
-dontwarn org.apache.http.annotation.Immutable
-dontwarn org.apache.http.annotation.NotThreadSafe

-keepnames class ** { *; }

-keep class com.android.volley.** { *; }
-keep interface com.android.volley.** { *; }


-keep class com.sun.** {*;}

1 个答案:

答案 0 :(得分:0)

-keepnames会阻止ProGuard更改指定的类和方法名称(如果在缩小阶段尚未删除它们-keepnames-keep,allowshrinking的缩写)

所以是的,如果有人试图反编译您的应用程序,他们可以看到原始名称而不是混淆的乱码