# -------------------------------------
# android 原始混淆模板
# -------------------------------------
# ----------------------------------
# 通过指定数量的优化能执行
# -optimizationpasses n
# ----------------------------------
-optimizationpasses 5
# ----------------------------------
# 混淆时不会产生形形色色的类名
# -dontusemixedcaseclassnames
# ----------------------------------
#-dontusemixedcaseclassnames
# ----------------------------------
# 指定不去忽略非公共的库类
# -dontskipnonpubliclibraryclasses
# ----------------------------------
#-dontskipnonpubliclibraryclasses
# ----------------------------------
# 不预校验
# -dontpreverify
# ----------------------------------
# -dontpreverify
# ----------------------------------
# 输出生成信息
# -verbose
# ----------------------------------
-verbose
# ----------------------------------
# 优化选项
# optimizations {optimization_filter}
# ----------------------------------
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
# -----------------
# modify 修改合并
# -----------------
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#--------------------------
# 保护类型 -keepattributes 说明
# Exceptions, Signature, Deprecated, SourceFile, SourceDir, LineNumberTable, LocalVariableTable,
# LocalVariableTypeTable, Synthetic, EnclosingMethod, RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations,
# RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations, and AnnotationDefault
# --------------------
-keepattributes **
-libraryjars <java.home>/lib/rt.jar
# ----------------------
# 不压缩指定的文件
# -dontshrink
# ----------------------
-dontshrink
# ----------------------
# 不优化指定的文件
# -dontoptimize
# -----------------------
-dontoptimize
# -----------------------
# 不混淆指定的文件
# -dontobfuscate
# -----------------------
# ----- 混淆包路径 -------
-repackageclasses ''
-flattenpackagehierarchy ''
-target 1.6
# -------- 以下是使用了 roboguice-1.1.2.jar 以及 guice-2.0-no_app.jar 功能需要保护的字段及类相关 --------
-keep class com.google.inject.Binder
-keepclassmembers class * {
@com.google.inject.Inject <init>(...);
}
-keepclassmembers class * {
void *(**On*Event);
}
-keepclassmembers class **.R$* {
public static <fields>;
}
# ------ 编译时需要用到的 jar 包
-libraryjars D:/dev_rc/android-sdk-windows/add-ons/addon_google_apis_google_inc_11/libs/maps.jar
# ------ 保护 谷歌第三方 jar 包,界面特效 ----------
-keep class android.support.v4.**
-dontwarn android.support.v4.**
# ------ 保护百度地址jar包 --------
-keep class com.baidu.mapapi.** { *; }
-dontwarn com.baidu.mapapi.**
# --- 打包时忽略以下类的警告 --
-dontwarn com.classpackage.AA
#-keepnames class * implements java.io.Serializable
# ---------保护所有实体中的字段名称----------
-keepclassmembers class * implements java.io.Serializable {
<fields>;
}
# --------- 保护类中的所有方法名 ------------
-keepclassmembers class * {
public <methods>;
}
分享到:
相关推荐
在Android开发过程中,为了保护应用的安全性和优化代码大小,开发者通常会使用ProGuard工具进行代码混淆、优化和压缩。ProGuard是Android Studio内置的一个强大的工具,它可以将Java字节码转换为更难理解的形式,...
android-proguard-snippets, 通用Android库的混淆器配置 android-proguard-snippets通用Android库的混淆器配置。这个项目假设你的混淆器配置是基于最新的官方 proguard-android.txt 配置,如下所示。 每个库配置应该...
4. **使用Proguard的注意事项:** - 混淆可能会导致依赖库的问题,需要添加相应的`-keep`规则来保留关键类和方法。 - 测试混淆后的代码是非常重要的,因为混淆可能导致一些未预见的错误,如反射调用失败、序列化...
**五、使用ProGuard注意事项** 1. 混淆可能会导致依赖库的问题,确保库已适配混淆或者添加相应的保持规则。 2. 对于依赖的第三方库,部分库可能已经处理了混淆问题,避免重复混淆。 3. 检查混淆规则,防止关键代码...
在Android开发中,ProGuard是一个强大的代码混淆、优化和压缩工具。它被广泛应用于发布APK时,以保护代码安全、减小程序体积并提高运行效率。当我们遇到与jPush(极光推送)相关的混淆报错时,理解ProGuard的工作...
在Android开发中,ProGuard是最广泛使用的Java代码混淆工具之一,它不仅能够混淆代码,还能够对代码进行优化,减少APK的大小,提高运行效率。 #### ProGuard的工作原理 ProGuard通过对类、方法和字段的名称进行...
android proguard5.3.3混淆包 替换Jar包以后使 混淆的类名方法名变成空白 使用方法 直接 替换 5.3.3版本的 混淆jar包 Mac 路径为 Contents/gradle/m2repository/net/sf/proguard/proguard-base Win gradle/m2...
使用ProGuard时,我们需要编写一个名为 `proguard.cfg` 或 `proguard-project.txt` 的配置文件,其中包含一系列的规则来指定哪些代码需要混淆、优化和压缩。配置文件中的常见选项包括: - `-keep`:保留指定的类或...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } 混淆文件里面添加 (自行选择) # 修改包名 -repackageclass "" # 忽略访问修饰符,配合上一句使用 -...
在Android开发过程中,为了保护应用的安全性和优化代码大小,开发者通常会使用Proguard工具进行代码混淆。Proguard是一个强大的Java类文件 shrinker、optimizer、 obfuscator 和 preverifier,它能够删除未使用的...
对于 App,建议使用 proguard-android-app-optimize.txt。 对于库,建议使用 proguard-android-lib.txt。 ##参考 ##执照 Copyright (C) 2015 Snowdream Mobile <yanghui1986527>Licensed under the Apache ...
在实际使用ProGuard 4.4时,需要注意以下几点: - **保留关键类和方法**:必须明确标记那些不能混淆或需要保留的类和方法,比如接口、公共API、错误处理类等。 - **处理依赖库**:如果项目依赖了第三方库,需要检查...
需要注意的是,在使用 ProGuard 时,需要注意以下几点: * 需要关闭或暂停杀毒软件,以免与 ProGuard 冲突。 * 需要选择 JDK 路径而不是 JRE 路径,以免出现问题。 * 需要注意红色下划线部分,以免出现错误。 ...
ProGuard 是一款广泛应用于 Android 开发中的代码混淆工具,它能够通过删除未使用的类、字段、方法等,从而缩小 APK 的体积,并提高应用运行速度。此外,ProGuard 还能为类、字段、方法等命名,使得反编译后的代码...
Maven WEB 项目使用 ProGuard 进行混淆,最佳解决方案 本文主要介绍了如何使用 ProGuard 对 Maven WEB 项目进行混淆,解决了 WEB 项目中混淆的难题。文章首先介绍了混淆的必要性,然后详细介绍了 WEB 项目的结构和 ...
在使用ProGuard 7.3.0时,用户需要了解如何编写混淆规则文件(`proguard-rules.pro`),这些规则用于指定哪些类、方法和成员需要保留,以及如何混淆。例如,保留库函数、接口或者特定的异常类。 在Android开发中,...
**注意事项**: - 混淆可能会影响第三方库的正常工作,因此需要谨慎处理依赖项。 - 在发布前,应始终对混淆后的代码进行测试,确保所有功能的正常运行。 - 配置文件的编写需要一定的学习和实践,不正确的设置可能...
**五、注意事项** 1. **混淆冲突**:避免库之间或库与应用的混淆规则冲突,可能导致运行时异常。 2. **混淆日志**:开启`-verbose`选项输出详细的混淆日志,便于分析和调试。 3. **混淆性能**:混淆虽然提高了...
**ProGuard 使用详解** ProGuard 是一款强大的 Java 字节码混淆工具,由 Eric Lafortune 开发,主要用于优化、压缩、混淆和预校验 Java 类文件。在 Android 开发中,ProGuard 被广泛应用于保护应用源代码,避免逆向...