为什么app id存储在Android的strings.xml中?

时间:2016-04-20 17:03:44

标签: android app-id

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

例如 - 建议根据facebook手册的Facebook app id存储在strings.xml中。

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

3 个答案:

答案 0 :(得分:1)

  

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

没有。它是任何类型字符串的字符串存储。大多数使用是与本地化相关的,但任何字符串都像API键,令牌一样完全没问题。

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

答案 1 :(得分:0)

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

对于Android最佳做法,Google可以使用,例如他们建议在此处使用appids.xml文件:Getting started with Play Games

Facebook可能正在使用这种更简单的形式存储您的ID,以使教程更容易理解。

答案 2 :(得分:0)

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