为什么应用程序ID存储在Android中的strings.xml中



strings.xml不是应该用作文本存储,以方便将应用程序中的文本翻译为其他语言吗?

例如,根据Facebook手册,建议将Facebook应用程序id存储在strings.xml中。

这意味着,如果我想与第三方共享此文件进行翻译,我必须自己手动删除所有ID,或者与第三方共享这些ID。

strings.xml不是应该用作文本存储,以方便将应用程序中的文本翻译成其他语言吗?

没有。它是用于任何类型字符串的字符串存储。大多数使用都与本地化相关,但有任何字符串(如API密钥、令牌等)都是完全可以的。

请注意,您不仅限于strings.xml文件。您可以拥有任意多个包含字符串资源的*.xml文件(因此,按类/功能模块拆分本地化并将其保存在单独的xml文件中是很常见的)。

您可以创建多个strings.xml,也可以将其命名为appids.xml,并将所有id存储在此文件中。将数据与代码分离是常见的软件设计pardigm,因此您不会仅使用字符串常量作为id。

对于Android的最佳实践,谷歌是最好的选择,例如,他们在这里建议使用appids.xml文件:开始使用Play Games

Facebook可能会使用这种更简单的形式来存储您的id,以使教程更容易遵循。

基本上,您将在应用程序中使用的ID可能会出现在多个java class files中。因此,错误地输入id或密钥可能会导致您预期的结果失败。作为一个好的实践,你应该将这些东西存储在strings.xml中,这将帮助你最大限度地减少结果中出错的可能性。此外,如果你因为任何原因更改了id或密钥,那么你可能必须在提到它的每个文件中更改它。相反,如果你只是在strings.xml中更改它,它将自动反映在你使用过它的每个实例中。更进一步,Android是开源的。因此,你创建的任何应用程序都可以进行逆向工程,所有代码都可以读取。这会导致你的id泄露,并且可能是你在应用程序中使用的任何api的一些密钥。

最新更新