APK Analyzer
В Android Studio 2.2 появилась новая утилита APK Analyzer, позволяющая просмотреть важную информацию о составе файлов внутри сборки приложения — ресурсы, манифест, количество методов в классах (приложение не может превышать лимит 64k).
Чтобы посмотреть внутренности apk-файла, откройте меню Build | Analyze APK и затем выберите нужный файл. Можно поступить ещё проще. Просто перетащите файл в окно редактора студии и утилита запустится сама.
Таким образом вы можете просматривать не только собственные файлы, но и другие.
APK Analyzer предназначена для работы с release-версиями APK. Если вам нужно проанализировать debug-версию вашего приложения, убедитесь, что вы используете APK, который не предназначен для Instant run (можно узнать, что APK для Instant Run, проверив наличие в архиве файла instant-run.zip).
Утилита показывает размеры файлов, которые входят в сборку приложения. Причём, показывается полный размер в несжатом виде и сжатый размер.

Если приложение содержит несколько файлов AndroidManifest.xml (варианты сборки, другие библиотеки), то в финальной версии они объединяются в один файл. И утилита позволяет просмотреть итоговый вариант. И даже показать предупреждения или ошибки.

Выше уже упоминалось, что вы можете просматривать ресурсы — картинки, текст и др.
Другая полезная возможность — просмотр названий пакетов, классов, методов. Заодно вы сразу видите, сколько методов содержится в пакете или в классе.
Наконец, ещё одна функциональность утилиты — сравнение двух apk-файлов. Для этой цели служит кнопка Compare with. в верхней части окна.
Вы увидите разницу между двумя вариантами финальной и отладочных версий приложения.
Что такое файл APK – как его использовать на Android, Windows и Mac
APK-файлы используются операционной системой Android для хранения установочного пакета приложений. В пакете APK хранится агрегированное Android-приложение. Он также содержит все ресурсы, необходимые для запуска приложения. Это может включать в себя упорядоченный код, изображения, контент, записи, декларации и многое другое.
Для получения общих рекомендаций по наиболее эффективному способу открытия файлов APK и просмотра его содержимого следуйте этому руководству. Или вы можете просто изменить расширение файла APK на ZIP или JAR и открыть его с помощью WinZip, 7-Zip или другого разархиватора. Вы почти наверняка увидите внутреннюю структуру файла APK.
Как открыть файл APK
APK-файлы могут быть открыты в нескольких операционных системах, но по большей части они используются в гаджетах на Android.
Откройте файл APK на Android
Чтобы открыть APK-файл на своем Android-гаджете, нужно просто загрузить его так же, как любой другой файл, и после этого открыть по запросу. Однако, файлы APK, установленные из-за пределов магазина Google Play, вероятно, не будут установлены немедленно из-за настроек безопасности.

Чтобы обойти это ограничение загрузки и установить APK файлы из неизвестных источников. Перейдите в «Настройки» → «Безопасность» и после установите флажок Устанавливать из неизвестных источников .
Существует вероятность, что файл APK не откроется на вашем андроиде, попробуйте просмотреть его с помощью файлового менеджера, такого как Astro File Manager или ES File Explorer Manager.
Откройте файл APK на Windows
Вы можете открыть файл APK на ПК, используя Android Studio или BlueStacks. Например, в случае использования BlueStacks перейдите на вкладку «Мои приложения» и выберите «Установить apk» в правом нижнем углу окна.
Откройте файл APK на Mac
ARC Welder – это расширение Google Chrome, предназначенное для тестирования приложений Android в ОС Chrome, но оно работает с любой ОС. Это означает, что вы можете открыть APK на вашем Mac или Windows, если это приложение внедрено в программу Chrome.
Откройте файл APK на iOS
Вы не cможете открывать или устанавливать файлы APK на гаджет iOS (iPhone и iPad) в свете того факта, что файл работает совершенно другим образом по сравнению с приложениями, используемыми на этих гаджетах, и эти две платформы не совместимы.

