- Уровень Android API, обратная и прямая совместимость
- Уровень API
- От исходного кода к APK-файлу
- DEX файлы и Android Runtime
- compileSdkVersion
- minSdkVersion
- targetSdkVersion
- Android SDK
- Что такое Android SDK и для чего он нужен
- Читайте также: Как пользоваться Android Studio
- Где скачать Android SDK
- Как установить Android Studio на Windows
- Читайте также: Что выбрать: iOS- или Android-разработку?
- Где скачать и как установить Java Development Kit
- Интерфейс и настройка
- Возможные ошибки при установке и запуске
Уровень 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.
Источник
Android SDK
Android SDK — это дополнительный набор инструментов Android Studio, которые помогают написать код, запустить тестирование и отладку, проверить работу приложения на различных версиях операционной системы и оценить результат в реальном времени. Также пакет позволяет пользователям получать информацию о состоянии операционной системы, читать логи и выявлять ошибки. Через SDK для Андроид можно восстанавливать программную оболочку и устанавливать сторонние прошивки.
Что такое Android SDK и для чего он нужен
Набор состоит из пакетов, необходимых для создания приложений. Вот основные, которыми могут воспользоваться разработчики на Android.
Android SDK Platform Tools. В группу входят такие инструменты взаимодействия с Android, как Android Debugging Bridge (ADB), Fastboot, Systrace и другие. ADB помогает найти ошибки в работе приложений, установить APK на смартфон. Fastboot — активировать быструю загрузку для управления мобильным устройством с компьютера, перепрошить гаджет, настроить доступ, параметры работы операционной системы. Systrace — получить информацию о запущенных процессах, проследить за активностью и объемом данных, которые отправлены по сети.
Android SDK Build Tools . Компоненты Android SDK используются для создания кода. Zipalign позволяет оптимизировать файл APK, AAPT2 — проанализировать, проиндексировать и скомпилировать ресурсы в двоичный формат под платформу Android, Аpksigner — подписать пакет APK с помощью закрытого ключа.
Эмулятор Android. Инструмент помогает протестировать приложения и опробовать функции последних версий Android.
Подробное описание Android SDK и необходимую документацию можно найти на официальном сайте в разделе User guide.
Установка доступна на устройствах с операционными системами Windows, Mac, Linux и Chrome OS. Для запуска персональный компьютер должен соответствовать минимальным системным требованиям.
Читайте также: Как пользоваться Android Studio
Где скачать Android SDK
Пользователи могут самостоятельно выбрать ОС и загрузить решение на официальном сайте разработчика. При нажатии на кнопку Download Options откроется список доступных версий. Если Android Studio не нужна, можно скачать базовые инструменты командной строки Android (аналог пакета Android SDK Tools, эта программа устарела). Для просмотра, удаления пакетов и установки доступных версий Android SDK предназначен SDK Manager.
Как установить Android Studio на Windows
Процесс инсталляции занимает 2–5 минут в зависимости от характеристик ПК. Для корректной установки необходимо:
- Запустить файл Android Studio Setup от имени администратора.
- Согласиться с предупреждением системы безопасности, нажав на кнопку «Запустить».
- Дождаться распаковки и инсталляции установочных файлов.
- Разрешить вносить новые сведения для этого компьютера.
- Нажать на кнопку Next и выбрать компоненты Android SDK Platforms Tools, которые будут установлены. Лучше не снимать галочки, так как лишний функционал можно отключить в программе после установки.
- Указать путь установки и начать процесс инсталляции.
После извлечения всех файлов на экране появится надпись Completed. Для завершения установки нужно нажать на кнопки Next и Finish.
Читайте также: Что выбрать: iOS- или Android-разработку?
Где скачать и как установить Java Development Kit
Для работы с Android SDK требуется загрузка Java Development Kit. Java Development Kit отвечает за графическое отображение исходного кода. Чтобы увидеть список версий Java, нужно перейти на официальный сайт Oracle. Для установки необходимо:
1. Выбрать версию. Последние версии Java доступны только для 64-битных систем. Их можно загрузить либо в компрессированном архиве, либо в инсталляционном файле.
2. Зарегистрироваться в системе Oracle. Если у пользователя есть учетная запись — пройти процедуру авторизации.
3. Скачать Java Development Kit для Android на ПК.
4. Выполнить все требования установочного файла, указав место хранения утилиты.
5. После завершения установки закрыть программу и перезагрузить компьютер.
6. Теперь можно приступать к настройке и работе с Android SDK.
Интерфейс и настройка
Чтобы произвести начальную настройку программного обеспечения, необходимо:
1. Запустить установленный софт SDK от имени администратора. После запуска программы высветится приветственное окно, в котором можно быстро создать проект.
2. Выбрать заголовок Create New Project и нажать на понравившийся шаблон (Activity). Можно работать с нуля или редактировать готовый проект. Activity отвечает за логику экрана приложения. Лучше установить либо No Activity, либо Empty Activity.
3. Указать в появившемся окне настроек название проекта и пакета. Если в планах публикация в Google Play, во втором случае нужно подобрать уникальное наименование. В окне можно поменять директорию проекта, язык программирования (Java или Kotlin), указать минимальную поддерживаемую версию Android SDK. Чем она ниже, тем больше устройств будут поддерживать приложение.
Начните свой путь в IT
Попробуйте себя в программировании, аналитике данных, Data Science и других востребованных специальностях — получите все курсы для входа в IT по цене одного.
Чтобы добавить дополнительные инструменты Android SDK, нужно:
1. В открывшемся окне перейти во вкладку Tools и выбрать SDK Manager. Вкладка Tools расположена в верхней части установленного приложения.
2. После этого открыть вкладку SDK Tools. В ней представлена информация об установочных пакетах, можно скачать необходимые для работы.
Знакомство и базовая настройка Android Studio завершены.
Возможные ошибки при установке и запуске
Если устройство соответствует характеристикам, но программа выдает ошибку Skipping SDK Tools 11, были установлены старые компоненты Java, а затем добавлен софт SDK. Необходимо переустановить все компоненты, начиная с пакетов разработки от Java и заканчивая Android Studio. После удаления рекомендуется очистить остаточные файлы программой CCleaner (или аналогами).
Программа конфликтует с кириллицей, поэтому иногда возникает ошибка non-ASCII. Чтобы устранить ее, необходимо переименовать учетную запись.
Android SDK Tools — это функциональное программное обеспечение, помогающее разработчикам создавать оптимизированные приложения. Независимо от того, используется ли Java, Kotlin или C#, SDK позволяет запустить продукт и получить доступ к уникальным функциям операционной системы. Google активно поддерживает и продвигает открытое программирование, поэтому каждый желающий может попробовать себя в роли кодера для ОС Android.
Вы начнете с основ программирования, изучите Java, Kotlin, Android Studio, Git, UX/UI и PlayMarket.
- 20% теории, 80% практики;
- 10 проектов в портфолио;
- помощь в трудоустройстве.
Источник