在HarmonyOS开发中,混淆规则通常是通过ProGuard或者类似的工具来配置的。对于你提到的场景,即让继承某个父类的所有子类都不混淆,HarmonyOS中的混淆配置规则与Android是相似的,因为HarmonyOS在构建和打包应用时,很多机制都借鉴了Android的做法。
你提供的规则在格式上有些问题,正确的ProGuard规则应该像这样:
-keep public class * extends com.mobile.YTBaseVo {
*;
}
-keep public class * extends com.JsApi {
public <methods>;
}
在HarmonyOS项目中,你可以使用类似的规则来避免混淆。具体来说:
1. **对于`YTBaseVo`的所有子类**:
- 使用`-keep public class * extends com.mobile.YTBaseVo { *; }`来确保`YTBaseVo`的所有子类及其成员都不被混淆。
2. **对于`JsApi`的所有子类**:
- 使用`-keep public class * extends com.JsApi { public <methods>; }`来确保`JsApi`的所有子类的公共方法不被混淆(注意,这里的规则只保留了公共方法,如果你需要保留其他类型的方法,比如私有方法或受保护的方法,你需要相应地调整规则)。
确保你的`proguard-rules.pro`(或其他配置混淆规则的文件)中包含了上述规则,并且在构建过程中启用了ProGuard或类似的混淆工具。
如果HarmonyOS的IDE或构建系统有特定的配置方式,你需要参考相应的文档来确保规则被正确应用。通常,这些规则会放在项目的构建配置文件中,如`build.gradle`(对于Gradle构建系统)或其他相应的配置文件。
你可以看一下这个配置混淆规则:https://gitee.com/openharmony/arkcompiler_ets_frontend/blob/m...
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。