Формат APK (Android Package) — это обычный ZIP-архив с расширением .apk, в котором Android хранит всё для установки приложения: манифест, скомпилированный код, ресурсы и подпись. Переименуйте файл в .zip и распакуйте — увидите AndroidManifest.xml, classes.dex, resources.arsc и папки res/, lib/, assets/, META-INF/.
Ниже — что лежит внутри каждого элемента, чем открыть APK, как устроена подпись, чем формат отличается от AAB и откуда безопасно скачивать файлы.
- APK — это ZIP-контейнер, разложить его можно любым архиватором (7-Zip, WinRAR).
- Обязательный минимум внутри: AndroidManifest.xml, classes.dex, resources.arsc, META-INF/.
- Код лежит в
.dex-файлах (байт-код для Android Runtime), нативные библиотеки — в lib/ по архитектурам процессора. - Без валидной подписи в META-INF или в блоке подписи Android приложение не установит.
- AAB (.aab) — не то же самое: это формат публикации, из которого Google Play сам собирает оптимизированные APK под конкретное устройство.
Что такое формат APK
APK расшифровывается как Android Package (иногда пишут Android Package Kit) — это стандартный формат пакета, которым Android распространяет и устанавливает приложения, игры и системные компоненты. Технически APK построен на ZIP: это тот же архив, что и .zip, только с другим расширением и строгим набором обязательных файлов внутри. Поэтому первое, что стоит запомнить: любой APK можно открыть архиватором и посмотреть содержимое без специальных инструментов.
Внутри лежит скомпилированный набор: исполняемый код, ресурсы интерфейса, дополнительные активы, нативные библиотеки, сертификаты и файл манифеста. Всё это упаковано в один файл ради удобства раздачи и установки. Когда вы качаете приложение из Google Play или из стороннего источника, на устройство приходит именно APK (или несколько APK, собранных из App Bundle — об этом ниже).

- Возможность получить Доступ в Нейроклуб на целый месяц
- Как ИИ ускоряет работу и приносит деньги
- За 2 часа вы получите четкий план, как начать работать с ИИ прямо сейчас!
Структура APK: что внутри архива

