Android应用环境配置

标签 android configuration properties environment

<分区>

在我的 Android 应用程序中,我需要针对不同的环境(例如开发、UAT、生产)进行不同的配置。

我脑子里有两种实现方式。请赐教。

1).通过使用 3 个不同的 .properties 文件或 2).通过为共享配置创建一个 baseconfig 类并从 3 个配置类扩展(我不确定这是否是个好主意)

这两种方法稍后都会加载到静态配置类中以便于访问。

每种方法的优缺点是什么? 还有其他选择吗?

最佳答案

我认为最好的方法是拥有一个 Activity 的 .configuration 文件,例如您可以将其存储在 Assets 文件夹中。关于树文件的想法似乎并不好,因为您需要将所有三个 .properties 文件打包到 .apk,尽管您不使用这三个文件中的两个。您的代码始终读取相同的 .properties 文件,并且您通过复制适当的 .properties 文件来决定您执行哪种类型的构建。

在您的项目中,您可以创建配置文件夹,其中您将准备好所有三个 .properties 文件。然后你创建,例如,三个 ANT 任务,每个任务都会将一个属性文件复制到具有相同目标文件名的 Assets 文件夹。您也可以通过任何其他方式执行此操作(在 Windows 上为 .bat,在 Linux 上为 .sh,您可以将 ANT 任务参数化为具有一个任务和属性,该属性说明要选择哪个文件...)。

因此,当您想要构建生产版本时,运行任务生产,它将为您复制生产 .properties 文件。然后构建 .apk。当然,所有这些都可以集成到完整的 ANT 构建过程中,您可以在构建过程开始时执行复制 .properties 文件的步骤。

通过这种方式,您可以获得最佳的 APK 大小,并且始终使用相同的代码来处理 .properties 文件。它还适用于自动化构建环境(例如 Hudson),您可以在其中“从外部”自动化构建目标。

关于Android应用环境配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736754/

相关文章:

postgresql - 如何在 PostgreSQL 中将 timestamp(0) 设置为默认值而不是 timestamp(6)?

iphone - 在 ViewController 上找不到属性

c# - 如何覆盖抽象类的属性?

android - 获取当前日期和时间

android - 诊断应用程序在设备上显示为 "Incompatible",但在 Play 商店控制台中显示为 "Supported"的原因

Android Studio Gradle assembleRelease 文件名

java - 通过套接字将 String 和 Byte[] 从 Android 应用程序发送到 Python 服务器

c# - Visual Studio 2008 编辑器配置 - 插入符和当前行

windows - 无法将模块/mod_ssl.so 加载到服务器中

ios - 如何从 AppDelegate.m 访问一些实例类变量