Proguard keep Inner Class

stackoverflow上找到了答案:

-keepattributes Exceptions,InnerClasses,... 
-keep class [packagename].A{ 
    *; 

-keep class [packagename].A$* { 
    *; 



其中 A$* 表示所有A的内部类都保留下来,也可以如下使用:


[html] view plaincopy在CODE上查看代码片派生到我的代码片
-keepattributes Exceptions,InnerClasses,... 
-keep class com.xxx.A{ *; } 
-keep class com.xxx.A$

 

### ProGuard 代码示例与使用教程 以下是基于 ProGuard 的典型配置和代码示例,帮助开发者了解如何在项目中集成并使用它。 #### 1. ProGuard 基础配置文件 `proguard-rules.pro` ProGuard 的核心在于其规则文件的编写。以下是一个基础的 `proguard-rules.pro` 文件示例: ```plaintext # 保留公共类及其成员 -keep public class * { public protected *; } # 保留注解标记的类和方法 -keepclassmembers class * { @android.annotation.SuppressLint <methods>; } # 不混淆枚举 -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } # 保持自定义 View 类中的特定方法不被移除或重命名 -keepclasseswithmembernames class * { native <methods>; } ``` 上述规则确保了一些常见的 Android 或 Java 应用程序组件不会因混淆而失效[^1]。 #### 2. 在 Maven 项目中配置 ProGuard (Spring Boot) 对于 Spring Boot 项目,在 Maven 构建工具中可以引入 ProGuard 插件来实现代码混淆和压缩。以下是一个典型的 `pom.xml` 配置片段: ```xml <build> <plugins> <plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.14</version> <executions> <execution> <phase>package</phase> <goals> <goal>proguard</goal> </goals> </execution> </executions> <configuration> <options> <option>-dontnote</option> <option>-dontwarn</option> <option>-ignorewarnings</option> <option>-keepparameternames</option> <option>-renamesourcefileattribute SourceFile</option> <option>-keepattributes Exceptions,InnerClasses,Signature,Deprecated, SourceFile,LineNumberTable,*Annotation*,EnclosingMethod</option> <!-- 明确指定要保留的关键类 --> <option>-keep public class com.example.myapp.Main { public static void main(java.lang.String[]); }</option> </options> <libs> <lib>${java.home}/lib/rt.jar</lib> </libs> </configuration> </plugin> </plugins> </build> ``` 此配置通过插件方式实现了对 Spring Boot 项目的保护,并明确了哪些部分需要保留以避免破坏框架的核心功能[^3]。 #### 3. 测试混淆后的应用程序 完成混淆后,必须验证应用是否仍然能够正常工作。这通常涉及以下几个方面: - 功能性测试:确认所有主要功能均按预期运行。 - 性能评估:检查是否有任何显著的性能下降。 - 日志审查:查看日志输出是否存在异常行为。 如果发现任何问题,则需调整相应的 ProGuard 规则直至满足需求为止[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值