2011-10-12 123 views
3

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

我有2种方法在我脑海中实现它。请给我看你的意见。

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

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

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

回答

1

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

在您的项目中,您可以创建配置文件夹,其中您将准备好所有三个.properties文件。然后,例如创建三个ANT任务,每个任务都将一个属性文件复制到具有相同目标文件名的资产文件夹中。你也可以用其他方式来做到这一点(在Windows上使用.bat,在Linux上使用.sh,你可以参数化ANT任务,让它有一个任务和属性来说明哪个文件可以选择...)。

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

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

+0

@dstedanox Thx我会试试这个 – Riddle

+0

这是一个很好的建议,但是如果你想在运行时改变环境,这并没有太大的帮助。 –