java - Proguard 或编译器会预先计算 TimeUnit.Minutes.toMillis(120)

标签 java android proguard

目前我有一个类,内容如下 effectively constant 字段。

private static final long ACTIVITY_TIMEOUT_MS = 1 * 60 * 1000;

这很好,但仍然不是世界上最可读的代码。我更愿意使用以下内容:

private static final long ACTIVITY_TIMEOUT_MS = TimeUnit.MINUTES.toMillis(1);

这清楚地表明我希望时间为 1 分钟,但字段为毫秒。

我的问题是编译器或者混淆器会修复这个问题,这样就不会影响性能吗?如果性能会受到影响,我是否可以预期该类的每个实例都会受到一次影响?

最佳答案

是的,这将是对类加载的一次性影响,并且它只占类加载的一小部分,甚至可能无法根据加载类的开销来衡量。

不,编译器无法弄清楚,如果 ProGuard 可以,我会感到相当惊讶,但这并不重要。

关于java - Proguard 或编译器会预先计算 TimeUnit.Minutes.toMillis(120),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806758/

相关文章:

java - AndEngine GenericPool 带有计时器,从池中添加 Sprite

java - 这是对 MySQL 使用 MAX 函数的正确方法吗?

java - Play 商店发布的应用程序“网络无法访问”,但调试版本有效

android - Proguard 不剥离木材原木

java - Dalvik - 将 java 文件添加到项目时局部变量类型不匹配 - 没有 proguard

java - GetText() 说明 - xpath 不返回值

java - 如何为替代生产者和消费者方法编写 Java 多线程代码。它应该有 3 个生产者(P1、P2、P3)和 1 个消费者(C1)

android - 如果 GCM 自动显示,如何处理 Android 中的通知点击

android - MediaPlayer 无法寻求无缓冲位置

Android:向 Intent 添加数据无法加载 Activity