`
52xianmengyu
  • 浏览: 62955 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

proguard.cfg 配置文件

阅读更多
001 # -------------------------------------
002 # android 原始混淆模板
003 # -------------------------------------
004  
005 # ----------------------------------
006 #  通过指定数量的优化能执行
007 #  -optimizationpasses n
008 # ----------------------------------
009 -optimizationpasses 5
010  
011 # ----------------------------------
012 #   混淆时不会产生形形色色的类名
013 #   -dontusemixedcaseclassnames
014 # ----------------------------------
015 #-dontusemixedcaseclassnames
016 # ----------------------------------
017 #      指定不去忽略非公共的库类
018 #  -dontskipnonpubliclibraryclasses
019 # ----------------------------------
020 #-dontskipnonpubliclibraryclasses
021  
022 # ----------------------------------
023 #       不预校验
024 #    -dontpreverify
025 # ----------------------------------
026 # -dontpreverify
027  
028 # ----------------------------------
029 #      输出生成信息
030 #       -verbose
031 # ----------------------------------
032 -verbose
033  
034 # ----------------------------------
035 #        优化选项
036 #   optimizations  {optimization_filter}
037 # ----------------------------------
038 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
039  
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
048  
049 -keepclasseswithmembernames class * {
050     native <methods>;
051 }
052 # -----------------
053 # modify 修改合并
054 # -----------------
055 -keep public class * extends android.view.View {
056     public <init>(android.content.Context);
057     public <init>(android.content.Context, android.util.AttributeSet);
058     public <init>(android.content.Context, android.util.AttributeSet, int);
059     public void set*(...);
060 }
061  
062 -keepclassmembers enum * {
063     public static **[] values();
064     public static ** valueOf(java.lang.String);
065 }
066  
067 -keep class * implements android.os.Parcelable {
068   public static final android.os.Parcelable$Creator *;
069 }
070  
071 #--------------------------
072 # 保护类型   -keepattributes 说明
073 # Exceptions, Signature, Deprecated, SourceFile, SourceDir, LineNumberTable, LocalVariableTable,
074 # LocalVariableTypeTable, Synthetic, EnclosingMethod, RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations,
075 # RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations, and AnnotationDefault
076 # --------------------
077 -keepattributes **
078 -libraryjars <java.home>/lib/rt.jar
079  
080 # ----------------------
081 #  不压缩指定的文件
082 #  -dontshrink
083 # ----------------------
084 -dontshrink
085  
086 # ----------------------
087 #  不优化指定的文件
088 #  -dontoptimize
089 # -----------------------
090 -dontoptimize
091  
092 # -----------------------
093 #  不混淆指定的文件
094 #  -dontobfuscate
095 # -----------------------
096  
097 # ----- 混淆包路径 -------
098 -repackageclasses ''
099 -flattenpackagehierarchy ''
100 -target 1.6
101  
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 <init>(...);
106 }
107 -keepclassmembers class * {
108     void *(**On*Event);
109 }
110 -keepclassmembers class **.R$* {
111     public static <fields>;
112 }
113  
114 # ------ 编译时需要用到的 jar 包
115 -libraryjars D:/dev_rc/android-sdk-windows/add-ons/addon_google_apis_google_inc_11/libs/maps.jar
116  
117 # ------ 保护 谷歌第三方 jar 包,界面特效 ----------
118 -keep class android.support.v4.**
119 -dontwarn android.support.v4.**
120  
121 # ------ 保护百度地址jar包 --------
122 -keep class com.baidu.mapapi.** { *; }
123 -dontwarn com.baidu.mapapi.**
124  
125 # --- 打包时忽略以下类的警告 --
126 -dontwarn com.classpackage.AA
127  
128 #-keepnames class * implements java.io.Serializable
129 # ---------保护所有实体中的字段名称----------
130 -keepclassmembers class * implements java.io.Serializable {
131     <fields>;
132 }
133  
134 # --------- 保护类中的所有方法名 ------------
135 -keepclassmembers class * {
136     public <methods>;
137 }

 

总结:

无非就是要保护一些反射实现的逻辑,还有如果调用到外部接口(如hessian实现的)时方法名需要保护。

转自:http://my.oschina.net/zhangzhihao/blog/72393

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics