当前位置: 首页> 财经> 产业 > Android之ProGuard使用

Android之ProGuard使用

时间:2025/7/12 6:35:47来源:https://blog.csdn.net/Sh_12345/article/details/141030653 浏览次数:0次

目录

  • 1. 启用 ProGuard
  • 2.创建 ProGuard 配置文件
  • 3.配置 ProGuard 规则
  • 4.常见的 ProGuard 规则
  • 5.构建项目
  • 6.检查混淆结果
  • 7.调试和修复问题

ProGuard 是一种代码混淆和优化工具,通常用于减小 APK 文件大小并保护源代码不被反编译。

1. 启用 ProGuard

在 Android 项目中,ProGuard 通常配置在 build.gradle 文件中。要启用 ProGuard,你需要在 buildTypes 中进行配置。

android {...buildTypes {release {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}
  • minifyEnabled true:启用代码混淆和优化。
  • proguardFiles:指定 ProGuard 配置文件。getDefaultProguardFile(‘proguard-android-optimize.txt’) 使用 Android 提供的默认配置文件,proguard-rules.pro 是你自定义的配置文件。

2.创建 ProGuard 配置文件

在项目的 app 目录下创建一个名为 proguard-rules.pro 的文件(如果它还不存在)。这个文件用于定义 ProGuard 的规则。

3.配置 ProGuard 规则

在 proguard-rules.pro 文件中,你可以添加自定义的 ProGuard 规则。例如:


# 保留所有类和类成员
-keep class com.example.app.** { *; }# 保留所有带有特定注释的类和类成员
-keep @interface com.example.app.MyAnnotation# 保留特定类的构造函数
-keepclassmembers class com.example.app.MyClass {public <init>(...);
}# 保留所有带有自定义注释的字段和方法
-keepclassmembers class * {@com.example.app.MyAnnotation *;
}# 优化代码
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*# 忽略警告
-dontwarn com.example.app.**

4.常见的 ProGuard 规则

  • **保留类和类成员:**防止 ProGuard 混淆特定的类和类成员。
  -keep class com.example.app.** { *; }
  • 保留注解和反射: 防止 ProGuard 混淆使用注解和反射的代码。
  -keepattributes *Annotation*-keep class * implements java.lang.annotation.Annotation { *; }
  • **保留序列化类:**防止 ProGuard 混淆实现 Serializable 接口的类。
  -keepclassmembers class * implements java.io.Serializable {static final long serialVersionUID;private static final java.io.ObjectStreamField[] serialPersistentFields;private void writeObject(java.io.ObjectOutputStream);private void readObject(java.io.ObjectInputStream);java.lang.Object writeReplace();java.lang.Object readResolve();}

5.构建项目

配置完成后,使用以下命令构建项目的 release 版本:

./gradlew assembleRelease

debug版本命令

./gradlew assembleDebug

ProGuard 会在构建过程中自动运行,并生成优化和混淆后的 APK 文件。
在这里插入图片描述

6.检查混淆结果

ProGuard 会生成一个映射文件(mapping file),用于将混淆后的代码映射回原始代码。这个文件通常位于

app/build/outputs/mapping/release/mapping.txt。

7.调试和修复问题

如果在启用 ProGuard 后遇到问题,可以通过以下步骤进行调试和修复:

  • 检查日志:查看构建日志和运行时日志,找出混淆导致的问题。
  • 调整 ProGuard 规则:根据日志信息,调整 proguard-rules.pro 文件中的规则,保留特定的类和类成员。

Android之APK 瘦身

关键字:Android之ProGuard使用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: