Android SDK

Android SDK — набор средств разработки (SDK), используемый для создания приложений для операционной системы Android. Изначально разрабатывался компанией Android Inc., которую в 2005 году приобрела Google[1]. Первая стабильная версия SDK была выпущена 23 сентября 2008 года[2]. В настоящее время SDK распространяется как неотъемлемая часть официальной интегрированной среды разработки Android Studio, но также доступен для загрузки в виде отдельных инструментов командной строки[3].

Что важно знать
Android SDK
Тип интегрированная среда разработки, набор средств разработки программного обеспечения
Автор Android Inc.
Разработчик Google
Написана на Java
Интерфейс Графический (в составе Android Studio), интерфейс командной строки
Движки Android Runtime (среда выполнения)
Операционная система Мультиплатформенная
Языки интерфейса английский
Первый выпуск 23 сентября 2008
Аппаратные платформы x86-64, ARM (macOS)
Последняя версия Android 16 (API 36) (10 июня 2025)
Кандидат в релизы Android Studio Otter 2025.2.1 RC 1 (16 октября 2025)
Тестовая версия Android Studio Otter 2 Feature Drop 2025.2.2 Canary 3 (30 октября 2025)
Репозиторий android.googlesource.com
Состояние активное
Лицензия бесплатная (лицензионное соглашение Google)
Сайт developer.android.com/st…

История

Разработка платформы Android и сопутствующего набора инструментов началась в октябре 2003 года с основанием компании Android Inc.. У её истоков стояли Энди Рубин, Рич Майнер, Ник Сирс и Крис Уайт[4]. Изначально команда планировала создать операционную систему для цифровых камер, однако вскоре фокус сместился на рынок смартфонов.

В июле 2005 года Google приобрела Android Inc. примерно за 130 миллионов долларов. Все ключевые сотрудники, включая основателей, перешли в Google, где продолжили разработку платформы под руководством Энди Рубина.

Первая публичная бета-версия SDK была представлена в ноябре 2007 года одновременно с анонсом Open Handset Alliance. В августе 2008 года вышла обновлённая версия SDK 0.9. Выпуск первой стабильной версии, Android 1.0 SDK, release 1, состоялся 23 сентября 2008 года. Это событие совпало с анонсом первого коммерческого Android-устройства — T-Mobile G1 — и ознаменовало стабилизацию API, что позволило сторонним разработчикам создавать приложения для новой платформы. Одновременно была запущена бета-версия магазина приложений Android Market.

Состав SDK

Android SDK представляет собой комплексный набор инструментов и библиотек, необходимых для разработки приложений. Эти инструменты можно разделить на две основные категории: с графическим интерфейсом и для работы в командной строке[5].

Инструменты с графическим интерфейсом (GUI)

Ключевым компонентом с графическим интерфейсом является Android Studio — официальная интегрированная среда разработки (IDE), которая предоставляет все необходимые средства для написания кода, визуального проектирования интерфейсов, отладки и управления проектом[5]. В состав SDK также входят другие графические утилиты:

  • SDK Manager — инструмент для установки, обновления и управления компонентами SDK, такими как платформы для разных версий Android и различные инструменты[6].
  • Android Virtual Device (AVD) Manager — позволяет создавать и настраивать виртуальные устройства (эмуляторы) для тестирования приложений[5].
  • Dalvik Debug Monitor Server (DDMS) — предоставляет графический интерфейс для отладки, анализа использования памяти и управления процессами на устройстве[7].
  • Hierarchy Viewer — визуальный инструмент для анализа и оптимизации иерархии элементов пользовательского интерфейса[8].

Инструменты командной строки (CLI)

Для автоматизации задач, интеграции с системами непрерывной интеграции и выполнения низкоуровневых операций SDK включает набор утилит командной строки[9]:

  • adb — универсальный инструмент для взаимодействия с подключенным устройством или эмулятором. Позволяет устанавливать приложения, просматривать системные журналы, копировать файлы и выполнять команды на устройстве[5].
  • Fastboot — утилита для работы с загрузчиком устройства, используемая для прошивки системных разделов[6].
  • sdkmanager — консольная версия SDK Manager для управления пакетами SDK из командной строки[10].
  • aapt2 (Android Asset Packaging Tool) — обрабатывает и компилирует ресурсы приложения[6].
  • apksigner — используется для цифровой подписи файлов APK[6].

Среда выполнения

