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

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

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

提前致谢。

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

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

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

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

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

这是关于性能的一些评论(@PankajKumar,@ TechEnd,@ Ken YN):

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

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

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

希望这可以帮助。 欢迎评论。

此致,MM。