Как работать с файлами APK
- Никогда не открывайте APK файлы с сайтов, которым вы не доверяете. Делая так, вы можете установить вредоносное приложение.
- Конфигурация файла APK получена из файла архива Java или JAR.
- Для сжатия данных APK-файл использует метод, подобный тому, который используется в ZIP-файле.
- APK-файл похож на MSI-файл для Windows, DMG для Mac OS и IPA для iOS.
Чтобы открыть файл APK и просмотреть отдельные файлы из него вы можете использовать приложение, которое относится к отдельной группе файлов. Часть ресурсов, таких как изображения, видео и файлы XML, может быть эффективно просмотрена с помощью ваших стандартных программ для Windows или Mac. Тем не менее, некоторые, такие как компилированный исходный код, библиотеки и сертификаты, потребуют специальных приложений, ориентированных на эти расширения файлов.
Эффективный способ установить APK файл
Чтобы установить APK-файл на ваш Android-гаджет, выполните следующие действия:
- Откройте интернет-браузер на своем гаджете Android.
- Найдите страницу с APK-файлом, который вам нужно установить.
- Нажмите на файл APK, чтобы начать загрузку
- После завершения загрузки вы должны нажать Открыть , чтобы начать процедуру создания.
- Если в вашем гаджете Android отключено создание файлов APK, вы увидите краткое описание, в котором вы можете нажать на «Настройки», чтобы расширить возможности устройства по управлению файлами.
- Нажмите «Установить» в следующем окне, чтобы начать процедуру установки.
Эффективный способ конвертировать APK файл
APK-файлы специально предназначены для запуска в среде гаджетов, работающих под управлением операционной системы Android. По этой причине они не могут быть непосредственно преобразованы в файл, который может быть выполнен в другой рабочей среде. Вы не можете изменить файл APK на EXE для Windows или на файл IPA для iOS.