Разберём формат APK по элементам. Ниже — таблица «файл или папка → назначение», по ней удобно ориентироваться при первом вскрытии архива.
| Файл / папка | Назначение |
|---|---|
AndroidManifest.xml |
Обязательный файл-описание приложения: имя пакета, версия, список компонентов (активности, сервисы, приёмники, провайдеры) и запрашиваемые разрешения. Внутри APK хранится в бинарном виде, а не как обычный текстовый XML. |
classes.dex |
Скомпилированный код (Java/Kotlin) в формате Dalvik Executable — байт-код, который исполняет Android Runtime (ART). Из-за ограничений формата DEX кода может быть несколько файлов: classes.dex, classes2.dex, classes3.dex и так далее. |
resources.arsc |
Предкомпилированные ресурсы: связывает код со строками, размерами, стилями и переводами. Например, код ссылается на текст диалога, а resources.arsc хранит этот текст на всех языках — система подставит нужный по локали устройства. |
res/ |
Ресурсы, разложенные по папкам: изображения (drawable), макеты интерфейса (layout), значения (values). Часть из них индексируется через resources.arsc. |
lib/ |
Нативные библиотеки (.so) под конкретные архитектуры процессора: arm64-v8a, armeabi-v7a, x86, x86_64. Устройство берёт папку под свою архитектуру. |
assets/ |
Произвольные файлы, которые приложение читает напрямую: шрифты, звуки, конфиги, локальные базы. В отличие от res/, они не индексируются и достаются по имени. |
META-INF/ |
Метаданные и подпись пакета (схема v1): манифест архива, список контрольных сумм и сертификат. По этим данным система проверяет целостность и авторство. |
Мини-вывод: обязательны для запуска манифест, хотя бы один .dex, resources.arsc и подпись. Папки res/, lib/, assets/ появляются по мере того, как приложению нужны ресурсы, нативный код или сырые файлы.
Как собирается APK
Понимание структуры проще даётся, если знать, откуда берётся каждый файл. Сборка идёт по шагам: ресурсы из res/ компилируются и упаковываются в resources.arsc, а манифест переводится в бинарный XML; исходники на Java и Kotlin компилируются в байт-код и складываются в один или несколько .dex; всё это вместе с assets/ и нативными библиотеками из lib/ пакуется в ZIP-контейнер; затем архив подписывается и выравнивается (zipalign) для быстрого доступа к ресурсам при выполнении. Именно поэтому в готовом APK манифест бинарный, а не текстовый, и почему .dex-файлов может быть больше одного.
Отдельно стоит знать про split APK: когда Google Play собирает приложение из App Bundle, он может отдать не один файл, а набор — базовый APK плюс конфигурационные (под архитектуру, плотность экрана, язык). На устройстве они работают как единое приложение. Поэтому «скачанный из Play» пакет и «один APK от разработчика» — не всегда одно и то же по числу файлов.
Как посмотреть содержимое APK
Есть три уровня погружения — от «просто заглянуть» до полноценного анализа.
- Архиватор. Самый быстрый способ: скопируйте APK, поменяйте расширение на
.zipи откройте в 7-Zip или WinRAR. Увидите дерево файлов и папок. Минус — AndroidManifest.xml и resources.arsc в бинарном виде, читать их так неудобно. - apktool. Консольная утилита, которая декодирует ресурсы и манифест обратно в читаемый вид, разбирает
.dexв smali и позволяет пересобрать APK. Стандартный инструмент, когда нужно разобрать пакет, а не просто на него посмотреть. - APK Analyzer в Android Studio. Встроенный анализатор. Открывается тремя путями: перетащить APK в окно редактора, дважды кликнуть APK в папке
build/output/apks/в режиме Project или выбрать в меню Build → Analyze APK. Он показывает состав DEX-файлов, финальную версию AndroidManifest.xml, ресурсы и — важно для оптимизации — «raw file size» и оценку размера загрузки для каждого элемента, каким его отдаст Google Play.
Для реверс-инжиниринга кода к этому набору добавляют dex2jar (конвертирует DEX в JAR), JD-GUI или JADX для просмотра восстановленного Java-кода. Но для базовой задачи «что внутри APK» хватает архиватора и APK Analyzer. Документация по APK Analyzer описывает интерфейс подробно.
Подпись APK: почему без неё не установить
Android не установит приложение без действительной цифровой подписи — она подтверждает, что пакет не изменён после сборки и выпущен тем же ключом, что и предыдущие версии. Схем подписи несколько, и они наслаиваются:
- v1 (JAR signing) — исходная схема на базе подписанного JAR. Подпись и контрольные суммы лежат в папке META-INF. Слабое место: v1 не защищает часть архива, например ZIP-метаданные.
- v2 — появилась в Android 7.0. Хешируется и подписывается весь APK целиком, а блок подписи вставляется в файл. Любое изменение архива, включая ZIP-метаданные, ломает подпись.
- v3 — с Android 9. Тот же механизм проверки, что в v2, плюс дополнительная информация в блоке подписи (в том числе для ротации ключа).
- v4 — более новая схема поверх предыдущих.
Практика от разработчиков платформы: подписывать всеми схемами сразу — сначала v1, затем v2 и v3. Старые устройства читают v1 и игнорируют новые блоки, а свежие получают усиленную защиту. Мини-вывод: подпись — не формальность, а условие установки и обновления; пересобранный «пиратский» APK теряет оригинальную подпись, и система это видит.
Чем APK отличается от AAB (Android App Bundle)
APK и AAB часто путают, но это разные вещи. APK — то, что реально ставится на устройство. AAB (.aab) — формат публикации: в нём весь скомпилированный код и ресурсы, но сборку и подпись финальных APK Google Play берёт на себя. Из одного бандла магазин генерирует оптимизированные APK под каждую конфигурацию устройства, чтобы пользователь скачивал только нужный код и ресурсы — например, библиотеки под свою архитектуру процессора и графику под своё разрешение.
Ключевой практический факт: с августа 2021 года новые приложения обязаны публиковаться в Google Play в формате Android App Bundle. При этом на устройство всё равно приходит APK — просто собирает его магазин, а не разработчик вручную. Гайд Android по App Bundle описывает механику генерации.
| Признак | APK | AAB |
|---|---|---|
| Что это | Готовый к установке пакет | Формат публикации в магазине |
| Расширение | .apk |
.aab |
| Кто собирает финал | Разработчик | Google Play из бандла |
| Размер загрузки | Один файл под все конфигурации | Только нужное конкретному устройству |
| Устанавливается напрямую | Да | Нет, сначала магазин собирает APK |
Как установить APK-файл
Google Play ставит приложения сам. Но APK можно установить и вручную — это называют сайдлоадингом. Порядок такой:
- Скачайте
.apkна устройство. - При первой попытке установки Android попросит разрешить установку из этого источника (браузера, файлового менеджера) — начиная с Android 8.0 разрешение выдаётся не глобально, а конкретному приложению-источнику.
- Откройте файл, подтвердите список разрешений из манифеста, дождитесь установки.
При установке система распаковывает APK, размещает файлы на устройстве, регистрирует пакет и выдаёт разрешения согласно AndroidManifest.xml. Если подпись невалидна или конфликтует с уже установленной версией того же пакета, установка не пройдёт.
Безопасность: откуда качать APK
Формат APK открытый, поэтому в файл легко «зашить» лишнее. Базовые правила гигиены:
- Приоритет — официальные магазины (Google Play) и сайты самих разработчиков. Сторонние «зеркала» APK — источник повышенного риска.
- Модифицированный APK теряет оригинальную подпись. Если приложение из «неофициальной сборки» просит переустановку с удалением исходной версии — это красный флаг.
- Смотрите на запрашиваемые разрешения. Фонарику не нужен доступ к SMS и списку контактов — манифест это покажет.
- Перед установкой сомнительного файла разберите его тем же APK Analyzer или архиватором: неожиданный набор
.dex, чужие библиотеки в lib/ или подозрительные ресурсы — повод отказаться.
Мини-вывод: сам факт «это APK» ничего не гарантирует — гарантирует источник и подпись. Открытость формата одновременно даёт и удобство анализа, и поверхность для злоупотреблений.
FAQ по формату APK
Формат APK — это архив?
Да. APK построен на ZIP: это тот же архив, только с расширением .apk и обязательным набором файлов внутри (манифест, код, ресурсы, подпись). Открывается любым архиватором.
Чем открыть APK-файл на компьютере?
Для быстрого просмотра — 7-Zip или WinRAR (можно переименовать в .zip). Для читаемого разбора манифеста и ресурсов — apktool или встроенный APK Analyzer в Android Studio.
Что за файл classes.dex внутри APK?
Это скомпилированный код приложения в формате Dalvik Executable — байт-код для Android Runtime. Файлов может быть несколько: classes.dex, classes2.dex и далее, потому что формат DEX ограничивает число методов в одном файле.
Чем APK отличается от AAB?
APK — готовый к установке пакет. AAB — формат публикации, из которого Google Play собирает оптимизированные APK под каждое устройство. С августа 2021 новые приложения в Play публикуются как AAB, но на телефон всё равно приходит APK.
Почему APK не устанавливается?
Частые причины: невалидная или отсутствующая подпись, конфликт с уже установленной версией того же пакета, несовместимая архитектура (нет нужной папки в lib/), не выдано разрешение на установку из данного источника или повреждённый архив.
Безопасно ли ставить APK не из Google Play?
Зависит от источника. Файл с сайта самого разработчика обычно безопасен, случайное «зеркало» — нет. Проверяйте подпись, запрашиваемые разрешения и по возможности содержимое архива перед установкой.
- Выполним базовые задачи на российских нейросетях и посмотрим на результаты!
- Файл-инструкцию «Как сделать нейро-фотосессию из своего фото бесплатно, без иностранных карт и прочих сложностей»
- Покажем 10+ способов улучшить свою жизнь с ИИ каждому — от ребенка и пенсионера до управленца и предпринимателя
- Возможность получить Доступ в Нейроклуб на целый месяц
- Как ИИ ускоряет работу и приносит деньги
- За 2 часа вы получите четкий план, как начать работать с ИИ прямо сейчас!