Инструменты отладки Android – Devcolibri

Инструменты отладки Android

Инструменты отладки Android

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

В Techery мы использовали много разных инструментов отладки, и у каждого из них есть свои преимущества. Мы сделали обзор и делимся нашим опытом использования нескольких инструментов. Надеемся, что эта статья поможет вам решить, какой из них использовать:

  • Android Profiler — профилировщик Android Studio;
  • Facebook Stetho — ADB для Android-приложений;
  • DebugDrawer — отладочная навигационная панель в приложении для быстрой отладки;
  • AppSpector — инструмент отладки для Android и iOS.

Android Studio Profiler

Инструмент Android Profiler предоставляет данные в реальном времени, которые помогут вам профилировать сетевой уровень и понять, как приложение использует ресурсы процессора, памяти и батареи.

Возможности

Окно профилировщика показывает загрузку процессора, памяти, сети и батареи и выглядит следующим образом:

Профилировщик

Мониторинг сети

Если вы щёлкнете по временной шкале сети, то увидите подробную информацию о запросах:

Сеть

В окне выше есть вкладка «Connection View», в которой отображается список запросов с размером, временем, состоянием, запросом и ответом.

Проверка памяти

Профилировщик памяти показывает график использования ОЗУ и выглядит следующим образом:

Память

Используя эту функциональность, вы можете найти функции, которые создают дополнительные объекты и мешают сборке мусора.

Расширенное профилирование

Вы можете отредактировать настройки запуска (Run configuration) вашего приложения, чтобы включить расширенное профилирование:

Run configuration

Характеристики, предоставляемые расширенным профилированием:

  • Все окна профилировщика поддерживают временную шкалу.
  • Memory Profiler показывает количество выделенных объектов.
  • Memory Profiler показывает события сборки мусора.
  • Network Profiler показывает подробную информацию обо всех передаваемых файлах.

Плюсы

  • Профилировщик Android Studio работает «из коробки», и вам не нужно интегрировать сторонние зависимости в ваш проект.
  • Доступные проверки (сеть, процессор, память, энергия) показывают исчерпывающую информацию о вашем приложении.
  • Хорошая реализация мониторинга сети: можно выбрать временные рамки и тщательно проверять запросы.

Минусы

  • Нет профилировщика для базы данных, что заставляет использовать сторонние инструменты.

Facebook Stetho

Stetho — это ADB для Android, который позволяет получить доступ к инструментам разработчика Chrome для проверки вашего приложения.

Интеграция

Чтобы загрузить библиотеку Stetho в свой проект, добавьте следующую строку в блок зависимостей:

implementation 'com.facebook.stetho:stetho:1.5.0'
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.0'

Для инициализации Stetho вы должны добавить следующую строку в метод onCreate() класса Application вашего приложения:

Stetho.initializeWithDefaults(this);

Чтобы Stetho смог отображать данные сети с помощью OkHttp-клиента, вы должны добавить такой перехватчик:

new OkHttpClient.Builder()
    .addNetworkInterceptor(new StethoInterceptor())
    .build()

Возможности

Stetho позволяет вам просматривать уровни сети и хранилища вашего приложения:

Stetho

Мониторинг сети

Вкладка «Network» показывает таблицу с запросами и выглядит следующим образом:

Network

В таблице показан статус, тип, время, размер и метод каждого запроса. Нужно просто нажать на строку, чтобы увидеть подробную информацию:

Подробная информация

Мониторинг баз данных

Вкладка «Resource» показывает таблицу SQLite вашего приложения и выглядит следующим образом:

Resource

Это окно представляет собой простую таблицу без поиска и пагинации. Там могут быть ошибки: например, на скриншоте выше вы можете увидеть два столбца id.

Пример проекта

Вы можете найти образец проекта здесь.

Плюсы

  • Это бесплатный инструмент.
  • Он позволяет проверять уровни сети и хранилища.
  • Чтобы проверить базу данных Realm, вы можете установить библиотеку Stetho-Realm.

Минусы

  • Ошибки.
  • Уродливый пользовательский интерфейс.
  • Не очень богатая функциональность.

DebugDrawer

Это инструмент, который позволяет интегрировать отладочную навигационную панель в ваше приложение.

Интеграция

Для загрузки DebugDrawer необходимо добавить следующую строку в блок зависимостей файла build.gradle:

debugImplementation ‘io.palaima.debugdrawer:debugdrawer:0.8.0

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

implementation 'io.palaima.debugdrawer:debugdrawer-okhttp3:0.8.0'

Чтобы инициализировать DebugView, вы должны добавить следующие строки в метод onCreate() вашей Activity:

SwitchAction switchAction = new SwitchAction("Test switch", new SwitchAction.Listener() {
 @Override
 public void onCheckedChanged(boolean value) {
  Toast.makeText(MainActivity.this, "Switch checked", Toast.LENGTH_LONG).show();
 }
});

