gpt4 book ai didi

proguard - Proguard 什么时候可以优化枚举?

转载 作者:行者123 更新时间:2023-12-05 07:39:03 33 4
gpt4 key购买 nike

https://www.guardsquare.com/en/proguard/manual/optimizations

class/unboxing/enum

Simplifies enum types to integer constants, whenever possible.

但显而易见的问题是,什么时候可能?我假设枚举不能有字段/方法?它仅适用于局部变量还是也适用于方法参数?

特别是,如果我有一个带有字段的枚举和该字段的 getter,我可以将它转换为一个静态方法,在枚举上切换;这会启用优化吗?

最佳答案

优化

您的假设是正确的,对于优化 enum 的 Proguard,enum 不应该有方法和关联的值(字段)。 Proguard 将这些简单的枚举转换为整数,因此您可以在编译时获得枚举的类型安全性,并在运行时获得整数的性能。

它既适用于变量也适用于方法参数。

因此对于您在 enum 中有一个字段的情况,优化将不适用。

Jake Wharton谁为 Android 团队和 others 工作在此 Reddit post 中讨论了枚举优化.


混淆器设置

Proguard 设置应如下所示:

minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

请注意包含 proguard-android-optimize.txt 文件而不是 proguard-android.txt 文件。

ProguardEnumIntDefTest是 Github 上的一个示例项目,它试图找出 Proguard 是否将枚举转换为整数。


关于proguard - Proguard 什么时候可以优化枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47390433/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com