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

标签 android git resources

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

  1. 仅在(未)注释的代码中有所不同,整个代码都存在
    • 颜色
    • 字符串
    • 布局上的细微差别(例如,在一种情况下,某些组件将消失,在另一种情况下,它们将可见,但代码仍然存在)
  2. 完全替换(名称、文件)
    • 包名称
    • 绘图
    • res/raw 中的证书(所有证书不得存储在那里,仅适用于特定实例)

处理这些要求的最佳方法是什么?使用不同的 git 分支?

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

PS:我知道添加新功能时,我需要从某个主分支 merge 到所有其他分支。

最佳答案

毕竟 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)第一张图片中有整个文件结构。

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

enter image description here

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

混合应用程序(实例)资源非常强大。如下图所示,资源、java 文件甚至 list 文件都可以在指令 sourceSets 中组合在一起。例如,达曼和吉达具有相同的 java 文件、一些公共(public)资源和每个实例的特定资源。在 sourceSets 中使用实例名称(例如 dammam)必须先于指令 productFlavours 中的声明。

enter image description here

关于android - Android 应用程序的多个实例 - git 项目管理最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23541655/

相关文章:

Android Gradle : depends on libraries but is not a library itself

android - AlertDialog.html#setView(View, int, int, int, int) 中的整数需要什么单位(px、dip、?)

git - 从 bash 脚本退出 git log

git - 使用 gitflow 和 gitversion 一次构建,多次部署

android - 垂直滚动条与水平滚动 Android

java - 用独特的字符串填充微调器

git - 自定义 SSH 配置不工作

c# - 将嵌入式资源读入字节数组时出错 (C#)

java - 使用来自不同项目的加载器从项目的源文件夹加载文件

model-view-controller - 如何重写ResourceHttpRequestHandler来实现自定义的资源处理程序?