proguard 是将所有枚举转换为 int 还是需要为此进行配置
proguard 是否会自动将枚举转换为整数以进行内存优化,或者我必须对其进行配置才能执行此操作?如果我必须配置,配置是什么?
proguard 是否会自动将枚举转换为整数以进行内存优化,或者我必须对其进行配置才能执行此操作?如果我必须配置,配置是什么?
优化在 ProGuard 的优化页面上列出。它似乎是默认优化之一,但是如果您需要更多控制(例如,禁用除枚举取消装箱之外的所有优化),则可以显式指定它(与其他优化一样)。class/*
类/取消装箱/枚举
尽可能将枚举类型简化为整数常量。
Proguard 需要具有以下配置:
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
请注意包含文件而不是文件。proguard-android-optimize.txt
proguard-android.txt
ProguardEnumIntDefTest是Github上的一个示例项目,它试图找出Proguard是否将枚举转换为ints。
对于 Proguard 来优化 一个 ,它不应该有方法和关联的值(字段)。Proguard 将这些简单的枚举转换为 ints,因此您可以在编译时获得枚举的类型安全性,并在运行时获得 ints 的性能!enum
enum