Вместе с тем, пока ещё возможно запустить файл Android APK на Windows и Mac OS. Для запуска файла APK в Windows и Mac OS вы можете использовать расширение Google Chrome Arc Welder, доступное в Chrome Web Store. Следуйте инструкциям в разделе «Mac OS и Windows OS» нашей статьи «Как установить APK-файл», чтобы запустить APK-файл на Windows или Mac OS.
В случае, если вам нужно запустить определенное приложение Android на гаджете iOS, самый идеальный подход – это найти аналогичное приложения для iOS и загрузить его из Apple App Store. Практически все производители мобильных приложений создают версии своих портативных приложений для Android и iOS.
Можно изменить APK на файлы ZIP или JAR, но это преобразование не является изменением как таковым. На данный момент APK и так представляет собой файл формата JAR/ZIP, и для его «преобразования» вам просто нужно изменить его расширение на JAR или ZIP. Начиная с этого момента, вы можете открыть получившийся файл, используя архиватор WinZip, WinRar, 7-Zip и некоторые другие, пригодные для открытия файла JAR или ZIP.
Посмотреть содержимое файла APK
APK-файл имеет формат, аналогичный ZIP-файлу, и может быть открыт с помощью приложений, которые могут открывать ZIP-файлы. Примеры таких приложений включают WinRAR, WinZIP, 7-Zip.
Если вы извлечёте данные из файла APK с помощью приложения для разархивирования, вы можете увидеть отдельные файлы из пакета APK с помощью приложений, подходящих для просмотра этого конкретного типа файлов.
Базовая структура файла APK
META-INF – это папка, содержащая метаданные о составе файла APK. Эта папка обычно содержит файлы MANIFEST.MF, CERT.RSA и CERT.SF.
MANIFEST.MF – это файл, который содержит основные данные о приложении. Эти данные потребляются рабочей системой Android. Помимо прочего, в нём содержатся: имя пакета приложения, полномочия требуемые приложением от системы, основные характеристики продукта и оборудования, требуемые приложением, и возможности приложения.
Компилированный код приложения помещается в папку «lib». Эта папка может содержать множество подпапок, каждая из которых будет иметь код для конкретных архитектур оборудования.
Ниже приведен список поддерживаемых папок:
- armeabi: код для процессоров на базе ARM
- armeabi-v7a: код для процессоров ARMv7 или выше
- arm64-v8a: код для процессоров ARMv8 arm64 или выше
- x86: код для процессоров x86
- x86_64: код для процессоров x86_64
- mips: код для процессоров MIPS
Как открыть APK файл в Android Studio?
Можно, но зачем это делать ВАМ и при чем тут IDE? Как вам «намекнул» @metalurgus, используйте архиватор, чтобы залезть внутрь..
23 янв 2015 в 19:25
На Github частенько бывают исходники приложений, не ленитесь там поискать.
23 фев 2018 в 21:08
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Никак. APK файл — это обычный ZIP архив, содержащий скомпилированный код. Android Studio не открывает APK файлы.
Отслеживать
11 1 1 золотой знак 2 2 серебряных знака 8 8 бронзовых знаков
ответ дан 23 янв 2015 в 19:07
Vladyslav Matviienko Vladyslav Matviienko
20.4k 3 3 золотых знака 30 30 серебряных знаков 52 52 бронзовых знака
Простой способ: использовать онлайн-инструмент http://www.javadecompilers.com/apk , загрузить apk и получить исходный код.
Процедура для декодирования .apk файлов, шаг за шагом: Шаг 1:
Создайте новую папку и скопируйте файл .apk, который вы хотите декодировать. Теперь переименуйте расширение этого .apk-файла в .zip (например, переименуйте с filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть чертежи, но не файлы xml и java, поэтому продолжайте.
Теперь извлеките этот .zip-файл в ту же папку (или NEW FOLDER). Загрузите dex2jar и извлеките его в ту же папку (или NEW FOLDER). Переместите файл classes.dex в папку dex2jar. Теперь откройте командную строку и смените каталог на эту папку (или NEW FOLDER). Затем напишите d2j-dex2jar classes.dex (для терминала mac или ubuntu write ./d2j-dex2jar.sh classes.dex) и нажмите enter. Теперь у вас есть файл classes.dex.dex2jar в той же папке. Загрузите java decompiler , дважды щелкните по jd-gui, щелкните по открытому файлу и откройте classes.dex .dex2jar из этой папки: теперь вы получаете файлы классов. Сохраните все эти файлы классов (в jd-gui, щелкните File -> Save All Sources) по имени src. На этом этапе вы получаете источник java, но файлы .xml по-прежнему не читаются, поэтому продолжайте.
Теперь откройте еще одну новую папку
Вставьте файл .apk, который вы хотите декодировать Загрузите последнюю версию apktool И окно установки apktool (обе могут быть загружены из одной и той же ссылки ) и поместите их в ту же папку Откройте командное окно Теперь запустите команду, например apktool if framework-res.apk и следующую apktool d myApp.apk (где myApp.apk обозначает имя файла, которое вы хотите декодировать)
теперь вы получаете папку с файлами в этой папке и можете легко прочитать XML-файлы apk. Шаг 4:
Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае и новую папку) в один файл
и наслаждайтесь источником код .
Создание apk-файла в Android Studio
Конечной целью любой java-разработки является создание завершенного приложения : это может быть как библиотека/исполняемый jar-файл, либо web приложение. Имеются различные типы приложений и библиотек. При всем многообразии возможных разношёрстных типов готовых библиотек и приложений android-устройства выбиваются из общей колеи. Для android-устройств конечным программным продуктом являются apk-файлы, которые можно свободно распространять между пользователями.
На заре развития программного обеспечения вся разработка для android-устройств осуществлялась, как правило, в IDE Eclipse со специализированными плагинами типа ADT (Android Development Tools). Данная среда разработки позволяет создавать для android apk-файлы. Но времена быстро меняются, и сегодня гораздо эффективнее и быстрее создавать apk-файлы в представленной ещё в 2013 году Android Studio, основанную на старом конкуренте Eclipse — системе IntelliJ IDEA.
Аббревиатура apk (Android Package Kit) символизирует формат файлов, которые используются для распространения и установки приложений на устройства android. Файл apk содержит все необходимые элементы для правильной установки приложения на устройстве, и, по своему назначению, чем-то похож на исполняемые exe-файлы в Windows. Когда Вы «заходите в магазин» Google Play, чтобы выбрать и загрузить какое-либо приложение, Ваше устройство android скачивает и устанавливает файл apk с нужным приложением.
Создание apk-файла
Рассмотрим процесс создания apk-файла на примере p13osgi, в котором использовался OSGi-фреймворк. Этот пример подробно рассмотрен на странице Android и OSGI-фреймворк Felix. В данной статье используем готовый модуль из проекта.
Заметка. Почему в качестве примера создания apk-файла выбираем данный модуль/проект, а не какой-либо другой? Дело в том, что в данном примере используется расположенная в поддиректории lib внешняя библиотека. И для нас интерес будет представлять структура apk-файла с внешней jar-библиотекой : какое место в данном пакете будет занимать внешний файл org.apache.felix.framework-6.0.3.jar. Здесь следует понимать, что OSGi-фреймворк (Felix) позволяет создавать модульную структуру приложения. Причем, в режиме run-time можно динамически подключать новые модули (bunlde), останавливать запущенные модули, одновременно подключать разноверсионные модули. Данный функционал OSGi-фреймворка на примере Вы можете реально проверить на своем компьютере; для этого необходимо познакомиться с Уроком 8.
Создание APK-файлов всех модулей проекта
Чтобы использовать самый простой способ создания apk-файла, выберите в Android Studio пункт меню «Build → Build Bundle(s)/APK(s) → APK(s)», как это представлено на следующем скриншоте.

