Все, что мы делаем на Android с помоью Java, зависит от Android SDK - если мы создаем приложение под определенную версию, например, для Android Nougat, то у нас должны быть установлены соответствующие иструменты SDK. Это надо учитывать при разработке.
Откроем Android Studio. По умолчанию, если мы запускаем программу в первый раз, то нам открывается некоторое начальное меню. В самом низу стартового экрана программы найдем кнопку "Configure" и нажмем на нее:
Далее в выпадающем меню нажмем на пункт "SDK Manager". После этого откроется окно с настройками для Android SDK Manager:
Для более детального просмотра всех компонентов по каждой платформе нажмем внизу окна на ссылку Show Package Details.
Здесь мы детально можем посмотреть, какие пакеты для каждой платформы установлены. Все компоненты сгруппированы по определенной версии SDK, например, Android API 27, Android 8.0 (Oreo), Android 7.1.1 (Nougat) и так далее. Каждая версия SDK фактически представляет определенную версию или подверсию ОС Android. Но каждая версия SDK предполагает широкий круг компонентов, это в том числе и инструменты для разработки под телевизоры, под смарт-часы и т.д. Не все эти инструменты могут понадобиться, поэтому нет смысла все версии SDK абсолютно полностью устанавливать.
В данном случае нас прежде всего будет интересовать пункт Android SDK Platform. Android SDK Platform содержит весь основной функционал, который используется при разработке. Данный пункт можно выделить для всех тех платформ, под которые мы собираемся компилировать приложение. В частности, рекомендую выбрать последние платформы - Android 8.0/7.1, а также те, которые будут использоваться в качестве минимальных платформ, например, Android 5.0 / 5.1.
Кроме SDK Platform каждая платформы, как правило, содержит еще ряд компонентов, которые предназначены для тестирования приложения на эмуляторе:
Android TV Intel x86 Atom System Image
Android Wear Intel x86 Atom System Image
Google APIs Intel x86 Atom System Image
Google Play Intel x86 Atom System Image
Для более ранних платформ список компонентов может отличаться.
Если не планируется использование эмулятора, то данные компоненты не столь важны. И наоборот, если тестирование будет происходить на эмуляторе, то следует установить для этого образ системы Google APIs Intel x86 Atom System Image или Google Play Intel x86 Atom System Image.
Далее в этом же окне перейдем на вкладку SDK Tools. Здесь перечислены дополнительные пакеты:
Здесь для нас прежде всего важны такие пакеты как:
Android Support Repository
Android Support Library
Google Play Services
Google Repository
Google Usb Driver
Эти пакеты устанавливают репозитории android и сервисы google play. Кроме того, если вы хотите использовать для тестирования приложений смартфон от Google - Nexus 5/5X и 6/6P или Google Pixel, то обязательно надо установить пакет Google Usb Driver, который представляет драйвер для работы с данными смартфонами. Если же предполагается использовать смартфон другого производителя, то в этом случае надо будет установить USB-драйвер непосредственно от этого производителя. Как правило, при подключении смартфона система сама пытается установить драйвер.
Если планируется использование эмулятора, то также следует установить пакет Intel x86 Emulator Accelerator (HAXM installer).
И если в процессе разработки или тестирования будут возникать проблемы с какими-то версиями ОС Android, то вполне вероятно корень проблем заключается в отсутствии нужных компонентов для определенных платформ. В этом случае можно будет из Android Studio запустить SDK Manager и вручную установить недостающие компоненты.
Впоследствии при каждом запуске Android Studio будут появляться всплывающие уведомления о доступности обновлений по платформам, что довольно удобно и что позволит проектам не отставать от последних обновлений от Google.
Если впоследствии нам потребуется вызвать SDK Manager, то мы можем сделать это из самой Android Sudio через панель инструментов: