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 < 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*(...);
|
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 < java.home >/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 < init >(...);
|
107 |
-keepclassmembers class * { |
110 |
-keepclassmembers class **.R$* { |
111 |
public static < fields >;
|
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实现的)时方法名需要保护。
转自:http://my.oschina.net/zhangzhihao/blog/72393
分享到:
相关推荐
在标题提到的“Android proguard.cfg”中,我们关注的是ProGuard的配置文件,它是控制混淆过程的关键。 配置文件`proguard.cfg`是ProGuard的工作指令集,包含了各种规则来指定哪些类、方法和字段应该保留,哪些可以...
proguard配置文件包含混淆算法,不混淆所有的set/get方法,不混淆所有特殊的类,这套配置满足项目基本混淆
使用ProGuard汉化版时,开发者需要编写配置文件(`proguard.cfg`),指定保留哪些类和方法不混淆,以及如何优化和压缩代码。同时,需要注意的是,对于特定库或框架,可能需要添加特殊的保留规则,以防止它们的功能受...
自定义`proguard.jar`意味着创建一个自定义的ProGuard配置文件(通常命名为`proguard.cfg`或`proguard-rules.pro`)。这个文件包含了一系列规则,指导ProGuard如何处理特定的类库或应用。配置规则可以指定哪些类、...
Eclipse+ProGuard配置 Eclipse 是一个基于 Java 的集成开发环境(IDE),ProGuard 是一个 Java 类库和应用程序的保护和优化工具。通过结合使用 Eclipse 和 ProGuard,可以对 Java 应用程序进行混淆、压缩和优化,...
在文件的最后添加一行`proguard.config=proguard.cfg`,这表示我们将在`proguard.cfg`文件中定义混淆规则。 如果在执行混淆操作时遇到“Conversion to Dalvik format failed with error 1”的错误,这是由于...
首先,我们需要找到项目的`proguard-rules.pro`文件,这个文件通常位于`app/proguard-rules.pro`路径下。在这个文件中,我们可以添加自定义混淆规则。例如,如果你的代码中有使用到特殊字符或者非ASCII字符的类或...
java 源码加密 混淆,proguard 配置文件,很详细,经测试可以用
无论使用哪种方式,都需要配置 proguard.cfg 文件或 proguard-project.txt 文件。 配置 proguard.cfg 文件需要注意以下几点: 1. 添加外部引用的外部 jar 包。 2. 保存外部 jar 里的类和方法,以免混淆时出错。 3....
ProGuard的配置文件通常为`proguard.cfg`或`proguard-project.txt`,其中包含了一系列的规则和指令。常见的配置选项包括: - `-keep`:指定不进行混淆的类或方法。 - `-optimizations`:定义要执行的优化步骤。 - `...
Eclipse会通过此配置在工程目录生成proguard.cfg文件 2 . 生成keystore (如已有可直接利用) 按照下面的命令行 在D:\Program Files\Java\jdk1.6.0_07\bin>目录下,输入keytool -genkey -alias android.keystore -...
- `proguard.cfg`文件:定义混淆规则的配置文件,自Android 2.3起,新项目会自动生成此文件。 2. **添加配置文件**: - 将`proguard.cfg`文件复制到你的项目根目录下。对于2.2及更早版本的项目,需要手动添加。 ...
ProGuard的配置文件通常命名为`proguard.cfg`,在该文件中,我们可以定义混淆规则,比如保留特定包或类不被混淆,以及设置混淆策略等。 1. **ProGuard配置** 在`proguard.cfg`文件中,我们需要指定哪些类和包需要...
2. **编写配置文件**:创建一个配置文件,例如`proguard.cfg`,并指定以下参数: - `-injars`:指定输入的JAR文件。 - `-outjars`:指定混淆后的输出JAR文件。 - `-libraryjars`:列出所有依赖的库JAR文件。 - ...
使用ProGuard时,我们需要编写一个名为`proguard.cfg`或`proguard-project.txt`的配置文件,其中包含混淆、优化和排除规则。例如,我们可能会写入保留特定库类或方法的规则: ```text -keep class ...
2. **配置ProGuard**:在项目根目录下创建一个名为`proguard.cfg`的配置文件,指定混淆规则、优化选项等。例如: ``` -injars bin/classes -outjars bin/classes-processed.jar -libraryjars <java.home>/lib/rt...
这个ZIP文件包含了ProGuard版本7.4.0的所有必要文件和配置。 下载和使用方法: 下载ZIP文件: 点击下载按钮获取proguard-7.4.0.zip文件。确保你选择了适合你操作系统的版本。 解压文件: 下载完成后,使用解压软件...
5. **配置文件**:`proguard.cfg` 或 `proguard-rules.pro` 是ProGuard 的配置文件,用于指定混淆、优化、压缩和预校验的具体规则。开发者可以在这些文件中添加或修改规则,例如保留特定的类、方法或注解,以防止...
首先,`proguard.cfg`是ProGuard的配置文件。ProGuard是一个开源的Java字节码混淆器、优化器和裁剪器,用于减少Java应用和库的大小,同时提高安全性。它通过重命名类、方法和变量名称,去除未使用的代码,以及优化...