在我的Android应用程序中,我需要针对不同的环境(例如开发,UAT,生产)进行不同的配置。
我有两种方法可以在我的脑海中实现它。请赐教你的意见。
1)。通过使用3个不同的.properties文件或 2)。通过为共享配置创建baseconfig类并从3个配置类扩展(我不确定它是否是一个好主意)
稍后将这两个方法加载到静态配置类中以便于访问。
每种方法的优点和缺点是什么? 还有其他选择吗?
答案 0 :(得分:1)
我认为最好的办法是拥有一个活动的.configuration文件,例如你可以存储在assets文件夹中。关于树文件的想法似乎并不好,因为你需要将所有三个.properties文件打包到.apk,尽管你不使用这三个文件中的两个。您的代码始终读取相同的.properties文件,并通过复制正确的.properties文件来决定执行哪种类型的构建。
在您的项目中,您可以创建配置文件夹,您可以在其中准备好所有三个.properties文件。然后,您创建三个ANT任务,每个任务将一个属性文件复制到具有相同目标文件名的assets文件夹。您也可以通过任何其他方式执行此操作(Windows上为.bat,Linux上为.sh,您可以将ANT任务参数化为一个任务和属性,说明要选择哪个文件...)。
因此,当您要构建生产版本时,请运行任务生成,这将为您复制生产.properties文件。然后你建立.apk。当然,所有这些都可以集成到完整的ANT构建过程中,您可以在构建过程开始时执行复制.properties文件的步骤。
通过这种方式,您可以获得最佳的APK大小,并始终使用相同的代码来处理.properties文件。它也适用于自动化建筑环境(例如Hudson),您可以从外部自动化构建目标。