В данном случае для всех модулей проекта будут созданы apk-файлы. Здесь необходимо отметить, что apk-файлы будут без цифровой подписи и распространению не подлежат. Но на них можно «посмотреть», что мы и сделаем в последнем разделе статьи, а также можно проверить работоспособность на android-устройстве. Загрузку apk-файла на android-устройство мы рассмотрим в ближайшее время отдельной статьей. Также отдельной статьей я представлю процесс создания apk-файла с цифровой подписью при выборе пункта меню «Build → Generate Signed Bundle/APK».
А сейчас Вы должны увидеть, что для всех модулей проекта создаются apk-файлы, которые располагаются в поддиректориях проекта [project_name]/[module_name]/build/outputs/apk/debug/. Т.е. в поддиректории модуля build/outputs/apk/debug/ будет размещаться созданный apk-файл, наименование которого включает наименование модуля с постфиксом «-debug». В нашем примере будет создан файл p13osgi-debug.apk.
Определение типа apk : debug-release
Постфикс «-debug», добавляемый к наименованию пакета, определен по умолчанию. Вы можете самостоятельно переименовать файл, и он останется работоспособным. Но можно и изменить настройки. Для этого необходимо указателем мыши нажать на расположенную в левом нижнем углу маленькую кнопочку, как это представлено на нижнем левом скриншоте. Данная кнопка открывает окно со специальными ярлыками различных вспомогательных окон. При простом наведении указателя мыши на эту кнопку, появляется список всех этих окон для быстрого выбора нужного.
Откроем окно Build Variants и в дополнительно открытом окне (скриншот справа) найдем модуль p13osgi (наш пример).
Если в выпадающем списке переключить режим сборки с debug на release, то будет создаваться пакет p13osgi-release-unsigned.apk в поддиректории «build/outputs/apk/release/».
![]() |
![]() |
Создание APK-файла одного модуля проекта
Для того, чтобы создать apk-файл одного модуля, необходимо открыть панель Gradle (см.ярлык на скриншоте сверху слева). В открывшемся окне, как это представлено на следующем скриншоте, необходимо выбрать пункт меню «module_name → Tasks → build → build». В результате данных действий будет создан apk-файл только одного модуля.

Структура файла APK
В заключении посмотрим на внутренности нашего apk-файла. Сразу же отмечу, что apk-файл можно открыть zip-архиватором, например 7-Zip. Но многое останется недоступным. Лучше использовать анализатор apk-файлов от Android Studio. Далеко ходить не надо : необходимо выбрать пункт меню «Build → Analyze APK . » (см. самый верхний скриншот). В открывшемся диалоговом окне найти нужный пакет в файловой структуре, после чего в IDE будет открыта панель, как это представлено на следующем скриншоте.

Интерфейс панели анализатора разделен на 2 части. В верхней части Вы видите корневую структуру apk-файла. В нижней части можно просматривать структуру выделенного элемента верхней части.
Что сразу же бросается в глаза? Вспоминаем : в нашем примере/модуле была использована внешняя библиотека с OSGi-фреймворком Felix org.apache.felix.framework-6.0.3.jar, расположенная в поддиректории lib
В структуре созданного пакета поддиректория lib. Все файлы внешней jar-библиотеки размещаются в корне по пакетам. Можно предположить, что и дополнительное использование бандлов/модулей (а для чего использовать фреймворк, если не использовать бандлы) приведет к тому, что и их содержимое также будет интегрировано в общий пакет. Таким образом, мы лишаемся преимуществ использования OSGi-технологии при разработке приложений для android-устройств, поскольку любая доработка отдельного модуля/бандла будет связана с обновлением всей сборки (apk-пакета). Кроме этого, отсутствует возможность одновременного использования разноверсионных бандлов, а межмодульное взаимодействие посредством сервисов становится «слишком дорогим» (можно и напрямую постучаться к классам бандла, зачем нам посредник-активатор). На данном простом примере я не вижу преимуществ использования OSGi для создания многомодульного приложения.
Буду признателен всем, кто опровергнет данное предположение и предложит значимое использование OSGi-технологии в android-устройстве.
Что касается *.class’ов, то их также не будет в apk-файле. Им на смену пришли файлы *.dex .
Файл .dex
«Рабочей лошадкой» в системе Android является Dalvik Virtual Machine, не использующая байт-код Java. Виртуальная машина Dalvik является службой приложения, которая интерпретирует скомпилированный код в dex-файле. Инструкции байт-кода формата DEX не совпадают с инструкциями байт-кода Java. Таким образом, в apk-файле Java-классы представлены в формате .dex. Но необходимо отметить, что структура пакетов сохраняется.

