Android 存储静态配置数据

Android 存储静态配置数据,android,configuration,static,Android,Configuration,Static,我寻找了一个解决方案,但得到了SharedReference和SQLite数据库的解决方案。我必须存储一个URL,我的Android应用程序将访问该URL以获取一些数据。我喜欢将其保持为可配置的,以防我可以更改URL并使用另一组数据的应用程序 如果我使用strings.xml,在添加对其他语言的支持时是否需要重复相同的操作 为了存储在SharedReferences中,我需要将其存储在某个位置,直到安装应用程序才能将其保存在那里 为此使用SQLite数据库似乎太牵强了 我认为最基本的是将其存储在

我寻找了一个解决方案,但得到了SharedReference和SQLite数据库的解决方案。我必须存储一个URL,我的Android应用程序将访问该URL以获取一些数据。我喜欢将其保持为可配置的,以防我可以更改URL并使用另一组数据的应用程序

如果我使用strings.xml,在添加对其他语言的支持时是否需要重复相同的操作

为了存储在SharedReferences中,我需要将其存储在某个位置,直到安装应用程序才能将其保存在那里

为此使用SQLite数据库似乎太牵强了

我认为最基本的是将其存储在Constants类中,但我不确定这是否是正确的方法


有人能提出更好的解决方案吗?

我会将URL存储在常量中。除非您需要在不同版本之间进行更改。
如果您想将其存储在XML中,请将其放入
donottranslate.XML
,这样Lint就不会抱怨了。

在我们的应用程序中,我们将所有静态配置作为元数据属性存储在AndroidManifest.XML中

文档链接比我能更好地解释它:

基本上:

<meta-data android:name="api.url" android:value="http://api.some-api.com"/>

您没有指出url应该保持私有。所以,你可能忽略了显而易见的事实。为什么不简单地创建一个随应用程序一起安装的“配置”文件呢?这可以通过以下方法实现。一旦安装,应用程序就可以简单地读取它并进行相应的处理。

使用JSON,因为它轻便、快速、复杂,我会使用string.xml。。只是不在其他语言中添加字符串string@StinePike,它会不会抱怨其他语言缺少字符串资源,我也说过fr_fr/strings.xml?据我所知。。它和drawable一样。。这意味着如果当前配置中缺少某些内容。。然后它使用来自其他用户的URL,URL不必是私有的。我只想将此类语言无关的静态配置数据保存在一个位置,而不是保存在任何Constants类中。如果这是您想要保留私有的内容,请不要使用此方法,因为它可用于所有其他应用,有关详细信息:
        Bundle data = context.getPackageManager().getApplicationInfo(
            context.getPackageName(),
            PackageManager.GET_META_DATA).metaData;

        String apiUrl = data.getString("api.url");