2016-11-11 87 views
4

我對Android Studio和Java非常陌生。模塊與包Android Studio

我正在開發一個應用程序。這個程序將基本上遵循一個分層的架構,不同的層,例如,用戶界面,數據訪問層,業務層等

我不是包和模塊之間的區別清楚。

我的問題是,一個地方會把所有這些不同的層,在模塊或包?

指向@Angel響應this問題,兩者之間的唯一區別是\,模塊通過必須導入模塊的名稱空間來定義更嚴格的規則,由誰可以訪問它們。

+0

更多信息https://developer.android.com/studio/projects/add-app-module.html – Suhaib

回答

10

module爲項目中的源代碼中的容器。一個項目可以有多個模塊,但每個模塊都是一組獨立的代碼和資源。

例如,當您創建使用默認設置一個新的項目,Android Studio中生成一個名爲app模塊。該模塊包含您的應用程序的所有源代碼,資源文件和應用程序級設置。

但是,如果你創建一個新的項目與手機/平板電腦的應用程序,也是一個Android Wear的應用程序,你會看到兩個模塊; mobilewear。每個模塊都包含各自應用程序的源代碼,資源文件和應用程序級設置。

您還可以創建另一個模塊在多個模塊之間共享;該模塊將被視爲library module

package基本上是目錄(文件夾),以源代碼所屬。通常,這是一個唯一標識您的應用程序的目錄結構;如com.example.app。然後,您可以在應用程序包中創建用於分隔代碼的包;如com.example.app.uicom.example.app.data


因此,要回答你的問題,包裝爲每個應用程序所在的目錄src/main/java應用模塊的範圍內。您可以在應用程序包中放置一個單獨的包來分隔應用程序架構的每個「層」。

只是一個視覺的例子,這是我的一個項目的基本結構:

project 
|-- build.gradle 
|-- settings.gradle 
~ 
|-- common // a common library module for both mobile and wear 
| |-- build.gradle 
| |-- proguard-rules.pro 
| +-- src 
|  +-- main 
|   |-- AndroidManifest.xml 
|   |-- assets 
|   |-- java 
|   | +-- com 
|   |  +-- example 
|   |   +-- library // common module library package 
|   |    |-- data 
|   |    +-- util 
|   +-- res 
| 
|-- mobile // mobile application module 
| |-- build.gradle 
| |-- proguard-rules.pro 
| +-- src 
|  +-- main 
|   |-- AndroidManifest.xml 
|   |-- assets 
|   |-- java 
|   | +-- com 
|   |  +-- example 
|   |   +-- app // mobile module application package 
|   |    |-- data 
|   |    |-- ui 
|   |    +-- util 
|   +-- res 
| 
+-- wear // wear application module 
    |-- build.gradle 
    |-- proguard-rules.pro 
    +-- src 
     +-- main 
      |-- AndroidManifest.xml 
      |-- assets 
      |-- java 
      | +-- com 
      |  +-- example 
      |   +-- app // wear module application package 
      |    |-- data 
      |    |-- ui 
      |    +-- util 
      +-- res 
相關問題