自从我遇到翻译问题以来,我一直尝试使用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));
我尝试过运行一些测试时间,但不确定我是否考虑过所有方面。那么其他人做得更快的是什么呢?
答案 0 :(得分:2)
我得到的测试结果对于内联代码来说,平均写出100次日志文件的时间是:
20.6 ms
getResource字符串调用和写入日志文件100次的平均时间是:
29.0 ms
我很惊讶我认为getResources()调用会更快。
答案 1 :(得分:1)
如果您的应用程序瓶颈是getString(),那么您在优化其他所有内容方面做得非常出色:网络,数据库访问,绘制您的视图。
我真的不担心。
答案 2 :(得分:0)
我认为要么你的应用程序要快得多,使用相同值的多个字符串(Strings.xml或以编程方式)也没有任何相关的开销。 如果再次使用它,则重用所有字符串和字符串值表达式而不是重新创建。
重点是轻松访问和编辑每个术语的每个出现,并支持多种语言。
答案 3 :(得分:0)
当然硬编码字符串会更快但是它违反Java编码标准,因为要存储在常量文件或属性或xml文件中,那么你可以重复使用它。