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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值