android - 在android中定义常量的最佳方法是静态类、接口(interface)还是xml资源?

标签 android xml configuration constants static-members

我正在开发一个使用 Web 服务从服务器获取数据的 android 应用程序,因为我有三组不同的 URL 来指向开发系统、测试服务器和实时服务器。每当我想提供测试/直播应用程序时,都很难更改 URL。所以我计划将其设置为可配置的,以便应用程序可以根据我的构建类型配置常量获取适当的 URL。 所以,

  • 这是保持这个常量的最好方法,java静态类或 java公共(public)接口(interface)或xml资源文件。? 什么时候?为什么?
  • 哪个性能更好?什么时候?为什么?

例如:xml 资源

<integer name="config_build_type">0</integer>
<string-array name="url_authentication">
    <item >http://development.com/xxxx</item>
    <item >http://test.com/xxx</item>
    <item >http://example.com/xxx</item>
</string-array>

Java 静态常量

public class Config {
    public static final int BUILD_TYPE = 0; // 0 - development, 1 - test, 2 - live
    public static final String[] URL_AUTHENTICATION = {"http://development.com/", "http://test.com/", "http://example.com"};
}

最佳答案

两者之间有很大的区别,您可以在 XML 布局中引用项目资源。它们在应用程序上下文中可用,因此可以跨全局应用程序访问。使用项目资源的最大优势是易于访问,并且可以让您有效地组织您的项目。

static final 常量被编译成java字节码;项目资源在 apk 中被编译成二进制格式。访问其中任何一个都非常有效......如果两者之间存在差异,那最多是微不足道的。

对于您应该如何在项目中使用资源/常量没有固定的规则。也就是说,我个人将资源用于可能需要在我的 XML java 代码中使用的值。另一方面,我通常将static final 常量用于 由我的java 代码使用并且特定于我的实现的值。

另请注意,根据设备的当前配置(即屏幕大小、区域设置等),可以在运行时加载 XML 资源。因此,在决定是在 XML 中还是直接在 .java 文件中声明常量时,您应该考虑到这一点。

关于android - 在android中定义常量的最佳方法是静态类、接口(interface)还是xml资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150701/

相关文章:

android - Google 日历 API 中的 "Year 2038 _problem"(Android 应用程序)

xml - XSD 中的条件必需元素

c# - 在 ASP.NET 样板中为应用程序服务配置审计日志记录

java - Android studio - Google 广告崩溃应用程序

android - 扩展 Android View 类以添加阴影

android - 在 View 顶部打开 PopupWindow

asynchronous - 将 grunt 参数从一项任务传递到另一项任务

PHP SoapClient 无法处理消息,因为内容类型为 'text/xml;

Python、Pandas、XML - 根据长度分割 XML 元素

linux - 为什么 linux 路由配置在两个 NIC 冗余(主/辅)时失败?