【发布时间】:2013-04-16 02:50:48
【问题描述】:
这就是我的想法:
strings.xml 上的字符串应该用于要使用的布局 (xml)。静态常量供代码(.java)使用。
说到最佳实践,我想知道应该使用哪个。
如果你有很多字符串,它会有性能影响吗?
getString(...) vs MyConstants.THIS_IS_A_CONSTANT
【问题讨论】:
-
如果您不关心本地化或 Android 支持的任何其他 qualifiers 资源,那么您不妨使用 Java 常量。我希望常量稍微快一些,因为它们可以被编译器内联并且不需要被夸大。但是,它可能只是一个微优化,所以我不会太担心它,前提是你没有在 UI 线程上执行任何循环操作,在其中你不断地膨胀字符串或字符串数组。
-
如果你想以不同的语言发布你的应用程序,那么所有出现在 UI 上的字符串都应该在 strings.xml 中。其余的你可以根据需要将它们设为静态。
-
如果您真正追求的是“最佳实践”,切勿对 UI 字符串进行硬编码,即使是在小型个人项目中也是如此。最好避免有朝一日会导致您的程序员同事在必须将您的代码国际化时向您的咖啡中泼盐的坏习惯。即使在代码中,一些字符串也应该是资源,例如处理可能因地区而异的用户输入时。
标签: android string performance constants