- Добавление пакетов Android SDK Manager
- Откроется окно настроек Android SDK:
- Обязательно выберите такие компоненты:
- Следующий курс: Создание вашего первого приложения
- Национальная библиотека им. Н. Э. Баумана Bauman National Library
- Персональные инструменты
- Android SDK
- Android Debug Bridge
- Fastboot
- Какие пакеты SDK для Android следует установить?
- Инструменты
- Платформы Android
- Образы системы
- Дополнительно
- Уровень Android API, обратная и прямая совместимость
- Уровень API
- От исходного кода к APK-файлу
- DEX файлы и Android Runtime
- compileSdkVersion
- minSdkVersion
- targetSdkVersion
Добавление пакетов Android SDK Manager
По умолчанию, в Android SDK не установлено все необходимое для начала разработки. Пакет SDK содержит инструменты, платформы и другие компоненты, которые можно загрузить по мере необходимости, используя Android SDK Manager. Поэтому, прежде чем начать, вы должны добавить несколько пакетов в Android SDK.
Чтобы начать добавлять пакеты, запустите Android SDK Manager одним из следующих способов:
- В Android Studio при первом запуске в окне приветствия выберите пункт Configure> SDK Manager
- Если Android Studio уже запущена, выберите пункт меню Tools> Android> SDK Manager.
Откроется окно настроек Android SDK:
На вкладке SDK Platforms отметьте для загрузки все наиболее популярные на текущий момент версии Android. Их список постоянно обновляется на официальном сайте.
Перейдите на вкладку SDK Tools и отметьте для загрузки минимально необходимый набор компонентов, как показано на скриншоте:
Обязательно выберите такие компоненты:
- Android SDK Build-tools
- Android SDK Platform-tools (последняя версия)
- Android SDK Tools (последняя версия)
- Android Support Repository
После выбора нажмите кнопку Apply и дождитесь загрузки всех компонентов.
По окончании загрузки нажмите Finish. Среда разработки готова к работе.
Следующий курс: Создание вашего первого приложения
Прошу помощи. Только начал изучать разработку под андроид и возникла следующая проблема. Есть планшет Nexus 7 2012 WiFi, прошивка CyanogenMOD Android KitKat (4.4.4). Создаю новый пустой (Empty Activity) проект в Android Studio v 3.0.1, вообще ничего не меняю и пытаюсь запустить проект на устройстве — оно устанавливается и планшет переходит в ребут. Далее запускается очень много раз вылетает ошибка, что Trebuchet (это лаунчер) остановлен. Вообщем еле-еле удаляю приложение и всё становиться нормально. SDK установлены с версии 19 (4.4.4) по 26. Минимальный sdk установлен как 19. Такой же проект на Samsung (android 6.0) запускается без проблем. В чём может быть проблема ума не приложу. Мне кажется, что это возможно как-то связано с движком тем Cyanogen а может и нет, так как пробовал прошивку ParanoidAndroid — та же беда. Прошу поставьте меня на путь истинный
Любые сторонние прошивки вы устанавливаете на свой страх и риск. Нормальная работа системы при этом не гарантируется. Об этом все авторы прошивок пишут.
Это я прекрасно понимаю, и претензий не имею. Дело в том, что система работает стабильно. Остальные приложения которые были изначально написаны для 4.4.4 работают хорошо. И даже современные приложения устанавливаются и работаю -> а это значит, что авторы как то включили поддержку 4.4.4. Возможно ещё где-нибудь нужно нажать «галочку » для поддержки 4.4.4?
Объясните пожалуйста, зачем нужны эти пакеты?
Google APIs ARM EABI v7a System Image
Google APIs
И все пакеты в Extras.
Google APIs — ARM EABI v7a System Image — это образ эмулятора
Google APIs — API сервисов Google, например Maps или YouTube
в Extras самое необходимое — Android Support repository, android support library, google play services, google usb driver — названия как-бы не нуждаются в объяснении.
Что за WTF?! пишет отказано в доступе и доне нотхинг вас инсталед в конце чё делать
Здравствуйте
У меня установлена AS 2.1
Android SDK Build-tools не установлены (стоит прочерк)
Нужно ли устанавливать Android SDK Build-tools ? Все? И почему по умолчанию они не установлены вообще?
Для отправки комментария вам необходимо авторизоваться.
Источник
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Android SDK
Пакет средств разработки программного обеспечения для Android (SDK) содержит всеобъемлющий набор инструментов разработки. [Источник 1] Они включают в себя отладчик, библиотеки, эмулятор, основанный на QEMU, документацию, примеры кода и учебники. Поддерживаемые платформы разработки включают компьютеры под управлением Linux (любой современный настольный дистрибутив Linux), Mac ОС x версии 10.5.8 или более поздней версии и Windows 7 и выше. По состоянию на март 2015 года SDK не доступен для разработки под Android, исключения составляют специализированные Android приложения.
До конца 2014 года, официально поддерживаемой программой integrated development environment (IDE) был Eclipse с плагином Android Development Tools (ADT), хотя IntelliJ IDEA IDE (все версии) полностью поддерживает разработку Android «из коробки», как и NetBeans IDE поддерживает разработку Android через плагин. По состоянию на 2015 год, Android Studio, созданная компанией Google и работающая над IntelliJ, является официальной IDE; тем не менее, разработчики могут свободно использовать другие инструменты, но Google дал понять, что поддержка ADT была официально завершена с конца 2015 года, с целью сосредоточиться на Android Studio в качестве официальной IDE для Android. Кроме того, разработчики могут использовать любой текстовый редактор для редактирования Java и XML файлов, а затем использовать инструменты командной строки (Java Development Kit и Apache Ant не обязательны) для создания, построения и отладки приложений для Android, а также контролировать добавленные Android устройства (например, запуск, перезагрузку, установку пакетов программ удаленно).
Улучшение Android’s SDK идут рука об руку с общим развитием платформы Android. SDK также поддерживает старые версии Android, если разработчики хотят сосредоточить свои приложения на старых устройствах. Инструменты разработки — это загружаемые компоненты, поэтому после скачивания последней версии и платформы, старые платформы и инструменты могут быть использованы для тестирования совместимости. [Источник 2]
Приложения Android упакованы в .формат apk и хранятся в папке /Data/App на ОС Android (папка доступна только для пользователя root по соображениям безопасности). APK -пакет содержит .DEX-файлы [Источник 3] (скомпилированный исполняемый код- называемый Dalvik), файлы ресурсов и т.д.
Android Debug Bridge
The Android Debug Bridge (ADB) представляет собой набор инструментов, включенных в пакет SDK для Android. [Источник 4] Он состоит из клиентской и серверной программ, которые взаимодействуют друг с другом. ADB, как правило, доступен через интерфейс командной строки, хотя существуют многочисленные графические пользовательские интерфейсы для управления ADB.
Например, приложения для Android могут быть сохранены с помощью команды «backup» в файл с названием «backup.ab»(по умолчанию).
В вопросе безопасности докладываемом в марте 2011 года, целью ADB была установка программ rootkit на подключенных телефонах с помощью «resource exhaustion attack».
Fastboot
Fastboot — это протокол диагностики, входящий в состав пакета SDK, который применяется в первую очередь для перепрошивки файловой системы через порт USB компьютера. Это необходимо, чтобы устройство было переведено в режим загрузчика, в котором выполняется только самая основная установка оборудования. После включения протокола на самом устройстве, он будет принимать определенный набор команд, посылаемых к нему через USB с помощью командной строки. Некоторые из наиболее часто используемых команд быстрой загрузки включают в себя:
- flash – переписывает раздел с бинарных изображений(образов) прошивок, хранящихся на компьютере
- erase – стирает определенный раздел
- reboot – перезагружает устройство с запуском операционной системы, раздела восстановления или обратно загрузчика
- devices – отображает список всех устройств (по серийному номеру) подключенных кк компьютеру
- format – форматирование определенного раздела; файловая система раздела должна быть определена устройством
Источник
Какие пакеты SDK для Android следует установить?
Установка пакета SDK для Android не предусматривает автоматическую установку всех минимально необходимых для разработки пакетов. Хотя отдельные потребности для разработчиков различаются, для разработки с помощью Xamarin. Android обычно требуются следующие пакеты:
Инструменты
Установите новейшие средства из папки Tools в диспетчере пакетов SDK:
- Android SDK Tools
- Пакет SDK для Android Platform-Tools
- Пакет SDK для Android Build-Tools
Платформы Android
Установите «платформу SDK» для версий Android, которые вы задали как минимальное & целевое значение.
- Целевой API 23
- Минимальный API 23
Необходимо установить только платформу SDK для API 23
- Целевой API 23
- Минимальный API 15
Необходимо установить платформы SDK для API 15 и 23. Обратите внимание, что устанавливать уровни API между минимальной и целевой платформой не требуется (даже если вы выполняете неограниченный перенос на эти уровни API).
Образы системы
Они требуются только в том случае, если вы хотите использовать готовые Эмуляторы Android из Google. дополнительные сведения см. в разделе Android Emulator Setup .
Дополнительно
Дополнительные пакет SDK для Android, как правило, не являются обязательными. но полезно помнить о них, так как они могут потребоваться в зависимости от варианта использования.
Источник
Уровень Android API, обратная и прямая совместимость
Добрый вечер, друзья. Мы подготовили полезный перевод для будущих студентов курса «Android-разработчик. Продвинутый курс». С радостью делимся с вами данным материалом.
Если вы читаете эту статью, значит вас могут интересовать такие вещи, как:
- Что означает уровень API?
- Как использовать compileSdkVersion , minSdkVersion или targetSdkVersion ?
- Как можно гарантировать, что приложение будет работать правильно на устройствах с разными версиями ОС?
Все эти понятия связаны друг с другом, и я постараюсь объяснить их вам в этой статье простым, но эффективным способом.
Для этого необходимо понимать разницу между SDK и API и знать что такое уровень API в экосистеме Android.
Это правда, что в Android между SDK и API существует отношение 1:1, и часто эти два термина используются как синонимы, но важно понимать, что это не одно и то же.
Правильнее говорить, что для каждой версии Android есть SDK и эквивалентный API, а также уровень этого API.
Расшифровывается как Software Development Kit (комплект для разработки программного обеспечения). Обратите внимание на слово «kit» (комплект)… он как раз представляет из себя набор различных инструментов, библиотек, документации, примеров, помогающих разработчикам создавать, отлаживать и запускать приложения для Android. API предоставляется вместе с SDK.
Если открыть SDK Manager в Android Studio, можно будет яснее увидеть, из чего состоит Android SDK.
На первой вкладке SDK Platform перечислены SDK каждой версии Android.
Как показано на рисунке ниже, Android 9.0 SDK (также известный как Pie) содержит:
- Android SDK Platform 28 (это API фреймворка).
- Исходный код для Android 28 (это реализация API, как вы видите, она не является обязательной… запомните это).
- и еще куча других вещей… например, различные системные образы для эмулятора Android.
Обзор SDK в Android Studio SDK Manager.
На второй вкладке SDK Tools показаны другие инструменты, которые также являются частью SDK, но не зависят от версии платформы. Это означает, что они могут быть выпущены или обновлены отдельно.
Расшифровывается как Application Programming Interface (программный интерфейс приложения). Это просто интерфейс, уровень абстракции, который обеспечивает связь между двумя разными «частями» программного обеспечения. Он работает как договор между поставщиком (например, библиотекой) и потребителем (например, приложением).
Это набор формальных определений, таких как классы, методы, функции, модули, константы, которые могут использоваться другими разработчиками для написания своего кода. При этом API не включает в себя реализацию.
Уровень API
Уровень API — это целочисленное значение, однозначно идентифицирующее версию API фреймворка, предлагаемую платформой Android.
Обычно обновления API фреймворка платформы разрабатываются таким образом, чтобы новая версия API оставалась совместимой с более ранними версиями, поэтому большинство изменений в новом API являются аддитивными, а старые части API становятся устаревшими, но не удаляются.
И теперь кто-то может задаться вопросом…
если API Android не предоставляет реализацию, а SDK Manager предлагает необязательный загружаемый исходный код API в составе SDK, то где находится соответствующая реализация?
Ответ прост. На устройстве.
Давайте разберемся с этим…
От исходного кода к APK-файлу
Как правило, проект под Android состоит из кода, написанного разработчиками с использованием Android API (модуль приложения), а также некоторых других библиотек/зависимостей (.jar-файлов, AAR, модулей и т.д.) и ресурсов.
Процесс компиляции преобразует код, написанный на Java или Kotlin, включая зависимости (одна из причин уменьшить ваш код!), в байт-код DEX, а затем сжимает все в файл APK вместе с ресурсами. На данном этапе реализация API не включена в итоговый APK!
Процесс сборки — Android Developers
DEX файлы и Android Runtime
Архитектура Android — Android Developers
Android Runtime — это место, где делается вся грязная работа и где выполняются DEX-файлы. Оно состоит из двух основных компонентов:
- Виртуальная машина, чтобы воспользоваться преимуществами переносимости кода и независимости от платформы. Начиная с Android 5.0 (Lollipop), старая среда выполнения, Dalvik Virtual Machine, была полностью заменена новой средой Android RunTime (ART). Dalvik использовал JIT-компилятор, тогда как ART использует AOT (Ahead of time) компиляцию плюс JIT для профилирования кода во время выполнения.
- Базовые библиотеки — это стандартные библиотеки Java и Android. Проще говоря, именно здесь находится реализация API.
Версия API, доступная на этом уровне, соответствует версии платформы Android, на которой запущено приложение.
Например, если на фактическом устройстве установлен Android 9 (Pie), доступны все API до 28 уровня.
Если вам понятны ключевые моменты работы Android Runtime и какова роль API, то должно быть достаточно просто понять обратную и прямую совместимость, а так же использование compileSdkVersion , minSdkVersion и targetSdkVersion .
compileSdkVersion
Это значение используется только для указания Gradle, с какой версией SDK компилировать ваше приложение. Это позволяет разработчикам получить доступ ко всем API, доступным до уровня API, установленного для compileSdkVersion .
Настоятельно рекомендуется выполнить компиляцию с последней версией SDK:
- высокий уровень API позволяет разработчикам использовать преимущества последнего API и возможностей, предоставляемых новыми платформами.
- чтобы использовать последнюю версию SupportLibrary , compileSdkVersion должен соответствовать версии SupportLibrary .
Например, чтобы использовать SupportLibrary-28.x.x , compileSdkVersion также должен быть равен 28.
- для перехода на AndroidX или его использования, compileSdkVersion должен быть установлен как минимум равным 28.
- чтобы быть готовым удовлетворить требования целевого уровня API от Google Play. В Google объявили, что для более быстрого распространения новых версий Android на рынке Google каждый год будет устанавливать минимальный целевой уровень API для новых приложений и обновлений. Больше информации вы можете найти здесь и здесь.
Приложения Android совместимы с новыми версиями платформы Android, поскольку изменения в API обычно являются аддитивными, а старое API может стать устаревшим, но не удаленным.
Это означает, что прямая совместимость в основном гарантируется платформой, и при запуске приложения на устройстве с более высоким уровнем API, чем тот, который указан в compileSdkVersion , не возникает никаких проблем во время выполнения, приложение будет работать так же, как и ожидалось, на более новых версиях платформы.
Приложение + compileSdkVersion = 26 и метод API xyz() , представленный в API 26 уровня, могут работать на устройстве с Android 8 Oreo (API 26 уровня).
Это же приложение может работать на устройстве с Android 9 Pie (API 28 уровня), поскольку метод API xyz() все еще доступен на API 28 уровня.
minSdkVersion
Это значение обозначает минимальный уровень API, на котором приложение может работать. Это минимальное требование. Если не указан, значением по умолчанию является 1.
Разработчики обязаны установить корректное значение и обеспечить правильную работу приложения до этого уровня API. Это называется обратной совместимостью.
Во время разработки Lint также предупредит разработчиков при попытке использовать любой API ниже указанного в minSdkVersion . Очень важно не игнорировать предупреждения и исправить их!
Чтобы обеспечить обратную совместимость, разработчики могут во время выполнения проверять версию платформы и использовать новый API в более новых версиях платформы и старый API в более старых версиях или, в зависимости от случая, использовать некоторые статические библиотеки, которые обеспечивают обратную совместимость.
Также важно упомянуть, что Google Play Store использует это значение, чтобы определить, можно ли установить приложение на определенное устройство, сопоставив версию платформы устройства с minSdkVersion приложения.
Разработчики должны быть очень осторожны при выборе этого значения, поскольку обратная совместимость не гарантируется платформой.
Выбор «правильного» значения для проекта также является бизнес-решением, поскольку оно влияет на то, насколько большой будет аудитория приложения. Посмотрите на распределение платформ.
Приложение + compileSdkVersion = 26 + minSdkVersion = 22 и метод API xyz() , представленный в API 26 уровня, могут работать на устройстве с Android 8 Oreo (API 26 уровня).
Это же приложение можно установить и запустить на более старом устройстве с Android 5.1 Lollipop (API 22 уровня), где метода API xyz() не существует. Если разработчики не обеспечили обратную совместимость ни с помощью проверок времени выполнения, ни с помощью каких-либо библиотек, то приложение будет аварийно завершать работу, как только оно попытается получить доступ к методу API xyz() .
targetSdkVersion
Это значение указывает уровень API, на котором приложение было разработано.
Не путайте его с compileSdkVersion . Последний используется только во время компиляции и делает новые API доступными для разработчиков. Первый, напротив, является частью APK (также как и minSdkVersion ) и изменяет поведение среды выполнения. Это способ, которым разработчики могут контролировать прямую совместимость.
Иногда могут быть некоторые изменения API в базовой системе, которые могут повлиять на поведение приложения при работе в новой среде выполнения.
Целевой уровень приложения включает поведение среды выполнения, которое зависит от конкретной версии платформы. Если приложение не готово к поддержке этих изменений поведения среды выполнения, оно, вероятно, завершится сбоем.
Простым примером является Runtime Permission, которое было представлено в Android 6 Marshmallow (API 23 уровня).
Приложение может быть скомпилировано с использованием API 23 уровня, но иметь целевым API 22 уровня, если оно еще не готово поддержать новую модель разрешений времени выполнения.
Таким образом, приложение может по-прежнему быть совместимым без включения нового поведения среды выполнения.
В любом случае, как уже упоминалось, Google требует, чтобы приложения удовлетворяли новым требованиям целевого уровня API, поэтому всегда следует иметь высокий приоритет для обновления этого значения.
Теперь соединяя все это вместе, мы видим четкое отношение
minSdkVersion ≤ targetSdkVersion ≤ compileSdkVersion
Имейте в виду, что настоятельно рекомендуется выполнить компиляцию в соответствии с последним уровнем API и стараться использовать targetSdkVersion == compileSdkVersion.
Источник