我正在編寫一個可以以幾種風格(今天只有3個,可能長期20-30個)構建的應用程序。如何高效地編寫一個具有不同版本風格的Android應用程序,針對同一個私人圖書館的不同版本
該應用程序現在是一個簡單的git倉庫中的一個大型Android項目。它有幾個特性(大部分都是在他們自己的java包中獨立出來的),現在大約有4或5個特性,我認爲長遠來看,這種特性會增長十幾倍。
爲了簡單起見,假設應用程序有兩種版本,香料1和風味2,並提供三種功能, 特徵1個特徵2和特徵3
眼下味道使用所有的功能和風味B使用特徵1 & 2.該設置由服務器配置在外部控制,但它確實是事先已知的業務決策(即在構建時),並且特徵3的代碼可以被剝離Flavor B的構建沒有太多的麻煩:通過孤立庫項目中的特徵3,並僅在應用程序的build.gradle中包含Flavor A。
問題是,除了剝離未使用特徵的代碼外,我還有以下要求:特徵必須能夠使用特徵的特定版本。例如,Flavor A將使用Feature 2 v1.0,而Flavor B將不得不使用Feature 2 v1.1。我們可以假設這些功能不依賴於其他功能。
味:
- 特徵1個1.0
- 特徵2 1.0
- 特點3 1.0
香精B:
- 特徵1 v1.0
- 特徵2 v1.1
我想盡量保持簡單。我看到的解決方案是隔離其git存儲庫中的功能,對它們進行版本化並將它們推送到專用存儲庫(如Nexus),並在應用程序的build.gradle文件中包含我需要的每種類型的aar。風味A將取決於特徵2 v1.0和風味B在特徵2 v1.1上。
我需要真正設置這個來看看這是否可行,但我已經預測了一個功能的乏味發展階段。我應該如何測試我目前正在開發的功能,當我需要在主應用程序的環境中進行測試時,並參考Nexus服務器上的aar?我是否必須在每次代碼更改時推送一個虛擬版本(我將結束多少個版本?)我應該在開發和引用本地庫文件夾時註釋掉aar依賴項,以便它使用我的本地代碼?兩個開發人員可以使用相同的功能嗎?
更一般地說,這是一種好方法,還是我有更好的選擇?
這是一個廣泛的問題,只是爲了讓你的意見。關於StackOverflow的主題。 –
我應該問哪裏? – Nodjo