2010-11-15 18 views
20

我有一個Android代碼庫,它使用帶有設置的API來獲取多個應用程序的不同數據。所有的應用程序使用相同的代碼庫,但有一個或兩個設計調整。那麼如何重新使用主代碼庫而無需每次都複製整個Android項目呢?如何從一個代碼庫創建多個Android應用程序

iPhone在同一個項目中使用多個目標,效果很好。如果android不能做到這一點,我需要在一個項目中編譯代碼庫的二進制文件,然後導入到每個新的應用程序項目?如果是這樣如何?我使用Eclipse並且是一名中級Java開發人員。

任何幫助非常感謝!

Doug

+1

查看developer.android.com上的tic tac toe lib示例 – MatrixFrog 2010-11-15 20:03:02

回答

0

您可能要考慮使用像Subversion(或GIT)這樣的源代碼控制系統。保持你的功能最完整的版本在後備箱,使枝條作你的不同版本使用不同的數據源,或者需要較小的佈局變化等

+1

不確定爲什麼人們會對此投票進行投票。如果您有多個應用程序由模板代碼庫構建而成,並且並非所有應用程序都必須使用最新模板構建,那麼這可能是適當的。 (例如,考慮一種情況,即您有一個許可給外部客戶的模板,但是如果他們想要升級到最新的模板,則向他們收費。並非所有客戶都會支付升級費用。) – 2012-11-19 16:27:32

+3

我建議使用庫2年前寫的。圖書館更簡單,更容易維護。 – 2012-11-19 19:41:07

+0

問題是關於從相同的代碼庫開發建築2應用程序。不是關於允許多個開發人員爲多個版本構建應用程序。你有錯的問題。 – Siddharth 2013-01-18 08:13:21

4

注意:這個答案基本上已經過時了,現在可以創建.aar資源庫。儘管如此,它仍然有效,並且可能有時候.jar的可移植性是可取的,所以我將它放在這裏。

布魯默的回答是一個很好的,你一定要看看庫項目的Android的想法。但是,還有另一種選擇。如果您的模塊僅包含Java代碼,但沒有任何類型的資源(圖像,佈局等),則可以將其分別編譯爲.jar文件,並在多個應用程序項目中使用生成的.jar文件。它的工作原理是這樣的:

  • 在Eclipse中創建一個新的Java項目(不是Android項目)並將模塊的源代碼移到那裏。
  • 如果你的模塊引用了從SDK任何類,你需要在Android SDK的.jar添加到項目的類路徑(項目>屬性> Java構建路徑>庫>添加JAR)。
  • 當您的模塊準備好使用時,將其.class文件捆綁到一個.jar文件中。您可以手動執行此操作,也可以查看如何讓Eclipse爲您完成此操作。
  • 將您的模塊.jar文件複製到應用程序主項目的「libs」目錄中。
  • 將模塊.jar添加到項目的類路徑(再次,項目>屬性> Java構建路徑>庫>添加JAR)。

現在您應該可以使用相同的.jar構建多個應用程序,同時只保留模塊源代碼的一個副本。

根據您的具體情況,這可能會或可能不會比Android標準庫機制爲你工作更好。但值得考慮作爲替代方案。

+0

是不是「使用圖書館項目」(但沒有手動步驟)? – user1697575 2015-09-20 14:14:57

+0

@ user1697575:是的。我編輯了我的答案,說現在基本已經過時了,我們有真正的Android庫項目。 – Dalbergia 2016-01-04 17:28:17

9

目前的方式,如果你使用的是Android的一室公寓搖籃是解決這個問題,通過使用搖籃,建設型+產品風味

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants

構建變體

新構建系統的一個目標是允許創建同一應用程序的不同版本。

主要有兩種使用情況:

不同版本的同一應用程序 的。例如,一個免費/演示版本VS「親」的付費應用。

相同的應用程序在Google Play商店中爲multi-apk打包的方式不同。

這個新概念旨在幫助當差異非常小時。如果答案是「這是同一個應用程序?」是的,那麼這可能是通過圖書館項目的方式。

相關問題