Как исследовать приложение для Android.
Общеизвестно, что приложения для Android распространяются в виде файлов пакетов Android Application, или файлов APK для краткости. Тем не менее, большинство людей смотрит на APK как черный ящик и понятия не имеет, как оно создано или что внутри него. Даже у большинства разработчиков приложений есть только поверхностное понимание анатомии APK. В интегрированных средах разработки, таких как Android Studio, требуется всего один щелчок, чтобы преобразовать проект Android в APK.
В этом уроке мы рассмотрим приложение для Android. Другими словами, мы собираемся открыть APK и посмотреть его содержимое. Кроме того, поскольку APK является двоичным файлом, предназначенным только для чтения машинами, я также расскажу вам о нескольких инструментах, которые вы можете использовать для перевода его содержимого в более удобочитаемую форму.
Предпосылки
Чтобы следовать, вам нужно:
- последняя версия Android SDK
- Android-устройство или эмулятор под управлением Android 4.4 или выше
1. Зачем заглядывать внутрь в APK?
Многие люди делают это из чистого любопытства. Другие пользуются возможностью прямого доступа к изображениям, звукам и другим активам своих любимых игр или приложений. Однако есть более важные причины, по которым вы хотели бы заглянуть внутрь APK.
Обучение
Если вы только начали изучать разработку приложений для Android, вы можете многому научиться, просматривая APK-файлы популярных приложений или приложений, созданных профессионалами. Например, просмотрев файлы макета XML приложения, которые хорошо смотрятся на нескольких размерах экрана, вы можете улучшить свои собственные навыки создания макета.
Безопасность
Приложения, загруженные из ненадежных источников, могут содержать вредоносный код. Если вы уже являетесь опытным разработчиком приложений, разобрав такие приложения, вы можете посмотреть их код, чтобы лучше понять, что они действительно делают под капотом.
2. Как создается APK?
Не так много можно узнать из APK без базового понимания того, как он создается. Фактически, наиболее важные инструменты, используемые для анализа APK, также являются инструментами, используемыми для его создания.
Проекты Android состоят в основном из исходного кода Java, XML-макетов, метаданных XML и активов, таких как изображения, видео и звуки. Прежде чем операционная система Android сможет использовать все эти файлы, их необходимо преобразовать в форму, которую она понимает. Это преобразование включает в себя множество промежуточных задач, которые обычно называются процессом сборки Android. Конечным результатом процесса сборки является APK или пакет приложений для Android.
В проектах Android Studio Android-плагин для Gradle обрабатывает все промежуточные задачи процесса сборки.
Одной из первых важных задач является создание файла с именем R.java. Это файл, который позволяет разработчикам легко получать доступ к макету проекта и ресурсам в своем Java-коде с помощью числовых констант. Для создания файла используется инструмент под названием aapt, который является коротким для Android Asset Packaging Tool. Инструмент также преобразует все ресурсы XML вместе с файлом манифеста проекта в двоичный формат.
Все файлы Java, включая R.java, затем преобразуются в файлы классов с использованием компилятора Java . Как вы уже знаете, файлы классов состоят из байт-кода, который может быть интерпретирован механизмом выполнения Java. Однако Android использует специальный тип Android runtime (ART), который оптимизирован для мобильных устройств. Поэтому, как только все файлы классов были сгенерированы, инструмент, который называется dx, используется для перевода байт-кода в байт-код Dalvik , формат, который понимает ART.
После обработки ресурсов и файлов Java они помещаются в файл архива, который очень похож на файл JAR . Затем архивный файл подписывается с использованием закрытого ключа, который принадлежит разработчику приложения. Эти две операции выполняются плагином Gradle без использования каких-либо внешних инструментов. Ключ разработчика, однако, получен из хранилища ключей, управляемого keytool .
Наконец, c файлом архива делается несколько оптимизаций с использованием инструмента zipalign, чтобы убедиться, что память, которую приложение потребляет во время работы, сведена к минимуму. На данный момент архивный файл является допустимым APK, который может использоваться операционной системой Android.
3. Анализ содержания APK
Теперь, когда вы понимаете, как файлы APK создаются и используются, давайте откроем их и посмотрим на его содержимое. В этом уроке мы используем APK приложения под названием Sample Soft Keyboard, которое предварительно устанавливается на эмулятор Android. Однако, если вы предпочитаете использовать физическое устройство, вы можете так же легко использовать APK любого приложения, которое вы установили на нем.
Шаг 1: Перенос APK на компьютер
Чтобы проверить содержимое APK, вы должны перенести его с эмулятора на свой компьютер. Прежде чем вы это сделаете, вам нужно знать имя пакета и абсолютный путь APK. Используйте adb , чтобы открыть сеанс оболочки на вашем эмуляторе.
Когда вы увидите приглашение оболочки, используйте команду pm list , чтобы отобразить имена пакетов для всех установленных приложений.
Название пакета приложения, которое нас интересует, это com.example.android.softkeyboard. Вы должны увидеть его в списке. Передав имя пакета команде pm path , вы можете определить абсолютный путь APK.
Вывод команды выше выглядит следующим образом:
Теперь, когда вы знаете свой путь, вы можете выйти из оболочки и перенести APK на свой компьютер с помощью команды adb pull . Приведенная ниже команда передает его в каталог вашего компьютера /tmp:
Шаг 2: Извлечение содержимого APK
Ранее в этом уроке вы узнали, что APK — это ни что иное, как сжатый файл архива. Это означает, что вы можете использовать менеджер архива по умолчанию для своей операционной системы. Если вы используете Windows, вы можете сначала изменить расширение файла с .apk на .zip. После извлечения содержимого APK вы должны иметь возможность видеть файлы внутри APK.

