Многие разработчики уверены, что APK-файл — это «чёрный ящик», содержимое которого можно увидеть только с помощью специальных декомпиляторов. Однако Android Studio умеет открывать и анализировать APK штатными средствами, без дополнительных утилит. В этой статье я покажу, как открыть APK файл в Android Studio, какие данные можно извлечь и чем отличаются доступные инструменты: APK Analyzer для быстрого просмотра и Profile or Debug APK для отладки чужого приложения.
Три способа открыть APK в Android Studio
Android Studio предоставляет два встроенных инструмента для работы с APK, а также возможность перетащить файл прямо в редактор. У каждого способа своё назначение, и важно выбрать правильный под конкретную задачу:
- APK Analyzer — для анализа состава APK, просмотра манифеста, оценки размера файлов и сравнения двух сборок.
- Profile or Debug APK — для отладки готового APK с точками останова и профилирования производительности.
- Перетаскивание в редактор — быстрый способ открыть APK Analyzer, просто перетянув файл в окно Android Studio.
Открываем APK через Build → Analyze APK
Это основной инструмент для тех, кто хочет посмотреть, из чего состоит приложение. Он показывает файлы, их размеры, позволяет изучить манифест и даже заглянуть в DEX-файлы. Чтобы запустить анализ, откройте любой проект в Android Studio, затем в верхнем меню выберите Build → Analyze APK. В появившемся диалоговом окне укажите путь к вашему APK-файлу и нажмите OK.
Через несколько секунд в главном окне отобразится дерево файлов, сгруппированных по папкам. Слева вы увидите структуру, похожую на ZIP-архив: папки lib, res, META-INF, а также файл AndroidManifest.xml и classes.dex. Щёлкнув по любому элементу, вы получите подробную информацию: исходный размер файла и сжатый размер, который увидит пользователь при скачивании из Google Play.
Что можно увидеть в APK Analyzer
Инструмент даёт гораздо больше, чем простой просмотр архива. Вот что именно можно изучить:
- AndroidManifest.xml. APK Analyzer восстанавливает читаемый XML из бинарного формата. Вы увидите итоговый манифест, в который уже смержены все библиотеки и объявлены permissions, activity и сервисы. Это помогает понять, какие разрешения запрашивает приложение на самом деле.
- Файлы DEX. Можно увидеть количество классов и методов в каждом DEX-файле, что пригождается при решении проблем с превышением 64K-лимита. Анализатор показывает количество объявленных методов и общее количество ссылок, помогая оценить, нужен ли Multidex.
- Размер компонентов. Интерфейс наглядно показывает, сколько места занимают ресурсы, нативные библиотеки и код, позволяя найти, что «раздувает» APK.
- Сравнение двух APK. Загрузив вторую сборку, можно построчно увидеть, какие файлы изменились и насколько вырос размер.
Открываем APK для отладки: Profile or Debug APK
Если APK Analyzer нужен для изучения состава, то Profile or Debug APK открывает APK как псевдопроект. Вы не получите исходный код в исходном виде, но сможете пройтись по нему дебаггером, при условии что APK собран с флагом debuggable. Чтобы начать, на стартовом экране Android Studio нажмите Profile or debug APK. Если у вас уже открыт проект, выберите File → Profile or Debug APK из меню.
Android Studio распакует APK и покажет его структуру в панели Project на вкладке Android. Вы увидите папку java, в которой лежат SMALI-файлы — это дизассемблированное представление DEX-байткода. Каждый SMALI-файл соответствует одному классу. Читать такой код сложнее, чем обычный Java или Kotlin, но для отладки этого достаточно. Чтобы поставить точку останова, дважды кликните по SMALI-файлу, нажмите Attach Kotlin/Java Sources и укажите путь к исходникам, если они у вас есть.
Как получить исходный код из APK
Важно понимать: ни APK Analyzer, ни Profile or Debug APK не восстанавливают исходный код в том виде, в котором он был написан. APK содержит скомпилированный байткод DEX, и без специальных инструментов вы не увидите привычный Java или Kotlin. Если вам нужен именно читаемый код, потребуется декомпилятор. Один из самых популярных — JADX. Он умеет открывать APK и показывать восстановленный Java-код, а также экспортировать результат как Gradle-проект, который можно открыть в Android Studio.
Процесс выглядит так: скачайте JADX с GitHub, запустите JADX-GUI, откройте в нём APK-файл и дождитесь завершения декомпиляции. Затем выберите File → Save as Gradle project, укажите папку, и откройте её в Android Studio как обычный проект через File → Open. Однако учтите: если APK был обфусцирован через ProGuard или R8, код будет трудночитаемым — имена классов и методов превратятся в a, b, c.
Типичные проблемы и их решение
- Пункт Analyze APK неактивен или отсутствует. Убедитесь, что у вас открыт любой Android-проект. Этот пункт меню доступен только при активном проекте. Если проекта нет, просто создайте пустой через File → New → New Project.
- Ошибка «APK is not debuggable». При попытке использовать Profile or Debug APK вы видите это сообщение. Решение: возьмите APK, собранный как debug-версия, или разблокируйте его с помощью apktool, добавив в манифест
android:debuggable="true". - Нет папки java в Profile or Debug APK. Проверьте, что в настройках Android Studio включён плагин Android APK Support. Он находится в File → Settings → Plugins.
- Ошибка «Corrupted APK». Возникает, если файл повреждён при скачивании или это не APK, а AAB. Скачайте APK заново или извлеките его из AAB с помощью bundletool.
Коротко о главном
- APK Analyzer открывается через Build → Analyze APK и показывает состав, размеры файлов и манифест.
- Profile or Debug APK открывает APK как псевдопроект и позволяет отлаживать его при наличии debug-флагов.
- Оба инструмента не восстанавливают исходный код — для этого нужны декомпиляторы вроде JADX.
- Пункт меню Analyze APK доступен только при открытом проекте Android Studio.
Теперь вы знаете, как открыть APK файл в Android Studio — причём не одним, а сразу тремя способами. APK Analyzer пригодится, чтобы быстро оценить размер сборки или проверить итоговый манифест. Profile or Debug APK выручит, когда нужно пройтись отладчиком по чужому приложению. А если задача — восстановить утерянные исходники, JADX станет вашим главным помощником. Выбирайте инструмент под свою задачу и смело заглядывайте внутрь любого APK.