kotlin class' 常量池中疯狂的 UTF-8 条目
Crazy UTF-8 entry in a kotlin class' constant pool
当检查来自 Kotlin 源的 .class 文件的内容时(只是 "Hello World",没有别的)我在常量池中发现了一个 UTF-8 字符串,它 (a) 不是在任何地方使用并且 (b) 具有奇怪的内容。
谁能告诉我这是什么?
这是kotlin.Metadata
注释的内容。它使用 Protobuf 编码并由编译器和 Kotlin-Reflect.
使用
Kotlin 使用 String
而不是 byte[]
因为 class 格式在存储数组时非常浪费。
当您不使用 Kotlin-Reflect 时,元数据未被使用,可以通过 ProGuard 删除。
当检查来自 Kotlin 源的 .class 文件的内容时(只是 "Hello World",没有别的)我在常量池中发现了一个 UTF-8 字符串,它 (a) 不是在任何地方使用并且 (b) 具有奇怪的内容。
谁能告诉我这是什么?
这是kotlin.Metadata
注释的内容。它使用 Protobuf 编码并由编译器和 Kotlin-Reflect.
Kotlin 使用 String
而不是 byte[]
因为 class 格式在存储数组时非常浪费。
当您不使用 Kotlin-Reflect 时,元数据未被使用,可以通过 ProGuard 删除。