Если вы разработчик приложений, многие файлы в APK должны выглядеть знакомыми. Однако, помимо изображений в папке res, файлы находятся в формате, с которым вы не можете работать без помощи нескольких инструментов.
Шаг 3: Расшифровка двоичных файлов XML
Android SDK включает в себя все инструменты, необходимые для анализа содержимого APK. Вы узнали ранее, что aapt используется для упаковки ресурсов XML во время процесса сборки. Он также может использоваться для чтения большого количества информации из APK.
Например, вы можете использовать опцию dump xmltre e для чтения содержимого любого двоичного XML-файла в APK. Вот как вы можете прочитать файл макета с именем res/layout/input.xml:
Результат должен выглядеть примерно так:
Это не XML, но благодаря отступу и ярлыкам, например N для пространства имен, E для элемента и атрибуту A, вы должны быть в состоянии прочитать его.
Шаг 4: Расшифровка строк
На предыдущем шаге вы видели, что дешифрованный XML имеет шестнадцатеричные числа вместо строк. Эти числа являются ссылками на строки в файле с именем resources.arsc, который представляет собой таблицу ресурсов приложения.
Вы можете использовать параметр dump resources для aapt для просмотра таблицы ресурсов. Вот как:
Из вывода команды вы можете определить точные значения строк, используемых в приложении. Вот запись для одного из шестнадцатеричных чисел в XML:
Шаг 5: Разборка Dalvik Bytecode
Наиболее важным файлом в APK является class.dex. Это файл, который используется во время работы приложения Android во время запуска приложения. Он содержит байт-код Dalvik, сгенерированный во время процесса сборки.
Разбрав этот файл, вы можете получить информацию о классах Java, используемых в приложении. Для этого вы можете использовать инструмент, называемый dexdump. С помощью следующей команды вы можете перенаправить вывод файла dexdump в файл, который может быть открыт любым текстовым редактором.
Если вы откроете classes.dasm, вы увидите, что у него есть сотни строк низкоуровневого кода, который выглядит так:

Излишне говорить, что это очень сложно. К счастью, вы можете изменить выходной формат dexdump в XML с помощью опции -l . С помощью следующей команды вы можете перенаправить свой вывод в файл, который можно открыть в браузере.
Объем информации, доступной в формате XML, меньше, но дает вам представление о классах Java, методах и полях, присутствующих в приложении.

