android xml文件中的硬编码字符串有什么问题?

时间:2012-09-28 05:42:23

标签: android xml string warnings android-xml

我喜欢直接在xml文件上放置简单文本而不先声明字符串。它更容易,更简单,更少杂乱。但是,每当我这样做时,它总会有警告标记。

如果我的xml文件中有几十个硬编码字符串而没有关注警告怎么办?我会遇到麻烦吗?

提前感谢。

6 个答案:

答案 0 :(得分:9)

当您在java代码和xml文件中使用硬编码字符串时,您的应用程序会直接将这些字符串写入RAM。但是当你将它们声明为字符串资源时,它不会在应用程序启动时写入RAM,但是当应用程序需要使用它们时它们会写在RAM上。你可以在资源中声明十亿个字符串,你仍然可以拥有一个轻量级RAM友好的Android应用程序。

答案 1 :(得分:6)

这不会有任何麻烦。但是使用string.xml将文本放入应用程序被认为是一种很好的编程习惯。因为假设您想要在应用中的多个位置使用相同的文本。每次硬编码时都很难放入文本,特别是如果文本有点大的话。将文本放在一个文件中意味着您可以从应用程序的任何位置访问相同的文本。

答案 2 :(得分:5)

不,你不会遇到麻烦,但在你的xml中使用@string/yourString将是一个很好的做法,它将使多语言支持更容易。

答案 3 :(得分:5)

您的公司刚刚被买断了,现在您可以阅读数千行代码并将旧名称更改为新名称,因为有人硬编码字符串。你想要使你的代码国际化,所以它说西班牙语easy.just做一个新的strings.xml只命名为strings_es.xml手机本身设置西班牙语当然你会ttranslate但你已经完成。我无法读取字符串导致这手机很小,也许你可以给小手机做简短的描述。阅读mvc祝你好运

答案 4 :(得分:4)

没有什么可担心这些警告。也许Android开发人员认为这不是一个好习惯 但是如果你的应用程序有一天可能支持多语言,那么使用@ string / mystring是最好的做法。

答案 5 :(得分:2)

这是关于表现的一些评论(@PankajKumar,@ TechEnd,@ Ken Y-N):

根据Google文档,“字符串是已编译的资源数据类型:指向字符串的资源指针”。 (链接:http://developer.android.com/guide/topics/resources/string-resource.html#String

所以,我认为这会通过减少内存占用来提高性能,尽管差异可能并不明显。

这是因为,当我们在XML文件中声明一个字符串时,会保留指向该资源的指针。每当我们需要在其他地方再次重用该资源时,我们只获得一个指向现有String的指针,从而在为同一个String分配新内存时节省内存。 这与使用硬编码字符串形成对比,对于相同的字符串资源,每次都会分配内存。

希望这会有所帮助。欢迎提出意见。

此致 MM。