`
52xianmengyu
  • 浏览: 63886 次
  • 性别: 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

分享到:
评论

相关推荐

    Android proguard.cfg

    在标题提到的“Android proguard.cfg”中,我们关注的是ProGuard的配置文件,它是控制混淆过程的关键。 配置文件`proguard.cfg`是ProGuard的工作指令集,包含了各种规则来指定哪些类、方法和字段应该保留,哪些可以...

    proguard.cfg

    proguard配置文件包含混淆算法,不混淆所有的set/get方法,不混淆所有特殊的类,这套配置满足项目基本混淆

    proguard.v3.8汉化版

    使用ProGuard汉化版时,开发者需要编写配置文件(`proguard.cfg`),指定保留哪些类和方法不混淆,以及如何优化和压缩代码。同时,需要注意的是,对于特定库或框架,可能需要添加特殊的保留规则,以防止它们的功能受...

    自定义proguard.jar

    自定义`proguard.jar`意味着创建一个自定义的ProGuard配置文件(通常命名为`proguard.cfg`或`proguard-rules.pro`)。这个文件包含了一系列规则,指导ProGuard如何处理特定的类库或应用。配置规则可以指定哪些类、...

    Eclipse+ProGuard配置

    Eclipse+ProGuard配置 Eclipse 是一个基于 Java 的集成开发环境(IDE),ProGuard 是一个 Java 类库和应用程序的保护和优化工具。通过结合使用 Eclipse 和 ProGuard,可以对 Java 应用程序进行混淆、压缩和优化,...

    android混淆编译代码 防止反编译

    在文件的最后添加一行`proguard.config=proguard.cfg`,这表示我们将在`proguard.cfg`文件中定义混淆规则。 如果在执行混淆操作时遇到“Conversion to Dalvik format failed with error 1”的错误,这是由于...

    修改Proguard混淆规则,自定义字符集

    首先,我们需要找到项目的`proguard-rules.pro`文件,这个文件通常位于`app/proguard-rules.pro`路径下。在这个文件中,我们可以添加自定义混淆规则。例如,如果你的代码中有使用到特殊字符或者非ASCII字符的类或...

    java 源码加密 混淆 proguard 配置文件

    java 源码加密 混淆,proguard 配置文件,很详细,经测试可以用

    Android代码混淆及签名.doc

    无论使用哪种方式,都需要配置 proguard.cfg 文件或 proguard-project.txt 文件。 配置 proguard.cfg 文件需要注意以下几点: 1. 添加外部引用的外部 jar 包。 2. 保存外部 jar 里的类和方法,以免混淆时出错。 3....

    ProGuard工具包,Java代码混淆

    ProGuard的配置文件通常为`proguard.cfg`或`proguard-project.txt`,其中包含了一系列的规则和指令。常见的配置选项包括: - `-keep`:指定不进行混淆的类或方法。 - `-optimizations`:定义要执行的优化步骤。 - `...

    ANDROID应用程序的混淆打包分享

    Eclipse会通过此配置在工程目录生成proguard.cfg文件 2 . 生成keystore (如已有可直接利用) 按照下面的命令行 在D:\Program Files\Java\jdk1.6.0_07\bin&gt;目录下,输入keytool -genkey -alias android.keystore -...

    混淆过程.docx————电子版_docx版

    - `proguard.cfg`文件:定义混淆规则的配置文件,自Android 2.3起,新项目会自动生成此文件。 2. **添加配置文件**: - 将`proguard.cfg`文件复制到你的项目根目录下。对于2.2及更早版本的项目,需要手动添加。 ...

    springboot工程(单个maven工程)利用proguard实现代码混淆 java demo案例

    ProGuard的配置文件通常命名为`proguard.cfg`,在该文件中,我们可以定义混淆规则,比如保留特定包或类不被混淆,以及设置混淆策略等。 1. **ProGuard配置** 在`proguard.cfg`文件中,我们需要指定哪些类和包需要...

    proguard使用指南.doc

    2. **编写配置文件**:创建一个配置文件,例如`proguard.cfg`,并指定以下参数: - `-injars`:指定输入的JAR文件。 - `-outjars`:指定混淆后的输出JAR文件。 - `-libraryjars`:列出所有依赖的库JAR文件。 - ...

    proguard6.4.rar

    使用ProGuard时,我们需要编写一个名为`proguard.cfg`或`proguard-project.txt`的配置文件,其中包含混淆、优化和排除规则。例如,我们可能会写入保留特定库类或方法的规则: ```text -keep class ...

    J2ME混淆打包工具proguard4.4.zip

    2. **配置ProGuard**:在项目根目录下创建一个名为`proguard.cfg`的配置文件,指定混淆规则、优化选项等。例如: ``` -injars bin/classes -outjars bin/classes-processed.jar -libraryjars &lt;java.home&gt;/lib/rt...

    proguard-7.4.0,适合JDK21及以下,官网正版

    这个ZIP文件包含了ProGuard版本7.4.0的所有必要文件和配置。 下载和使用方法: 下载ZIP文件: 点击下载按钮获取proguard-7.4.0.zip文件。确保你选择了适合你操作系统的版本。 解压文件: 下载完成后,使用解压软件...

    proguard.zip

    5. **配置文件**:`proguard.cfg` 或 `proguard-rules.pro` 是ProGuard 的配置文件,用于指定混淆、优化、压缩和预校验的具体规则。开发者可以在这些文件中添加或修改规则,例如保留特定的类、方法或注解,以防止...

    Canvas.zip

    首先,`proguard.cfg`是ProGuard的配置文件。ProGuard是一个开源的Java字节码混淆器、优化器和裁剪器,用于减少Java应用和库的大小,同时提高安全性。它通过重命名类、方法和变量名称,去除未使用的代码,以及优化...

Global site tag (gtag.js) - Google Analytics