Заключение
В этом уроке вы узнали, как создается APK и что он содержит. Вы также узнали, как использовать инструменты, доступные в Android SDK, для расшифровки содержимого файлов APK. Документации об этих инструментах не так много, но поскольку все они с открытым исходным кодом, вы можете попробовать прочитать их подробный код с комментариями, чтобы узнать о них больше.
Если вы ищете что-то более простое в использовании, вы можете попробовать использовать популярные сторонние инструменты, такие как dex2jar , который генерирует более читаемый дизассемблированный код или JADX , декомпилятор, который может генерировать Java-код.
Есть ли способ получить исходный код из APK-файла?
Жесткий диск на моем ноутбуке просто разбился, и я потерял весь исходный код приложения, над которым я работал последние два месяца. Все, что у меня есть, это файл APK, который хранится в моем письме, когда я отправил его другу.
Есть ли способ извлечь исходный код из этого файла APK?
16 ответов
Простой способ: использовать онлайн-инструмент http://www.javadecompilers.com/apk, загрузить apk и получить исходный код.
Процедура для декодирования файлов .apk, шаг за шагом:
Шаг 1:
Создайте новую папку и скопируйте файл .apk, который вы хотите декодировать.
Теперь переименуйте расширение этого файла .apk в .zip(например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т.д. На этом этапе вы можете видеть чертежи, но не файлы xml и java, поэтому продолжайте.
Шаг 2:
Теперь извлеките этот .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 по-прежнему не читаются, поэтому продолжайте.
Шаг 3:
Теперь откройте новую папку
Вставьте файл .apk, который вы хотите декодировать
Загрузите последнюю версию apktool И apktool install window (обе могут быть загружены из тех же link) и поместите их в одну папку
Откройте окно командной строки
Теперь запустите команду, например apktool if framework-res.apk и следующую
apktool d myApp.apk (где myApp.apk обозначает имя файла, которое вы хотите декодировать)
теперь вы получаете папку с файлами в этой папке и можете легко прочитать файлы apk xml.
Шаг 4:
Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае и новую папку) на один
и наслаждайтесь исходным кодом.
Это альтернативное описание — на всякий случай, когда кто-то застрял над описанием выше. Выполните следующие шаги:
- скачать apktool.bat (или apktool для Linux) и apktool_<version>.jar из http://ibotpeaches.github.io/Apktool/install/
- переименуйте файл jar сверху до apktool.jar и поместите оба файла в одну папку
Промежуточный результат: файлы ресурсов, AndroidManifest.xml
Промежуточный результат: classes.dex
Промежуточный результат: classes_dex2jar.jar
Результат: исходный код
Примечание: не разрешается декомпилировать пакеты сторонних поставщиков; это руководство предназначено для восстановления личного исходного кода только из файла APK; наконец, полученный код, скорее всего, будет запутан.
В то время как вы можете декомпилировать ваш файл APK , вы, вероятно, столкнетесь с одной большой проблемой:
он не вернет код, который вы написали. Вместо этого он будет возвращать все, что встраивается компилятором, с переменными, заданными случайными именами, а также функциями, заданными случайными именами. Это может занять значительно больше времени, чтобы попытаться декомпилировать и восстановить его в коде, который у вас был, чем начать.
К сожалению, такие вещи убили много проектов.
В будущем я настоятельно рекомендую изучить систему управления версиями, например CVS, SVN и git и т.д.
и как создать резервную копию.
Просто установите и получайте удовольствие. Я думаю, что это самый простой способ декомпилировать приложение.
apktool — это лучшее, что вы можете попробовать. Я сохранил некоторые xml с ним, но, честно говоря, я не знаю, как это будет работать с кодом .java.
Я бы порекомендовал вам иметь репозиторий кода, даже если ваш единственный кодер. Я использовал Project Locker для моих собственных проектов. Это дает вам бесплатные svn и git repos.
В этих двух статьях описывается, как объединить использование apktool и dex2jar , чтобы взять файл APK и создать проект Eclipse, который может его создавать и запускать.
- Используйте apktool , чтобы получить файлы ресурсов из apk
- Используйте dex2jar для получения файла jar, который содержит классы в формате, который понравится Eclipse.
- Создайте проект Eclipse, укажите его в файлах ресурсов и новом файле jar
- Откройте файл jar с помощью zip-утилиты и удалите существующие ресурсы.
- Откройте файл jar с помощью JDGui , чтобы просмотреть исходный код
- Возьмите любой исходный код из JDGui , вставьте его в класс внутри Eclipse и измените его
- Удалить этот класс из файла jar (так что вы не имеете одного и того же класса, определенного несколько раз)
- Запустите его.
apktool будет работать. Вам даже не нужно знать хранилище ключей, чтобы извлечь исходный код (что немного страшно). Основной недостаток заключается в том, что источник представлен в формате Smali вместо Java. Другие файлы, такие как значок и main.xml, проходят отлично, хотя, возможно, стоит потратить время, чтобы хотя бы восстановить их. В конечном итоге вам, скорее всего, придется перезаписать Java-код с нуля.
Здесь вы можете найти apktool здесь. Просто скачайте apktool и соответствующий помощник (для Windows, Linux или Mac OS). Я рекомендую использовать такой инструмент, как 7-zip, чтобы распаковать их.
Может быть легко увидеть источник:
В Android-студии 2.3, Build -> Analyze APK -> Select the apk that you want to decompile .
Вы увидите исходный код.
Я покажу вам другой способ декомпилировать файлы .apk.
Вы можете выполнить первые 2 шага из » prankul garg«. Таким образом, у вас есть еще одна возможность:
Шаг 3 ‘:
Загрузите «JD-GUI» , который легко найти. Откройте файл .jar в файле «jd-gui.exe». (Файл > Открыть файл > ‘нашел ваш файл .jar). После этой процедуры вы можете сохранить все ресурсы в файле .zip.
1st — вам нужно переименовать файл .apk в .zip
2nd — Вы должны декодировать файл .dex (если хотите, декодируйте файл .apk на dex2jar, что возможно)
3rd — вам нужно декодировать .jar файл с JD-GUI
Get Source Code from an .apk file? [closed]
Questions about writing and publishing Android apps, writing custom ROMs, and other topics that are primarily of concern to developers are off-topic. Consider taking advantage of other resources that may be appropriate for your question.
Closed 8 years ago .
Having an .apk file, is there any way I can get its source code?
3 Answers 3
Even if ProGuard was used you still can get some interesting insights. Here is a StackOverflow question with a detailed explanation: Android: Getting source code from an APK file. YouTube video with a detailed guide. And a blog entry about that: How to retrieve source code from an Android APK file.
If you get lucky and your .apk file wasn’t protected by Proguard or analog, you can use APK tool. It is a tool for reverse engineering 3rd party, closed, binary Android apps.
Procedure for decoding .apk files, step-by-step method:
Step 1:
Make a new folder and copy over the .apk file that you want to decode.
Now rename the extension of this .apk file to .zip (e.g. rename from filename.apk to filename.zip) and save it. Now you can access the classes.dex files, etc. At this stage you are able to see drawables but not xml and java files, so continue.
Step 2:
Now extract this .zip file in the same folder (or NEW FOLDER).
Download dex2jar and extract it to the same folder (or NEW FOLDER).
Move the classes.dex file into the dex2jar folder.
Now open command prompt and change directory to that folder (or NEW FOLDER). Then write d2j-dex2jar classes.dex and press enter. You now have the classes.dex.dex2jar file in the same folder.
Download java decompiler, double click on jd-gui, click on open file, and open classes.dex.dex2jar file from that folder: now you get class files.
Save all of these class files (In jd-gui, click File -> Save All Sources) by src name. At this stage you get the java source but the .xml files are still unreadable, so continue.
Step 3:
Now open another new folder
Put in the .apk file which you want to decode
Download the latest version of apktool AND apktool install window (both can be downloaded from the same link) and place them in the same folder
Download framework-res.apk and put it in the same folder (Not all apk file need this file, but it doesn’t hurt)
Open a command window
Navigate to the root directory of APKtool and type the following command: apktool if framework-res.apk
apktool d myApp.apk (where myApp.apk denotes the filename that you want to decode)
now you get a file folder in that folder and can easily read the apk’s xml files.
Step 4:
It’s not any step just copy contents of both folder(in this case both new folder)to the single one
Как исследовать приложение для Android

