什么是在Strings.xml中使用硬编码的InLine字符串或字符串更快

时间:2013-04-29 14:21:35

标签: java android string android-resources

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

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

与在strings.xml中放入“This is My Hard Coded String”然后在代码中调用它相比:

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

我尝试过运行一些测试时间,但不确定我是否考虑过所有方面。那么其他人做得更快的是什么呢?

4 个答案:

答案 0 :(得分:2)

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

20.6 ms

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

29.0 ms

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

答案 1 :(得分:1)

如果您的应用程序瓶颈是getString(),那么您在优化其他所有内容方面做得非常出色:网络,数据库访问,绘制您的视图。

我真的不担心。

答案 2 :(得分:0)

我认为要么你的应用程序要快得多,使用相同值的多个字符串(Strings.xml或以编程方式)也没有任何相关的开销。 如果再次使用它,则重用所有字符串和字符串值表达式而不是重新创建。

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

答案 3 :(得分:0)

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