用不同的资源编译Android(白色标签)

时间:2014-06-10 02:10:37

标签: android compilation continuous-integration apk android-resources

我们有一个Android项目,我们为不同的客户维护一个代码库,每次为不同客户编译的最快/最有效的方法是什么?我找到的选项很少,而且我的问题是:

  1. 编写脚本:替换资源文件夹并编辑应用名称,版本等。

  2. 使用Android库项目将当前项目分离为图书馆项目是不切实际的,我在想是否可以将一些设置和资源文件保存为图书馆项目和只是为不同的编译导入不同的库项目?

  3. 在远程服务器上存储设置和资源是否可以在远程服务器上存储资源文件和某些应用程序设置(xml,常量等),然后下载并替换为用户首次启动apk时的应用程序?这些文件将存储在哪里?

  4. 您建议的其他选择吗?

2 个答案:

答案 0 :(得分:2)

Android Studio提供了一个名为" flavors"的功能。允许您从单个代码库快速定义不同的配置。我在过去几天刚刚了解到这一点,所以我不仅仅知道更多。

答案 1 :(得分:1)

我发现的最佳方式是构建后脚本步骤。为主构建使用一组默认资源/资产。这是您的默认apk,用于默认测试。保存这个构建的unsigned apk。然后,对于客户特定的APK,打开未签名的apk(它只是一个zip文件),覆盖任何覆盖的文件,然后签署新版本。

只要您不需要为不同的客户更改代码,这样就可以正常工作。它也不会在任何构建中放置任何不需要的资产/资源,因此您不会通过包含其文件将信息泄露给其他客户。

如果确实需要更改代码,最好的方法是从设置文件中对变量进行运行时检查。并以与执行其他所有操作相同的方式覆盖设置文件。

作为一个额外的好处,如果你需要,你可以写一个非常花哨的系统,允许客户上传他自己的文件来覆盖你的默认值(包括允许他们覆盖你的一些设置),所以你不要#39 ; t需要处理十几个变更请求。这需要更多的工作。