proguard.cfg 配置说明(转)
发布日期:2012-11-18 11:08:45
001
|
# -------------------------------------
|
003
|
# -------------------------------------
|
005
|
# ----------------------------------
|
007
|
# -optimizationpasses n
|
008
|
# ----------------------------------
|
009
|
-optimizationpasses 5
|
011
|
# ----------------------------------
|
013
|
# -dontusemixedcaseclassnames
|
014
|
# ----------------------------------
|
015
|
#-dontusemixedcaseclassnames
|
016
|
# ----------------------------------
|
018
|
# -dontskipnonpubliclibraryclasses
|
019
|
# ----------------------------------
|
020
|
#-dontskipnonpubliclibraryclasses
|
022
|
# ----------------------------------
|
025
|
# ----------------------------------
|
028
|
# ----------------------------------
|
031
|
# ----------------------------------
|
034
|
# ----------------------------------
|
036
|
# optimizations {optimization_filter}
|
037
|
# ----------------------------------
|
038
|
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
|
040
|
-keep public class * extends android.app.Activity
|
041
|
-keep public class * extends android.app.Application
|
042
|
-keep public class * extends android.app.Service
|
043
|
-keep public class * extends android.content.BroadcastReceiver
|
044
|
-keep public class * extends android.content.ContentProvider
|
045
|
-keep public class * extends android.app.backup.BackupAgentHelper
|
046
|
-keep public class * extends android.preference.Preference
|
047
|
-keep public class com.android.vending.licensing.ILicensingService
|
049
|
-keepclasseswithmembernames class * {
|
055
|
-keep public class * extends android.view.View {
|
056
|
public(android.content.Context);
|
057
|
public(android.content.Context, android.util.AttributeSet);
|
058
|
public(android.content.Context, android.util.AttributeSet, int);
|
059
|
public void set*(...);
|
062
|
-keepclassmembers enum * {
|
063
|
public static **[] values();
|
064
|
public static ** valueOf(java.lang.String);
|
067
|
-keep class * implements android.os.Parcelable {
|
068
|
public static final android.os.Parcelable$Creator *;
|
071
|
#--------------------------
|
072
|
# 保护类型 -keepattributes 说明
|
073
|
# Exceptions, Signature, Deprecated, SourceFile, SourceDir, LineNumberTable, LocalVariableTable,
|
074
|
# LocalVariableTypeTable, Synthetic, EnclosingMethod, RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations,
|
075
|
# RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations, and AnnotationDefault
|
076
|
# --------------------
|
078
|
-libraryjars /lib/rt.jar
|
080
|
# ----------------------
|
083
|
# ----------------------
|
086
|
# ----------------------
|
089
|
# -----------------------
|
092
|
# -----------------------
|
095
|
# -----------------------
|
097
|
# ----- 混淆包路径 -------
|
099
|
-flattenpackagehierarchy ''
|
102
|
# -------- 以下是使用了 roboguice-1.1.2.jar 以及 guice-2.0-no_app.jar 功能需要保护的字段及类相关 --------
|
103
|
-keep class com.google.inject.Binder
|
104
|
-keepclassmembers class * {
|
105
|
@com.google.inject.Inject(...);
|
107
|
-keepclassmembers class * {
|
110
|
-keepclassmembers class **.R$* {
|
114
|
# ------ 编译时需要用到的 jar 包
|
115
|
-libraryjars D:/dev_rc/android-sdk-windows/add-ons/addon_google_apis_google_inc_11/libs/maps.jar
|
117
|
# ------ 保护 谷歌第三方 jar 包,界面特效 ----------
|
118
|
-keep class android.support.v4.**
|
119
|
-dontwarn android.support.v4.**
|
121
|
# ------ 保护百度地址jar包 --------
|
122
|
-keep class com.baidu.mapapi.** { *; }
|
123
|
-dontwarn com.baidu.mapapi.**
|
126
|
-dontwarn com.classpackage.AA
|
128
|
#-keepnames class * implements java.io.Serializable
|
129
|
# ---------保护所有实体中的字段名称----------
|
130
|
-keepclassmembers class * implements java.io.Serializable {
|
134
|
# --------- 保护类中的所有方法名 ------------
|
135
|
-keepclassmembers class * {
|
总结:
无非就是要保护一些反射实现的逻辑,还有如果调用到外部接口(如hessian实现的)时方法名需要保护。