2014-05-08 75 views
2

我有一個將有多個實例的應用程序。實例將在一些資源,其可以被分爲兩組不同:Android應用程序的多個實例 - git項目管理最佳方法

  1. 不同之處僅在(未)註釋的代碼,整個代碼是本
    • 顏色
    • 小布局差異(例如,在一個實例中,一些組件將消失,在另一個實例中它們將可見,但代碼保持不變)
  2. 完全取代(名稱,文件)
    • 包名
    • 可繪製在res
    • 證書/生(所有證書不能儲存在那裏,只有在特定的情況下)

處理這些要求的最佳方法是什麼?使用不同的git分支?

我使用git(smartgit客戶端)。我想,當我爲不同的實例使用不同的分支時,可以滿足所有的要求。但我擔心這種方法不適用於第二組 - 完整替換(名稱,文件)。有什麼建議麼?

PS:據我所知,添加新功能時,我需要從某個主分支合併到所有其他分支。

回答

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

可繪(PNG圖像)位於:Project/module/src/instance_name/res/drawable/ic_launcher圖像是在相同的路徑只在不同的文件夾中(drawable-hdpi,...)

常用文件和資源位於Project/module/src/main/文件夾中。

2)在第一張圖片中有整個文件結構。

實例在我的城市(達曼,傑達,布拉格,雷丁)。截圖取自Android Studio,您可以在其中切換構建變體(flavor) - 位於圖片的底部。

enter image description here

3)在第二圖像存在的build.gradle文件的片段。

混合應用程序(實例)資源非常強大。正如您在下面的圖片中看到的,資源,java文件甚至清單文件可以在指令sourceSets中組合在一起。例如,達曼和吉達擁有相同的java文件,每個實例有一些公共資源和特定資源。在sourceSets中使用實例名稱(例如dammam)必須在指令productFlavours中聲明之前。

enter image description here

相關問題