Зависимость Androidx и Google Framework
Я хотел бы писать приложения которые выглядят современно и работают на большинстве устройств (т.е. начиная с API 21 Lollipop). Более того чтобы программа не требовала последних сервисов гугл, вернее чтобы вообще их не требовала.(Если стратегия неверна поправьте пожалуйста, в том смысле что имеет ли смысл писать для API 21 т.к. существует API 29).
Для этого как я понял существует androidx. Возникает несколько вопросов на это счет.
- Требует ли Androidx последнюю версию Google Play? Насколько я понял да, но внутри androidx есть пакет support и вот уже он не требует и возникает второй вопрос.
- Как на свежей версии Android Studio создавать проекты с библиотекой androidx.support? Прикладываю скриншоты. Нужно ли ставить галочку в android studio а потом мигрировать на androidx или есть способ сразу его использовать?

Ответы (1 шт):
неясно как вы эти вещи связали. Были библиотеки support, которые выполняли свою функцию. Потом их заменили на androidx, которые их частично дублировали, просто под другим названием. Одновременно использовать и support, и androidx в одном проекте нереально, ни конфликтуют. Соответственно, и одно в другом не находится. Что имеется ввиду под версией Google Play я не понял, если androdi SDK - нет, никаких прямых связей между sdk и androdix нет, библиотеки androidx можно использовать с любыми версиями sdk 15+
Не ставьте галочку, она нужна тем, кто привык к саппорту или пишет что-то для старого проекта где уже используется саппорт библиотеки. Для новых приложений нет никакого смысла их использовать. Просто без галочки у вас автоматом будут использоваться androidx библиотеки. Например, создав пустую активити там будет лежать толкьо один элемент - ConstrintLayout из androidx.
Если вы ставите минимальный sdk 21, то ваша программа будет работать на всем что имеет андроид 5.0 и выше. Если вы используете что-то, что требует sdk выше, то студия вам об этом сообщит и не даст скомпилиться так просто.
TargetSDK и compileSdk ставить лучше максимальный возможный. Во-первых, Google Play в какой-то момент перестает принимать новые приложения, скомпиленные не под самый свежий андроид, и вы просто не сможете выложить новую версию с compileSDK 28. Придется ее менять и подгонять код под соответствующие изменения, а изменения могут быть довольно серьезные. Так что чем раньше вы поставите максимальный compileSDK, тем лучше. В общем, если сильно грубо, то minSDK - это граница снизу, compile и target - граница сверху. Нижнюю ставьте где хотите, а вот верхнюю ставьте максимально возможную если нет явных проблем из-за этого
Сервисы гугл не используются никак, если вы сами их внутри программы не используете. Ваше приложение может быть собрано в апк/бандл и установленно на любую сборку андроид, а сборку андроида вы можете сделать сами из открытых исходных кодов.