Modules vs Package Android Studio



我是Android Studio和Java的新手。

我正在开发一个应用程序。这个应用程序基本上遵循分层架构,有不同的层,例如,UI,数据访问层,服务层等。

我不清楚包和模块之间的区别。

我的问题是,把所有这些不同的层放在哪里,模块,还是包?

指向@Angel对这个问题的回答,两者之间的唯一区别是,模块定义了一个更严格的规则,谁可以访问它们,通过必须导入模块的命名空间。

模块是项目中源代码的容器。一个项目可以有多个模块,但是每个模块都是一组独立的代码和资源。

例如,当你用默认设置创建一个新项目时,Android Studio会生成一个名为app的模块。这个模块保存了所有的源代码、资源文件和应用程序级别的设置。

但是,如果您使用手机/平板电脑应用程序以及Android Wear应用程序创建新项目,您将看到两个模块;mobilewear。每个模块都包含各自应用的源代码、资源文件和应用级设置。

您还可以创建另一个模块,以便在多个模块之间共享;此模块将被视为库模块。

本质上是源代码所属的目录(文件夹)。通常,这是一个唯一标识应用程序的目录结构;如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

最新更新