Proguard规则中-if关键字的含义是什么?以Kotlin序列化配置为例
Proguard
-if 关键字作用说明 -if 是Proguard的条件规则触发关键字,核心作用是定义规则的前置生效条件:只有当-if后声明的匹配条件被满足时,才会执行紧随其后的配套规则,属于Proguard条件保留规则体系的核心语法。
你贴出的规则可以直接拆解为两部分逻辑:
- 第一行是条件匹配:
-if @kotlinx.serialization.Serializable class **会匹配项目中所有被@kotlinx.serialization.Serializable注解修饰的类,通配符**代表匹配任意包路径下的任意类 - 第二行是条件满足后执行的保留规则:
<1>是通配符占位符,会自动替换为前面-if条件匹配到的类的全限定名,整行规则的作用是保留对应类内部的静态Companion伴生对象成员,避免被Proguard混淆、裁剪
整段规则的最终效果就是:对所有加了kotlinx序列化注解的类,自动保留它的伴生对象,保证序列化库运行时能正常读取类的序列化元数据,不会因为混淆/裁剪出现运行时异常。
内容的提问来源于stack exchange,提问作者atulgpt
相关产品推荐
相关产品推荐

