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