Важно различать SDK как набор средств для разработки и среду выполнения Android Runtime (ART) как «движок», который исполняет код приложений на конечном устройстве[11]. ART, пришедшая на смену виртуальной машине Dalvik, отвечает за компиляцию байт-кода приложения в нативные инструкции процессора. В отличие от Dalvik, использовавшей JIT-компиляцию (Just-In-Time) во время работы приложения, ART применяет технологию AOT-компиляции (Ahead-Of-Time) на этапе установки, что ускоряет запуск и повышает производительность программ[11].

Android Debug Bridge — мост отладки Android

Android Debug Bridge (adb) — универсальный инструмент командной строки для взаимодействия с устройствами на базе Android. Изначально созданный как базовый инструмент для разработчиков, ADB со временем превратился в мощную утилиту с широким спектром функций, от установки приложений и отладки до комплексного управления устройством.

Ранний этап и усиление безопасности (2012—2013)

В этот период основное внимание уделялось повышению безопасности и добавлению базовых функций.

  • Android 4.2.2 (Jelly Bean) (2013): Была введена обязательная аутентификация хост-компьютера с помощью RSA-ключа[12]. При первом подключении на экране устройства появлялся диалог с запросом на авторизацию, что было направлено на защиту от несанкционированного доступа к устройству через ADB, например, при подключении к общедоступным USB-портам для зарядки[12].
  • Команда adb sideload': Эта команда, позволяющая устанавливать zip-архивы (например, официальные обновления) на устройство из режима восстановления (recovery), стала стандартным инструментом для разработчиков и продвинутых пользователей[13].

Расширение функциональности (2013—2018)

В эти годы ADB обогатился новыми командами и получил улучшения производительности.

  • Android 4.4 (KitKat) (2013—2014): Появилась нативная возможность записи видео с экрана устройства с помощью команды adb shell screenrecord[12]. Это значительно упростило создание демонстрационных видео и отчётов об ошибках[14]. Также были добавлены инструменты для анализа использования памяти, такие как procstats[12].
  • Android 5.0 (Lollipop) (2014): Переход платформы на новую среду выполнения ART повлиял и на ADB. ART предложила упреждающую компиляцию (AOT), улучшенную сборку мусора и расширенную поддержку отладки, что косвенно улучшило процесс разработки с использованием ADB[15].
  • Android 6.0 (Marshmallow) (2015): С появлением новой модели разрешений, запрашиваемых во время выполнения, в ADB была добавлена опция -g для команды adb install, позволяющая автоматически предоставлять все разрешения, указанные в манифесте приложения[16].
  • Android 8.0 (Oreo) (2018): В adb shell была расширена поддержка нескольких дисплеев, что позволило запускать активити на определённом экране с помощью команды adb shell start <activity_name> --display <display_id>[17].

Беспроводная отладка и быстрая установка (2019—2022)

Этот период ознаменовался кардинальными улучшениями, направленными на удобство и скорость разработки.

  • Android 9 (Pie) (2018): Была добавлена поддержка операции без контрольной суммы, что позволило увеличить пропускную способность при передаче данных до 40 %[18].
  • Android 10 (2019): Была повышена производительность команды adb install-multi для установки нескольких APK-файлов[18]. Команда adb remount стала использовать технологию OverlayFS, что ускорило перемонтирование системных разделов[19].
  • Android 11 (2020): Это обновление принесло два ключевых изменения:
    • Нативная беспроводная отладка: Появилась возможность сопряжения и подключения к устройству по Wi-Fi без необходимости первоначального USB-подключения, используя команды adb pair и adb connect[18].
    • Инкрементальная установка: Была добавлена функция adb install --incremental, которая значительно ускоряет развёртывание больших приложений за счёт отправки на устройство только изменённых частей APK, а не всего файла целиком[18].
  • Android 12 (2021): В целях повышения безопасности пользовательских данных функциональность команды adb backup была существенно ограничена. Для приложений, нацеленных на Android 12 (API 31) и выше, команда больше не экспортирует данные приложения, если только оно не является отлаживаемым[20][21].

Современный этап и улучшения (2023—2025)

В последние годы продолжается работа над улучшением скорости и надёжности инструментов.

  • Улучшения Fastboot (2024): В инструменте, который поставляется вместе с ADB, были устранены узкие места, что позволило значительно увеличить скорость загрузки прошивок[18].
  • Надёжность USB-соединения (2025): В версии Platform Tools 36.0.0 был переписан бэкенд для работы с USB (libusb), что повысило надёжность соединения и исправило проблемы с исчерпанием памяти в Linux[18].
  • Графические интерфейсы: Параллельно с развитием самого инструмента командной строки появились и активно развиваются сторонние приложения с графическим интерфейсом, такие как ADB AppControl, которые упрощают использование функций ADB для широкого круга пользователей[22].

