Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android应用程序的多个实例-git项目管理最佳方法_Android_Git_Resources - Fatal编程技术网

android应用程序的多个实例-git项目管理最佳方法

android应用程序的多个实例-git项目管理最佳方法,android,git,resources,Android,Git,Resources,我有一个应用程序,它将有多个实例。实例在某些资源上有所不同,可分为两组: 仅在(未)注释的代码中不同,存在整个代码 颜色 弦 布局上的微小差异(例如,在一个实例中,某些组件将消失,在另一个实例中,它们将可见,但代码仍然存在) 完全替换(名称、文件) 包名 抽绳 res/raw格式的证书(所有证书不得存储在那里,仅用于特定实例) 处理这些需求的最佳方法是什么?使用不同的git分支? 我使用git(smartgit客户端)。我想当我为不同的实例使用不同的分支时,所有的需求都可以得到满足。但我

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

  • 仅在(未)注释的代码中不同,存在整个代码
    • 颜色
    • 布局上的微小差异(例如,在一个实例中,某些组件将消失,在另一个实例中,它们将可见,但代码仍然存在)
  • 完全替换(名称、文件)
    • 包名
    • 抽绳
    • res/raw格式的证书(所有证书不得存储在那里,仅用于特定实例)
  • 处理这些需求的最佳方法是什么?使用不同的git分支?

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


    PS:我明白,当添加新功能时,我需要将一些主分支合并到所有其他分支中

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

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

    颜色和字符串位于资源文件中:
    Project/module/src/instance\u name/res/values/instance\u name\u cfg.xml

    布局位于:
    Project/module/src/instance\u name/res/layout/instance\u name\u cfg.xml

    Java代码位于:
    Project/module/src/instance\u name/Java/package.name/MyClass.Java

    drawables(PNG图像)位于:
    Project/module/src/instance\u name/res/drawable/
    ic\u launcher图像仅位于不同文件夹(drawable hdpi,…)中的同一路径中

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

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

    我的例子是城市(达曼、吉达、布拉格、雷丁)。屏幕截图取自AndroidStudio,在这里您可以切换构建变体(风格)——位于图片底部

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

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