android app的多个实例 - git项目管理的最佳方法

时间:2014-05-08 12:22:16

标签: android git resources

我有一个应用程序,它将有多个实例。某些资源的实例会有所不同,可分为两组:

  1. 仅在(未)注释的代码中存在,整个代码存在
    • 颜色
    • 字符串
    • 布局上的细微差别(例如,在一个实例中,某些组件将消失,在另一个实例中,它们将是可见的,但代码仍然存在)
  2. 完全替换(名称,文件)
    • 包名称
    • 绘项目
    • res / raw中的证书(所有证书不得存储在那里,仅针对特定实例)
  3. 处理这些要求的最佳方法是什么?使用不同的git分支?

    我使用git(smartgit客户端)。我想当我为不同的实例使用不同的分支时,可以满足所有要求。但我担心这种方法不适用于第二组 - 完全替换(名称,文件)。有什么建议吗?

    PS:据我所知,在添加新功能时,我需要从一些主分支合并到所有其他分支。

1 个答案:

答案 0 :(得分:1)

毕竟git方法不对。使用Gradle构建多个应用实例(产品风格)是正确的做法:

1)每个应用实例的特定文件和资源

颜色字符串位于资源文件中:Project/module/src/instance_name/res/values/instance_name_cfg.xml

布局位于:Project/module/src/instance_name/res/layout/instance_name_cfg.xml

Java代码位于:Project/module/src/instance_name/java/package.name/MyClass.java

drawables(PNG图片)位于:Project/module/src/instance_name/res/drawable/ ic_launcher 图片仅在不同文件夹中的相同路径中(drawable-hdpi,.. 。)

常用文件和资源位于Project/module/src/main/文件夹中。

2)在第一张图片中有整个文件结构。

实例在我的案例城市(达曼,吉达,布拉格,雷丁)。屏幕截图来自Android Studio,您可以在其中切换构建变体(风格) - 位于图片的底部。

enter image description here

3)在第二张图片中,有一个build.gradle文件的片段。

混合app(实例)资源非常强大。如下图所示,资源,java文件甚至清单文件可以在指令 sourceSets 中组合在一起。例如,Dammam和Jeddah具有相同的java文件,每个实例具有一些公共资源和特定资源。在sourceSets中使用实例名称(例如dammam)必须在指令 productFlavours 中的声明之前。

enter image description here