Fastboot — быстрый запуск

Fastboot — это протокол и одноимённый инструмент командной строки, входящий в состав пакета Android SDK Platform-Tools. Он используется для взаимодействия с устройством Android в режиме загрузчика (bootloader) и позволяет выполнять такие операции, как прошивка системных разделов, блокировка и разблокировка загрузчика, а также перезагрузка устройства.

Хотя набор команд Fastboot оставался стабильным, в 2024—2025 годах инструмент получил значительные внутренние улучшения, направленные на повышение скорости и надёжности. В 2024 году были устранены узкие места в коде, что позволило существенно увеличить скорость загрузки прошивок — до 980 МБ/с на совместимом оборудовании. В апреле 2025 года, с выходом Platform-Tools 36.0.0, стабильность работы была дополнительно повышена за счёт переписанного бэкенда для работы с USB (libusb). Это обновление улучшило надёжность соединения, исправило утечки памяти в Linux и проблемы с зависанием на macOS, хотя и не добавило новых команд.

Native Development Kit — комплект нативной разработки

Android Native Development Kit (NDK) — это набор инструментов, который позволяет использовать в приложениях для Android код, написанный на языках C и C++[23]. Это необходимо для достижения высокой производительности в ресурсоёмких задачах, таких как игры или обработка сигналов, а также для повторного использования существующих нативных библиотек[24]. Актуальной стабильной версией является NDK r29, выпущенная в октябре 2025 года[25][26].

Интеграция с Android Studio

Современные версии Android Studio тесно интегрированы с NDK. Система сборки Gradle автоматически управляет нативными зависимостями и может загружать необходимые версии NDK и CMake — внешнего инструмента сборки, используемого для компиляции C/C++ кода[27]. Для отладки нативного кода применяется отладчик LLDB[27]. Установка NDK и сопутствующих компонентов производится через SDK Manager в Android Studio, где рекомендуется использовать опцию «NDK (Side by side)», позволяющую устанавливать несколько версий NDK одновременно и выбирать нужную для конкретного проекта[28].

Поддерживаемые архитектуры (ABI)

NDK позволяет компилировать нативный код в библиотеки (.so-файлы) для различных процессорных архитектур (англ. Application Binary Interface, ABI)[29]. По состоянию на 2025 год поддерживаются следующие ABI[29]:

  • arm64-v8a — 64-битная архитектура ARM, основная для современных устройств.
  • armeabi-v7a — 32-битная архитектура ARM, сохраняющая актуальность для старых устройств.
  • x86_64 — 64-битная архитектура для процессоров Intel/AMD.
  • x86 — 32-битная архитектура для процессоров Intel/AMD.

Среда выполнения и стандартная библиотека

Начиная с NDK r18, единственной стандартной библиотекой C++ (STL), поставляемой с NDK, является `libc++` от проекта LLVM[30]. Она может быть подключена к проекту двумя способами: статически (`c++_static`) или в виде разделяемой библиотеки (`c++_shared`)[30]. При использовании разделяемой библиотеки её необходимо включать в состав APK[30]. Это позволяет разработчикам использовать новейшие возможности C++ (включая стандарты C++14, C++17 и C++20) даже на старых версиях Android, поскольку библиотека поставляется вместе с приложением, а не является частью операционной системы[30].

Комплект Android Open Accessory Development Kit

Протокол Android Open Accessory (AOA), представленный в 2011 году, был добавлен в Android 3.1 (API 12) и портирован для Android 2.3.4[31]. Его ключевой особенностью стала инверсия ролей USB: аксессуар выступал в роли хоста, обеспечивая питание и управляя шиной, а Android-устройство — в роли периферии[32]. Это позволяло обходить аппаратные ограничения многих устройств того времени, не имевших поддержки режима USB Host[32].

В 2012 году была представлена вторая версия протокола (AOA 2.0), которая расширила возможности, добавив поддержку вывода аудиопотока и эмуляцию HID-устройств (клавиатур, мышей, геймпадов) со стороны аксессуара[33].

