XML字符串资源与Java常量字符串?
我有一个字符串类似于XML字符串资源与Java常量字符串?,java,android,xml,string,Java,Android,Xml,String,我有一个字符串类似于stringdata=“apps” 我知道在Android中加载字符串有两种方式 第一个是 所以它是一个常数,我把它定义为 public static final String data="apps"; 另一种类型是在res/vslues/strings.xml文件中定义它,如 <string name="data">apps</string> <string name="hello_world
stringdata=“apps”代码>
我知道在Android中加载字符串有两种方式
第一个是
所以它是一个常数,我把它定义为
public static final String data="apps";
另一种类型是在res/vslues/strings.xml
文件中定义它,如
<string name="data">apps</string>
<string name="hello_world">Hello world!</string>
应用程序
你好,世界!
如果我想用的话
对于第一种方式ClassName.data
对于第二种方式context.getResources().getString(resourceid)
问题:
所以现在我的问题是,我想在不同的类中使用相同的字符串30次。我有更多的变量。因此,在上述方法中,加载速度更快,占用的内存更少
XML字符串值是可以根据区域设置重写的显示字符串。通过这种方式,您可以通过一个常量键引用一个可翻译的显示值。但是,在任何情况下,速度都不应该是一个问题。我建议根据合理的情况进行组织
常数类
放置将在内部使用的字符串常量,如数据库列名或其他键
strings.xml
放置为用户显示的字符串。通过这种方式,您可以利用本地化等优势
根据要求,您应该更喜欢第二种方法,即XML
基于
您应该考虑使用XML字符串来向用户显示一些东西,并根据区域设置更改它。
无论如何,publicstaticfinalstringdata=“apps”应该使用code>来隐藏一些非用户数据,如数据库连接、日志消息等。我建议您利用Android资源系统
引用这本书:
Android中的资源效率高且速度快。XML资源被编译成二进制格式。这使得它们在开发时很友好,在运行时不会很慢。
我认为速度和内存使用是一样的。类中的常量就像string.xml中的常量一样,它只存储一次,并在需要时在其他地方引用。
然而,存储在string.xml中的优势在于避免了额外的代码导入行。同时,您必须记住,对于string.xml存储,您只能在活动的上下文可访问的地方使用它。首选第二种。因为如果您在所有活动中使用相同的方法,并且希望再次更改,那么只需要在strings.xml中更改一次。我认为加载过程中不会有太大的差异,这取决于这些常量和资源将在哪里使用。我认为对于java代码,常量更好,因为您不需要像资源一样使用方法来读取字符串值。但是,资源可以更好地用于区域设置处理..strings.xml比常量更快。查一下Raghav的答案Sood@kalyanpvs对我来说,这听起来是最符合逻辑的答案。谢谢