2016-05-14 49 views
0

我試圖理解Android上模塊的概念。我讀過this article on the official documentation,但我有點困惑。這裏指出:關於應用模塊的Android Studio最佳實踐

一個Android應用程序模塊是應用程序的源代碼,資源文件和應用程序級別的設置,例如模塊級構建文件,資源文件和Android清單文件的容器。應用程序模塊內容最終會內置到安裝在設備上的.apk文件中。

這幾乎是我在這方面找到的所有文檔。我仍然不明白在哪些情況下創建不同的模塊是有意義的。我知道它可能因案例而異,但理想情況下,模塊的最小邏輯大小是多少?

一個實際的例子

我建立與一個抽屜視圖的應用程序。抽屜中的每個按鈕都會打開一個片段,這個片段會有一些邏輯。製作一個只包含一個片段和一些沒有任何活動的Java類的模塊是否有意義?

我真的很想知道哪些是最佳做法。

謝謝。

+1

只有在距離很遠的情況下才有意義。作爲一般規則,如果我打算稍後將該模塊作爲開源庫發佈,我只會啓動一個單獨的模塊。你建議的這種分離級別是很有意義的。 – Budius

+0

感謝您的反饋。你能詳細說明「遠處」的含義嗎? – Aurasphere

+0

我給你一個真實的例子。我在一個非常大的應用程序中使用RecyclerView的LOADS。我們需要很多功能(滾動裝載器,頁眉頁腳等),這些功能最終可以被我工作的任何其他項目使用。我在一個不同的模塊中開發了這些工具,當它工作正常時,我將它移動到一個單獨的項目中,並在Github(https://github.com/eyeem/RecyclerViewTools)中發佈。 – Budius

回答

2

也許將代碼和資源分解爲模塊的最佳參數是可重用性。如果不是這種模塊的多個依賴項,爲什麼你需要把這個代碼分離出來放到一個模塊中?如果你只有一個應用程序,就沒有太多的需要將這些代碼分解到一個模塊中。

只要你有多個應用程序共享相同的代碼,那麼我認爲一個模塊是合理的。一個模塊可能是很多東西。它可能是一個包含大部分代碼的基礎應用程序。它可以包含應用程序的「模型」方面,或者可能包含API或網絡層。它可能是專有算法的容器。它可能是你計劃開源的一些通用代碼。誰知道?

從相反的角度考慮它。如果你真的不需要,現在做這個的風險是什麼?也許精神開銷?考慮和維護這個模塊可能比它的價值更麻煩,因爲如果你沒有充分的理由去做這件事。

推遲這個決定的成本是多少?有沒有什麼令人信服的理由說明,爲什麼在稍後的某個時候,這段代碼無法重構成主模塊?

對於單個UI組件而言,一個小的單個Fragment聽起來像是不需要在其自己的模塊中的東西。