Однако с массовым внедрением в смартфонах полноценного режима USB Host (OTG) и развитием беспроводных технологий, таких как Bluetooth, протокол AOA начал терять актуальность. Ключевым моментом стало официальное объявление поддержки аудио через AOA устаревшей (англ. deprecated) в версии Android 8.0 в 2017 году[33]. К 2025 году протокол считается устаревшим, хотя формально не был удалён из системы. Его использование сохранилось лишь в узкоспециализированных или устаревших системах, а для подключения аксессуаров стандартом стали USB OTG и беспроводные интерфейсы[31][34].

Технические детали

Актуальное состояние и разработка

По состоянию на конец 2025 года разработка Android SDK характеризуется выпуском Android 16, внедрением нового, более частого графика обновлений и значительным усовершенствованием инструментов, в частности Android Studio с интеграцией искусственного интеллекта[35].

Новая версия Android и график релизов

Последней основной версией операционной системы является Android 16 (API Level 36). Финальная версия была выпущена 10 июня 2025 года[36]. Начиная с 2025 года, Google перешла на новый график выпуска SDK, предполагающий два основных обновления в год: мажорный релиз во втором квартале со значительными нововведениями и минорный релиз в четвёртом квартале, содержащий улучшения и новые API без изменений, влияющих на работу приложений[37][38].

Ключевые нововведения в Android 16

Новая версия ОС принесла ряд важных изменений и новых API для разработчиков[38]:

  • Пользовательский интерфейс и дизайн: Внедрена концепция дизайна «Material 3 Expressive», обновлены динамические цветовые темы. Приложения, ориентированные на Android 16, теперь в обязательном порядке должны поддерживать отображение «от края до края» (англ. edge-to-edge)[35][38].
  • Поддержка больших экранов: На устройствах с экранами шире 600dp (планшеты, складные устройства) приложения теперь отображаются в окнах с возможностью изменения размера и перемещения. Параметры в манифесте, ограничивающие размер или ориентацию, на таких экранах игнорируются[35].
  • Камера и медиа: Расширена поддержка профессиональных функций камеры, включая определение ночного режима и гибридную автоэкспозицию, улучшена поддержка формата UltraHDR и добавлен кодек Advanced Professional Video (APV)[38].
  • Конфиденциальность: Продолжается развитие «песочницы конфиденциальности» (англ. Privacy Sandbox)[39]. Добавлен новый Writing Tools API, который позволяет приложениям отключать инструменты на базе ИИ для полей ввода, где это неуместно (например, для паролей)[40].

Обновления инструментов разработки

Последней стабильной версией среды разработки является Android Studio Otter 2025.2.1, выпущенная 30 октября 2025 года в стабильном канале[41]. Параллельно в канале Canary стала доступна предварительная версия Android Studio Otter 2 Feature Drop 2025.2.2 Canary 3[42]. Ключевые улучшения в Android Studio включают:

  • Интеграция ИИ (Gemini): В Android Studio интегрирован агент Gemini, который предоставляет помощь в написании кода и позволяет создавать прототипы приложений на основе текстовых описаний[43].
  • Улучшения сборки и производительности: Оптимизирована система сборки на базе Gradle, что сокращает время компиляции, а также обеспечена нативная поддержка процессоров Apple silicon, что повышает производительность на устройствах с macOS[43][44].

Системные требования

Android SDK является кроссплатформенным набором инструментов, который распространяется в составе официальной среды разработки Android Studio[45], и может быть установлен на компьютеры под управлением операционных систем Windows, macOS, Linux и ChromeOS[46]. По состоянию на 2025 год, для работы Android Studio предъявляются следующие системные требования[47]:

  • Windows
    • Операционная система: 64-битная Microsoft Windows 10 или Windows 11[47].
    • Архитектура процессора: x86-64 с поддержкой технологий виртуализации (например, Intel VT-x или AMD-V). Процессоры на базе ARM официально не поддерживаются[47].
    • ОЗУ: не менее 8 ГБ (рекомендуется 16 ГБ)[47].
    • Свободное место на диске: не менее 8 ГБ[47].
  • macOS
    • Операционная система: macOS 10.14 (Mojave) или новее[46].
    • Архитектура процессора: поддерживаются как процессоры Intel (x86-64), так и Apple silicon (ARM)[47].
    • ОЗУ: не менее 8 ГБ (рекомендуется 16 ГБ)[47].
    • Свободное место на диске: не менее 8 ГБ[47].
  • Linux
    • Операционная система: любой 64-битный дистрибутив с окружением рабочего стола GNOME, KDE или Unity[47].
    • Системные библиотеки: glibc 2.31 или новее[47].
    • Архитектура процессора: x86-64 с поддержкой технологий виртуализации. Процессоры на базе ARM официально не поддерживаются[47].
    • ОЗУ: не менее 8 ГБ (рекомендуется 16 ГБ)[47].
    • Свободное место на диске: не менее 8 ГБ[47].
  • ChromeOS
    • Процессор: рекомендуется Intel Core i5 8-го поколения или новее[47].
    • ОЗУ: рекомендуется 16 ГБ или больше[47].
    • Свободное место на диске: не менее 8 ГБ[47].
    • Дополнительно: для установки требуется предварительно настроенная среда Linux на устройстве[47].

