Android разница между модулем и вкусом

Каковы основные различия между модулями Android и вкусов?

Из определения модуля https://developer.android.com/studio/projects/add-app-module.html

Модули предоставляют контейнер для исходного кода вашего приложения, файлов ресурсов и настроек уровня приложения, таких как файл сборки на уровне модуля и файл манифеста Android. Каждый модуль может быть независимо собран, протестирован и отлажен.

Но я мог бы сказать то же самое о вкусах.

Может кто-нибудь указать на ключевые различия между этими двумя?

2 ответа

Модуль является частью проекта, в то время как разновидности - это более или менее конфигурации / реализации

Конкретный пример для модулей: если вы делаете библиотеку, у вас может быть несколько модулей, например, сама библиотека и демонстрационный проект. Каждый из них является модулем

Примечание: каждый модуль имеет свой код

Конкретный пример вкусов: вы подаете заявку с некоторыми онлайн-функциями. Для этого у вас есть несколько сред (на сервере env. Для тестирования, один для живой версии). Вы можете создать вариант сборки для каждой среды с ее собственной конфигурацией (и своими собственными реализациями, если это необходимо)

Примечание: вкусы могут делиться своим кодом (используя основную папку)

Это всего лишь короткий вывод. Модули и ароматы намного мощнее, чем это краткое описание, но я думаю, что оно укажет на самые важные различия

РЕДАКТИРОВАТЬ: Ключевым отличием является структура вашего проекта, особенно в отношении gradle.

Модули всегда имеют свой собственный файл Gradle, поэтому вы получаете следующую структуру:

projectName.gradle
    module1.gradle
    module2.gradle
    ...

варианты определены в файле Gradle модуля:

Например, module1.gradle может выглядеть так:

// some other gradle stuff before

buildTypes {
    dev {
        // your config
    }
    debug {
        // your config
    }
    release {
        // your config
    }
}

Как видите, вы можете смешивать вкусы и модули. Так что теперь у вас будет проект с двумя модулями и разными вариантами в module1.

В вашей папке проекта у вас должна быть следующая структура в вашем файловом проводнике:

/project
  /module1
    /src
      /main
      /dev
      /debug
      /release
  /module2

Модули - это совершенно разные наборы файлов. Ароматы могут делиться большей частью кода или конфигов и иметь только незначительные различия.

Другие вопросы по тегам