ButtonAction buttonAction = new ButtonAction("Test button", new ButtonAction.Listener() {
 @Override
 public void onClick() {
  Toast.makeText(MainActivity.this, "Button clicked", Toast.LENGTH_LONG).show();
 }
});

SpinnerAction < String > spinnerAction = new SpinnerAction < > (
 Arrays.asList("First", "Second", "Third"),
 new SpinnerAction.OnItemSelectedListener < String > () {
  @Override public void onItemSelected(String value) {
   Toast.makeText(MainActivity.this, "Spinner item selected - " + value, Toast.LENGTH_LONG).show();
  }
 }
);

debugDrawer = new DebugDrawer.Builder(this)
 .modules(
  new ActionsModule(switchAction, buttonAction, spinnerAction),
  new FpsModule(Takt.stock(getApplication())),
  new LocationModule(this),
  new ScalpelModule(this),
  new TimberModule(),
  new OkHttp3Module(okHttpClient),
  new PicassoModule(picasso),
  new GlideModule(Glide.get(getContext())),
  new DeviceModule(this),
  new BuildModule(this),
  new NetworkModule(this),
  new SettingsModule(this)
 ).build();

Возможности

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

Отладочная навигационная панель

DebugDrawer позволяет быстро проверить информацию о вашем устройстве, изменить настройки или «подделать» ваше местоположение.

Мониторинг сети

DebugView использует библиотеку Chuck внутри себя и позволяет вам проверять сетевые запросы:

Chuck

Библиотека Chuck показывает список всех запросов и позволяет вам посмотреть их подробности.

Пример проекта

Вы можете посмотреть пример здесь.

Плюсы

  • DebugDrawer даёт вам быстрый доступ к информации и настройкам устройства, позволяет имитировать местоположение и состояние сетевого подключения.

Минусы

  • Довольно трудно проверять сетевой запрос на экране мобильного устройства.
  • Нет возможности проверки уровня базы данных.

AppSpector

AppSpector — это сервис для отладки приложений на iOS и Android, который позволяет удаленно проверять и контролировать свои приложения в режиме реального времени с помощью простого интерфейса. Полная документация доступна здесь.

Интеграция

Чтобы начать работу с AppSpector, вам нужно пройти простую регистрацию и создать свой проект.

Чтобы интегрировать AppSpector в ваше приложение, вы должны изменить файл build.gradle следующим образом:

buildscript {
    repositories {
        jcenter()
        google()
        maven {
            url "https://maven.appspector.com/artifactory/android-sdk"
        }
    }

    dependencies {
        classpath "com.appspector:android-sdk-plugin:1.+"
    }
}

apply plugin: 'com.android.application'
// Добавьте плагин AppSpector после плагина Android
apply plugin: 'com.appspector.sdk'

repositories {
    maven {
        url "https://maven.appspector.com/artifactory/android-sdk"
    }
}

dependencies {
    implementation "com.appspector:android-sdk:1.+"
}

Инициализируйте AppSpector в методе onCreate() в классе Application вашего приложения:

AppSpector
        .build(this)
        .withDefaultMonitors()
        .run("android_OGMyYzA3NGYtNDkxNy00ZWRiLTgxOTktNjQ5YjIzMTZjOWM4");

Возможности

Когда вы запустите ваше приложение, будет создан новый сеанс, и вы увидите его в главном окне AppSpector в браузере:

AppSpector

Когда вы нажимаете на определённую сессию, вы можете проверить своё приложение, используя различные мониторы.

Проверка производительности

В окне «Performance» отображаются графики с различными показателями, такими как ЦП, память, сеть, диск, FPS и батарея.

Performance

Этот монитор помогает обнаружить утечки ресурсов, использование диска и FPS.

Мониторинг сети

Монитор сети показывает таблицу с запросами. Вы можете нажать на определённую строку, чтобы увидеть подробную информацию о запросе и ответе:

Сеть

В этом окне также есть функции поиска, фильтрации и экспорта.

Сеть

Их очень удобно использовать, если приложение большое.

Мониторинг базы данных

Монитор SQLite позволяет вам мониторить базу данных и вызывать SQL-запросы.

Монитор SQLite

Определённую запись легко найти, т.к. в этом мониторе несколько страниц.

Плюсы

  • Отличный пользовательский интерфейс. Можете посмотреть демо здесь.
  • Сеансом легко поделиться с коллегами по команде, просто скопировав URL-адрес из браузера и отправив его.
  • AppSpector поддерживает две платформы: iOS и Android.

Минусы

  • Пробный период — 14 дней.

Перевод статьи «Android debug tools»

ПОХОЖИЕ ПУБЛИКАЦИИ

1236
26/09/2019

0 комментариев к статье "Инструменты отладки Android"

Добавить комментарий

Сайт использует cookie-файлы для того, чтобы вам было удобнее им пользоваться. Для продолжения работы с сайтом, вам необходимо принять использование cookie-файлов.

Я ознакомлен(а)