Android SDK
Android SDK — набор средств разработки (SDK), используемый для создания приложений для операционной системы Android. Изначально разрабатывался компанией Android Inc., которую в 2005 году приобрела Google[1]. Первая стабильная версия SDK была выпущена 23 сентября 2008 года[2]. В настоящее время SDK распространяется как неотъемлемая часть официальной интегрированной среды разработки Android Studio, но также доступен для загрузки в виде отдельных инструментов командной строки[3].
Что важно знать
| Android SDK | |||
|---|---|---|---|
| Тип | интегрированная среда разработки, набор средств разработки программного обеспечения | ||
| Автор | Android Inc. | ||
| Разработчик | |||
| Написана на | 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 со временем превратился в мощную утилиту с широким спектром функций, от установки приложений и отладки до комплексного управления устройством.
В этот период основное внимание уделялось повышению безопасности и добавлению базовых функций.
- Android 4.2.2 (Jelly Bean) (2013): Была введена обязательная аутентификация хост-компьютера с помощью RSA-ключа[12]. При первом подключении на экране устройства появлялся диалог с запросом на авторизацию, что было направлено на защиту от несанкционированного доступа к устройству через ADB, например, при подключении к общедоступным USB-портам для зарядки[12].
- Команда adb sideload': Эта команда, позволяющая устанавливать zip-архивы (например, официальные обновления) на устройство из режима восстановления (recovery), стала стандартным инструментом для разработчиков и продвинутых пользователей[13].
В эти годы 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].
Этот период ознаменовался кардинальными улучшениями, направленными на удобство и скорость разработки.
- 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].
В последние годы продолжается работа над улучшением скорости и надёжности инструментов.
- Улучшения 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 тесно интегрированы с NDK. Система сборки Gradle автоматически управляет нативными зависимостями и может загружать необходимые версии NDK и CMake — внешнего инструмента сборки, используемого для компиляции C/C++ кода[27]. Для отладки нативного кода применяется отладчик LLDB[27]. Установка NDK и сопутствующих компонентов производится через SDK Manager в Android Studio, где рекомендуется использовать опцию «NDK (Side by side)», позволяющую устанавливать несколько версий NDK одновременно и выбирать нужную для конкретного проекта[28].
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
- 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].
- VectorDrawable — XML-файлы, описывающие векторную графику, которая масштабируется без потери качества[61].
- Шрифты: Файлы шрифтов в форматах .ttf и .otf[54].
- Произвольные файлы: Каталог raw используется для хранения файлов в их исходном виде, например, аудио- или видеофайлов, доступ к которым осуществляется как к потоку данных[54].
Медиаформаты Платформа Android обеспечивает встроенную поддержку множества медиаформатов, хотя конкретный набор может зависеть от версии ОС[60]. К основным относятся:
- Контейнеры: MP4, 3GP, WebM, MKV[62].
- Аудиокодеки: AAC, MP3, FLAC, Opus[62].
- Видеокодеки: H.264 (AVC), H.265 (HEVC), VP9, AV1[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].


