Отладка готовых APK

Android Studio 3.0 и более поздних версий позволяет профилировать и отлаживать APK-файлы, для которых включена отладка, без необходимости создавать их из проекта Android Studio.

Чтобы начать отладку APK, выполните следующие действия:

  1. На экране приветствия Android Studio нажмите «Профиль» или «Отладка APK» .

    Если у вас уже открыт проект, нажмите «Файл» > «Профиль» или «Отладка APK» в строке меню.

  2. В открывшемся диалоговом окне выберите APK, который вы хотите импортировать в Android Studio.

  3. Нажмите ОК .

Если эта опция не отображается, убедитесь, что у вас включен плагин «Поддержка Android APK».

Затем Android Studio отображает распакованные файлы APK, как показано на рисунке 1. Это не полностью декомпилированный набор файлов, но он предоставляет файлы SMALI для более читаемой версии файлов DEX.

Импорт готового APK в Android Studio

Рисунок 1. Импорт готового APK в Android Studio.

Представление Android на панели «Проект» позволяет просматривать следующее содержимое вашего APK:

  • Файл APK: дважды щелкните APK, чтобы открыть анализатор APK.
  • манифесты: Содержит манифесты приложений, извлеченные из APK.
  • java: содержит код Kotlin или Java, который Android Studio дизассемблирует (в файлы SMALI) из файлов DEX вашего APK. Каждый файл SMALI в этом каталоге соответствует классу Kotlin или Java.
  • cpp: Если ваше приложение содержит собственный код, этот каталог содержит собственные библиотеки вашего APK (SO-файлы).
  • Внешние библиотеки: содержат Android SDK.

Вы можете использовать профилировщик Android , чтобы начать тестирование производительности вашего приложения.

Для отладки кода Kotlin или Java вашего приложения вам необходимо подключить исходные коды Kotlin или Java и добавить точки останова в исходные файлы Kotlin или Java. Аналогично, для отладки собственного кода необходимо прикрепить собственные символы отладки .

Прикрепите исходные коды Kotlin или Java.

По умолчанию Android Studio извлекает код Kotlin или Java из вашего APK и сохраняет его в виде файлов SMALI. Для отладки кода Kotlin или Java с использованием точек останова вам необходимо указать в среде IDE исходные файлы Kotlin или Java, соответствующие файлам SMALI, которые вы хотите отладить.

Чтобы прикрепить исходные коды Kotlin или Java, выполните следующие действия:

  1. Дважды щелкните файл SMALI на панели «Проект» в представлении Android . После открытия файла редактор отображает баннер с просьбой выбрать исходники Kotlin или Java: Прикрепите баннер с исходниками
  2. Нажмите «Прикрепить исходные коды Kotlin/Java...» на баннере в окне редактора.
  3. Перейдите в каталог с исходными файлами приложения Kotlin или Java и нажмите «Открыть» .

В окне «Проект» Android Studio заменяет файлы SMALI соответствующими исходными файлами Kotlin или Java. Android Studio также автоматически включает внутренние классы. Теперь вы можете добавлять точки останова и отлаживать свое приложение .

Прикрепите собственные символы отладки

Если ваш APK включает в себя собственные библиотеки (SO-файлы), которые не содержат символов отладки, Android Studio отображает баннер, аналогичный показанному на рисунке 1. Вы не можете отлаживать собственный код APK или использовать точки останова, не прикрепив отлаживаемый собственный код. библиотеки.

Чтобы подключить отлаживаемые собственные библиотеки, выполните следующие действия:

  1. Если вы еще этого не сделали, загрузите NDK и инструменты .
  2. В представлении Android в каталоге cpp окна проекта дважды щелкните файл собственной библиотеки, который не содержит символов отладки.

    В редакторе отображается таблица всех ABI, которые поддерживает ваш APK.

  3. Нажмите «Добавить» в правом верхнем углу окна редактора.

  4. Перейдите в каталог, содержащий отлаживаемые собственные библиотеки, которые вы хотите подключить, и нажмите «ОК» .

Если APK и собственные отлаживаемые библиотеки были созданы с использованием другой рабочей станции, вам также необходимо указать пути к локальным символам отладки, выполнив следующие действия:

  1. Добавьте локальные пути к отсутствующим символам отладки, отредактировав поле в столбце «Локальные пути» в разделе «Сопоставления путей» окна редактора, как показано на рисунке 2.

    В большинстве случаев вам нужно указать только путь к корневой папке, и Android Studio автоматически проверяет подкаталоги для сопоставления дополнительных источников. Android Studio также автоматически сопоставляет пути к удаленному NDK с локальной загрузкой NDK.

  2. Нажмите «Применить изменения» в разделе « Сопоставление путей» окна редактора.

Предоставление путей к локальным символам отладки

Рисунок 2. Локальные пути к символам отладки.

Собственные исходные файлы отображаются в окне проекта . Откройте эти исходные файлы, чтобы добавить точки останова и отладить приложение . Чтобы удалить сопоставления, нажмите «Очистить» в разделе « Сопоставления путей» окна редактора.

Известная проблема: при прикреплении символов отладки к APK APK-файл и отлаживаемый SO-файл должны быть собраны с использованием одной и той же рабочей станции или сервера сборки.

В Android Studio 3.6 и более поздних версиях вам не нужно создавать новый проект, если APK обновляется вне IDE. Android Studio обнаруживает изменения в APK и дает вам возможность повторно импортировать его.

Импортировать обновленный APK

Рис. 3. APK-файлы, обновленные вне Android Studio, можно повторно импортировать.

