1

自从我遇到翻译问题以来,我一直尝试使用 Android 中的资源在 Android 中声明我的字符串。但有时我不需要声明字符串,比如我用于日志消息的字符串。但是我做了一些搜索,发现没有人测试过更快的方法,从代码中的 strings.xml 加载字符串或在线硬编码。这是我使用日志消息的正常方式:

log.d(TAG, "This is My Hard Coded String");

与将“这是我的硬编码字符串”放在 strings.xml 中然后在代码中调用它相比:

log.d(TAG, getResurce().getString(R.string.hardcodedstring));

我已经尝试过一些测试时间,但不确定我是否考虑了所有方面。那么其他人这样做更快吗?

4

4 回答 4

2

我得到的测试结果是内联代码写出 100 次日志文件的平均时间是:

20.6 毫秒

getResource 字符串调用和写入日志文件 100 次的平均时间是:

29.0 ms

我很惊讶我认为 getResources() 调用会更快。

于 2013-04-29T15:13:10.020 回答
1

如果您的应用程序瓶颈是 getString(),那么您已经完成了一项非常了不起的工作,优化了其他所有内容……网络、数据库访问、绘制视图。

我真的不会担心。

于 2013-04-29T14:28:40.060 回答
1

Offcourse硬编码字符串会更快,但它违反Java编码标准,因为存储在常量文件或属性或xml文件中,然后你可以重用它。

于 2013-04-29T14:44:05.140 回答
0

我认为两者都不会使您的应用程序更快,使用相同值的多个字符串(Strings.xml 或以编程方式)没有任何相关的开销。如果再次使用,所有字符串和字符串值表达式都会被重用,而不是重新创建。

重点是轻松访问和编辑每个术语的每次出现,并且还支持多种语言。

于 2013-04-29T14:27:04.037 回答