Хотя основной способ установки SDK — это инсталляция Android Studio, его также можно установить отдельно с помощью инструментов командной строки.

Исходный код

Исходный код операционной системы Android и сопутствующих инструментов разработки размещён в рамках проекта Android Open Source Project (AOSP), который представляет собой набор Git-репозиториев, хостируемых компанией Google[48]. AOSP является основой платформы Android и содержит полный исходный код, от ядра до системных приложений[49].

Существует несколько основных способов доступа к исходному коду:

  • Портал AOSP. Официальный сайт `source.android.com` является главным ресурсом, где размещена вся документация по проекту, включая инструкции по настройке окружения и загрузке кода[50].
  • Онлайн-просмотр. Исходный код можно просматривать через веб-интерфейс на сайте `android.googlesource.com`[48]. Здесь находятся все проекты, составляющие платформу; например, инструменты для разработки SDK расположены в репозитории `platform/sdk`[51].
  • Репозитории на GitHub. Google также поддерживает официальный аккаунт `github.com/android`, где публикуются примеры кода, различные библиотеки (например, Jetpack Compose) и инструменты[52]. Однако полный исходный код операционной системы находится на `android.googlesource.com`[48]. Существуют также неофициальные зеркала исходного кода SDK на GitHub[53].

Для загрузки полного исходного кода AOSP используется специальный инструмент `repo`, который помогает управлять множеством Git-репозиториев, из которых состоит проект[48].

Поддерживаемые форматы файлов

Android SDK и связанная с ним система сборки работают с широким спектром форматов файлов, которые можно разделить на несколько категорий[54][55].

Исходный код и скрипты сборки

  • Java.java и Kotlin.kt: Файлы с исходным кодом на основных языках разработки для Android[56].
  • build.gradle или build.gradle.kts: Скрипты системы сборки Gradle, определяющие зависимости, конфигурации и шаги сборки проекта[57].

Ресурсы приложения Ресурсы представляют собой неисполняемые активы, которые включаются в приложение. Они хранятся в каталоге `res/` и строго типизированы[58].

  • XML-файлы: Используются для определения большей части ресурсов[54]:
    • Макеты интерфейса (layout)
    • Строки (strings), цвета (colors), стили (styles) и размеры (dimens)
    • Анимации (anim, animator) и меню (menu)
  • Графические файлы: SDK поддерживает несколько форматов растровых и векторных изображений:
    • PNG — предпочтительный формат для иконок и графики с прозрачностью[59].
    • JPG — для фотографий и изображений без прозрачности[59].
    • WebP — современный формат, обеспечивающий эффективное сжатие[60].
    • VectorDrawableXML-файлы, описывающие векторную графику, которая масштабируется без потери качества[61].
  • Шрифты: Файлы шрифтов в форматах .ttf и .otf[54].
  • Произвольные файлы: Каталог raw используется для хранения файлов в их исходном виде, например, аудио- или видеофайлов, доступ к которым осуществляется как к потоку данных[54].

Медиаформаты Платформа Android обеспечивает встроенную поддержку множества медиаформатов, хотя конкретный набор может зависеть от версии ОС[60]. К основным относятся:

Выходные и промежуточные форматы В процессе сборки проекта Android SDK создаёт следующие ключевые файлы:

  • APK (Android Package Kit): Установочный пакет приложения, содержащий скомпилированный код, ресурсы и манифест[55].
  • AAB (Android App Bundle): Формат для публикации приложений в Google Play, позволяющий оптимизировать доставку APK на устройства пользователей.
  • DEX (Dalvik Executable): Файлы, содержащие скомпилированный байт-код, исполняемый средой ART[55].
  • SO (Shared Object): Скомпилированные нативные библиотеки для различных процессорных архитектур, создаваемые с помощью Android NDK[63].
  • AndroidManifest.xml: В скомпилированном виде включается в каждый APK и содержит основную информацию о приложении[57].

Примечания