Ashraff Hathibelagal Last updated Apr 1, 2016
Общеизвестно, что приложения для Android распространяются в виде файлов пакетов Android Application, или файлов APK для краткости. Тем не менее, большинство людей смотрит на APK как черный ящик и понятия не имеет, как оно создано или что внутри него. Даже у большинства разработчиков приложений есть только поверхностное понимание анатомии APK. В интегрированных средах разработки, таких как Android Studio, требуется всего один щелчок, чтобы преобразовать проект Android в APK.
В этом уроке мы рассмотрим приложение для Android. Другими словами, мы собираемся открыть APK и посмотреть его содержимое. Кроме того, поскольку APK является двоичным файлом, предназначенным только для чтения машинами, я также расскажу вам о нескольких инструментах, которые вы можете использовать для перевода его содержимого в более удобочитаемую форму.
Предпосылки
Чтобы следовать, вам нужно:
- последняя версия Android SDK
- Android-устройство или эмулятор под управлением Android 4.4 или выше
1. Зачем заглядывать внутрь в APK?
Многие люди делают это из чистого любопытства. Другие пользуются возможностью прямого доступа к изображениям, звукам и другим активам своих любимых игр или приложений. Однако есть более важные причины, по которым вы хотели бы заглянуть внутрь APK.
Обучение
Если вы только начали изучать разработку приложений для Android, вы можете многому научиться, просматривая APK-файлы популярных приложений или приложений, созданных профессионалами. Например, просмотрев файлы макета XML приложения, которые хорошо смотрятся на нескольких размерах экрана, вы можете улучшить свои собственные навыки создания макета.
Безопасность
Приложения, загруженные из ненадежных источников, могут содержать вредоносный код. Если вы уже являетесь опытным разработчиком приложений, разобрав такие приложения, вы можете посмотреть их код, чтобы лучше понять, что они действительно делают под капотом.
2. Как создается APK?
Не так много можно узнать из APK без базового понимания того, как он создается. Фактически, наиболее важные инструменты, используемые для анализа APK, также являются инструментами, используемыми для его создания.
Проекты Android состоят в основном из исходного кода Java, XML-макетов, метаданных XML и активов, таких как изображения, видео и звуки. Прежде чем операционная система Android сможет использовать все эти файлы, их необходимо преобразовать в форму, которую она понимает. Это преобразование включает в себя множество промежуточных задач, которые обычно называются процессом сборки Android. Конечным результатом процесса сборки является APK или пакет приложений для Android.
В проектах Android Studio Android-плагин для Gradle обрабатывает все промежуточные задачи процесса сборки.
Одной из первых важных задач является создание файла с именем R.java. Это файл, который позволяет разработчикам легко получать доступ к макету проекта и ресурсам в своем Java-коде с помощью числовых констант. Для создания файла используется инструмент под названием aapt, который является коротким для Android Asset Packaging Tool. Инструмент также преобразует все ресурсы XML вместе с файлом манифеста проекта в двоичный формат.
Все файлы Java, включая R.java, затем преобразуются в файлы классов с использованием компилятора Java. Как вы уже знаете, файлы классов состоят из байт-кода, который может быть интерпретирован механизмом выполнения Java. Однако Android использует специальный тип Android runtime (ART), который оптимизирован для мобильных устройств. Поэтому, как только все файлы классов были сгенерированы, инструмент, который называется dx, используется для перевода байт-кода в байт-код Dalvik, формат, который понимает ART.
После обработки ресурсов и файлов Java они помещаются в файл архива, который очень похож на файл JAR. Затем архивный файл подписывается с использованием закрытого ключа, который принадлежит разработчику приложения. Эти две операции выполняются плагином Gradle без использования каких-либо внешних инструментов. Ключ разработчика, однако, получен из хранилища ключей, управляемого keytool.
Наконец, c файлом архива делается несколько оптимизаций с использованием инструмента zipalign, чтобы убедиться, что память, которую приложение потребляет во время работы, сведена к минимуму. На данный момент архивный файл является допустимым APK, который может использоваться операционной системой Android.
3. Анализ содержания APK
Теперь, когда вы понимаете, как файлы APK создаются и используются, давайте откроем их и посмотрим на его содержимое. В этом уроке мы используем APK приложения под названием Sample Soft Keyboard, которое предварительно устанавливается на эмулятор Android. Однако, если вы предпочитаете использовать физическое устройство, вы можете так же легко использовать APK любого приложения, которое вы установили на нем.
Шаг 1: Перенос APK на компьютер
Чтобы проверить содержимое APK, вы должны перенести его с эмулятора на свой компьютер. Прежде чем вы это сделаете, вам нужно знать имя пакета и абсолютный путь APK. Используйте adb , чтобы открыть сеанс оболочки на вашем эмуляторе.
Когда вы увидите приглашение оболочки, используйте команду pm list , чтобы отобразить имена пакетов для всех установленных приложений.
Название пакета приложения, которое нас интересует, это com.example.android.softkeyboard. Вы должны увидеть его в списке. Передав имя пакета команде pm path , вы можете определить абсолютный путь APK.
Вывод команды выше выглядит следующим образом:
Теперь, когда вы знаете свой путь, вы можете выйти из оболочки и перенести APK на свой компьютер с помощью команды adb pull . Приведенная ниже команда передает его в каталог вашего компьютера /tmp:
Шаг 2: Извлечение содержимого APK
Ранее в этом уроке вы узнали, что APK — это ни что иное, как сжатый файл архива. Это означает, что вы можете использовать менеджер архива по умолчанию для своей операционной системы. Если вы используете Windows, вы можете сначала изменить расширение файла с .apk на .zip. После извлечения содержимого APK вы должны иметь возможность видеть файлы внутри APK.


Если вы разработчик приложений, многие файлы в APK должны выглядеть знакомыми. Однако, помимо изображений в папке res, файлы находятся в формате, с которым вы не можете работать без помощи нескольких инструментов.
Шаг 3: Расшифровка двоичных файлов XML
Android SDK включает в себя все инструменты, необходимые для анализа содержимого APK. Вы узнали ранее, что aapt используется для упаковки ресурсов XML во время процесса сборки. Он также может использоваться для чтения большого количества информации из APK.
Например, вы можете использовать опцию dump xmltre e для чтения содержимого любого двоичного XML-файла в APK. Вот как вы можете прочитать файл макета с именем res/layout/input.xml:
Результат должен выглядеть примерно так:
Это не XML, но благодаря отступу и ярлыкам, например N для пространства имен, E для элемента и атрибуту A, вы должны быть в состоянии прочитать его.
Шаг 4: Расшифровка строк
На предыдущем шаге вы видели, что дешифрованный XML имеет шестнадцатеричные числа вместо строк. Эти числа являются ссылками на строки в файле с именем resources.arsc, который представляет собой таблицу ресурсов приложения.
Вы можете использовать параметр dump resources для aapt для просмотра таблицы ресурсов. Вот как:
Из вывода команды вы можете определить точные значения строк, используемых в приложении. Вот запись для одного из шестнадцатеричных чисел в XML:
Шаг 5: Разборка Dalvik Bytecode
Наиболее важным файлом в APK является class.dex. Это файл, который используется во время работы приложения Android во время запуска приложения. Он содержит байт-код Dalvik, сгенерированный во время процесса сборки.
Разбрав этот файл, вы можете получить информацию о классах Java, используемых в приложении. Для этого вы можете использовать инструмент, называемый dexdump. С помощью следующей команды вы можете перенаправить вывод файла dexdump в файл, который может быть открыт любым текстовым редактором.
Если вы откроете classes.dasm, вы увидите, что у него есть сотни строк низкоуровневого кода, который выглядит так:


Излишне говорить, что это очень сложно. К счастью, вы можете изменить выходной формат dexdump в XML с помощью опции -l . С помощью следующей команды вы можете перенаправить свой вывод в файл, который можно открыть в браузере.
Объем информации, доступной в формате XML, меньше, но дает вам представление о классах Java, методах и полях, присутствующих в приложении.


Заключение
В этом уроке вы узнали, как создается APK и что он содержит. Вы также узнали, как использовать инструменты, доступные в Android SDK, для расшифровки содержимого файлов APK. Документации об этих инструментах не так много, но поскольку все они с открытым исходным кодом, вы можете попробовать прочитать их подробный код с комментариями, чтобы узнать о них больше.
Если вы ищете что-то более простое в использовании, вы можете попробовать использовать популярные сторонние инструменты, такие как dex2jar, который генерирует более читаемый дизассемблированный код или JADX, декомпилятор, который может генерировать Java-код.