2016-11-11 3 views
4

Я очень новичок в Android Studio и Java.Модули против пакета Android Studio

Я занимаюсь разработкой приложения. Это приложение будет в основном следовать многоуровневой архитектуре с различными уровнями, например, пользовательским интерфейсом, уровнем доступа к данным, уровнем обслуживания и т. Д.

Я не понимаю различия между пакетами и модулями.

Мой вопрос в том, где можно было бы разместить все эти разные слои, в модулях или пакетах?

Указывая на ответ @Angel на вопрос this, единственное различие между ними - это \, модули определяют более строгое правило, которое может получить к ним доступ, путем импорта пространств имен для модулей.

+0

Подробнее https://developer.android.com/studio/projects/add-app-module.html – Suhaib

ответ

10

A module является контейнером для исходного кода в рамках проекта. Один проект может иметь несколько модулей, но каждый модуль представляет собой отдельный набор кода и ресурсов.

Например, когда вы создаете новый проект с настройками по умолчанию, Android Studio создает модуль под названием app. Этот модуль содержит все исходный код, файлы ресурсов и настройки уровня приложения для вашего приложения.

Но если вы создадите новый проект с помощью приложения «Телефон/планшет», а также приложения Android Wear, вы увидите два модуля; mobile и wear. Каждый из этих модулей содержит исходный код, файлы ресурсов и настройки уровня приложения для их соответствующего приложения.

Вы также можете создать другой модуль для совместного использования нескольких модулей; этот модуль будет считаться library module.

A package по существу является каталогом (папкой), к которому относится исходный код. Обычно это структура каталогов, которая уникально идентифицирует ваше приложение; таких как com.example.app. Затем вы можете создавать пакеты в своем пакете приложений, которые отделяют ваш код; таких как com.example.app.ui или com.example.app.data.


Поэтому, чтобы ответить на ваш вопрос, пакет для каждого приложения находится в пределах src/main/java директории модуля приложения. Вы можете поместить отдельный пакет в приложение pacakge для разделения каждого «слоя» вашего архитектурного объекта.

Только для наглядного примера, это базовая структура для одного из моих проектов:

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 
Смежные вопросы