,

Android Studio 3.0 и более поздних версий позволяет профилировать и отлаживать APK-файлы, для которых включена отладка, без необходимости создавать их из проекта Android Studio.

Чтобы начать отладку APK, выполните следующие действия:

  1. На экране приветствия Android Studio нажмите «Профиль» или «Отладка APK» .

    Если у вас уже открыт проект, нажмите «Файл» > «Профиль» или «Отладка APK» в строке меню.

  2. В открывшемся диалоговом окне выберите APK, который вы хотите импортировать в Android Studio.

  3. Нажмите ОК .

Если эта опция не отображается, убедитесь, что у вас включен плагин «Поддержка Android APK».

Затем Android Studio отображает распакованные файлы APK, как показано на рисунке 1. Это не полностью декомпилированный набор файлов, но он предоставляет файлы SMALI для более читаемой версии файлов DEX.

Импорт готового APK в Android Studio

Рисунок 1. Импорт готового APK в Android Studio.

Представление Android на панели «Проект» позволяет просматривать следующее содержимое вашего APK:

  • Файл APK: дважды щелкните APK, чтобы открыть анализатор APK.
  • манифесты: Содержит манифесты приложений, извлеченные из APK.
  • java: содержит код Kotlin или Java, который Android Studio дизассемблирует (в файлы SMALI) из файлов DEX вашего APK. Каждый файл SMALI в этом каталоге соответствует классу Kotlin или Java.
  • cpp: Если ваше приложение содержит собственный код, этот каталог содержит собственные библиотеки вашего APK (SO-файлы).
  • Внешние библиотеки: содержат Android SDK.

Вы можете использовать профилировщик Android , чтобы начать тестирование производительности вашего приложения.

Для отладки кода Kotlin или Java вашего приложения вам необходимо подключить исходные коды Kotlin или Java и добавить точки останова в исходные файлы Kotlin или Java. Аналогично, для отладки собственного кода необходимо прикрепить собственные символы отладки .

Прикрепите исходные коды Kotlin или Java.

По умолчанию Android Studio извлекает код Kotlin или Java из вашего APK и сохраняет его в виде файлов SMALI. Для отладки кода Kotlin или Java с использованием точек останова вам необходимо указать в среде IDE исходные файлы Kotlin или Java, соответствующие файлам SMALI, которые вы хотите отладить.

Чтобы прикрепить исходные коды Kotlin или Java, выполните следующие действия:

  1. Дважды щелкните файл SMALI на панели «Проект» в представлении Android . После открытия файла редактор отображает баннер с просьбой выбрать исходники Kotlin или Java: Прикрепите баннер с исходниками
  2. Нажмите «Прикрепить исходные коды Kotlin/Java...» на баннере в окне редактора.
  3. Перейдите в каталог с исходными файлами приложения Kotlin или Java и нажмите «Открыть» .

В окне «Проект» Android Studio заменяет файлы SMALI соответствующими исходными файлами Kotlin или Java. Android Studio также автоматически включает внутренние классы. Теперь вы можете добавлять точки останова и отлаживать свое приложение .

Прикрепите собственные символы отладки

Если ваш APK включает в себя собственные библиотеки (SO-файлы), которые не содержат символов отладки, Android Studio отображает баннер, аналогичный показанному на рисунке 1. Вы не можете отлаживать собственный код APK или использовать точки останова, не прикрепив отлаживаемый собственный код. библиотеки.

Чтобы подключить отлаживаемые собственные библиотеки, выполните следующие действия:

  1. Если вы еще этого не сделали, загрузите NDK и инструменты .
  2. В представлении Android в каталоге cpp окна проекта дважды щелкните файл собственной библиотеки, который не содержит символов отладки.

    В редакторе отображается таблица всех ABI, которые поддерживает ваш APK.

  3. Нажмите «Добавить» в правом верхнем углу окна редактора.

  4. Перейдите в каталог, содержащий отлаживаемые собственные библиотеки, которые вы хотите подключить, и нажмите «ОК» .

Если APK и собственные отлаживаемые библиотеки были созданы с использованием другой рабочей станции, вам также необходимо указать пути к локальным символам отладки, выполнив следующие действия:

  1. Добавьте локальные пути к отсутствующим символам отладки, отредактировав поле в столбце «Локальные пути» в разделе «Сопоставления путей» окна редактора, как показано на рисунке 2.

    В большинстве случаев вам нужно указать только путь к корневой папке, и Android Studio автоматически проверяет подкаталоги для сопоставления дополнительных источников. Android Studio также автоматически сопоставляет пути к удаленному NDK с локальной загрузкой NDK.

  2. Нажмите «Применить изменения» в разделе « Сопоставление путей» окна редактора.

Предоставление путей к локальным символам отладки

Рисунок 2. Локальные пути к символам отладки.

Собственные исходные файлы отображаются в окне проекта . Откройте эти исходные файлы, чтобы добавить точки останова и отладить приложение . Чтобы удалить сопоставления, нажмите «Очистить» в разделе « Сопоставления путей» окна редактора.

Известная проблема: при прикреплении символов отладки к APK APK-файл и отлаживаемый SO-файл должны быть собраны с использованием одной и той же рабочей станции или сервера сборки.

В Android Studio 3.6 и более поздних версиях вам не нужно создавать новый проект, если APK обновляется вне IDE. Android Studio обнаруживает изменения в APK и дает вам возможность повторно импортировать его.

Импортировать обновленный APK

Рисунок 3. APK-файлы, обновленные вне Android Studio, можно повторно импортировать.