Atu*_*pta 4 android proguard kotlinx.serialization
对于以下 Proguard 规则(以Kotlin 序列化为例)
-if @kotlinx.serialization.Serializable class **
-keepclassmembers class <1> {
static <1>$Companion Companion;
}
Run Code Online (Sandbox Code Playgroud)
-if在上述规则的上下文中,的含义是什么?我尝试查看官方 proguard 文档,但找不到任何相关信息
我写了那些 ProGuard 规则。:)关于这些更改的拉取请求讨论可能会提供相关背景。
我理解您的困惑,ProGuard 规则文档非常稀疏。
-if类规范指定必须
present激活后续保留选项(-keep、-keepclassmembers、...)的类和类成员。条件和后续的 keep 选项可以共享通配符和对通配符的引用。例如,您可以使用 Dagger 和 Butterknife 等框架保留类,前提是项目中存在具有相关名称的类。
正如您复制的规则注释中所写:
# Keep `Companion` object fields of serializable classes.
# This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects.
-if @kotlinx.serialization.Serializable class **
...
Run Code Online (Sandbox Code Playgroud)
因此,-if @kotlinx.serialization.Serializable class **应理解为:适用于@Serializable应用了注释的所有类(即“可序列化类”)。in<1>随后-keepmembers指的是**通配符,即完全限定的类名。
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |