Skip to content

Latest commit

 

History

History
194 lines (155 loc) · 11.5 KB

RUSSIAN_README.md

File metadata and controls

194 lines (155 loc) · 11.5 KB

Android Remote Debugger

API License Android Arsenal

Android Remote Debugger - это библиотека для удаленной отладки Android приложений. Она позволяет просматривать логи, базы данных, shared preferences и сетевые запросы прямо в браузере.

Выберите язык

English

Русский

Возможности

  • Logging
    • Просматривать логи Вашего приложения
    • Фильтровать логи по приоритету и тегам
    • Выполнять поиск
    • Скачивать логи
    • Логировать ошибки при краше приложения
  • Database
    • Просмотр всех баз данных
    • Редактировать записи базы данных
    • Удалять записи базы данных
    • Выполнять поиск по всем данным
    • Выполнять любой sql-запрос для получения, добавления, обновления или удаления данных
  • SharedPreferences
    • Просмотр всех данных
    • Редактировать, добавлять и удалять данные
    • Выполнять поиск по всем данным
  • Network
    • Просматривать все сетевые запросы и ответы в удобном формате
    • Фильтровать данные по коду ответа и ошибкам
    • Скачивать логи
    • Выполнять поиск по всем данным

Интеграция

Добавьте в корневой build.gradle следующий репозиторий:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Добавьте в build.gradle вашего модуля следующую зависимость:

dependencies {
    debugImplementation 'com.github.zerobranch.android-remote-debugger:debugger:1.1.2'
    releaseImplementation 'com.github.zerobranch.android-remote-debugger:noop:1.1.2'
}

Примечание: В последней строке выше будет использоваться no-op версия, которая ничего не делает. Её следует использовать только в релизных сборках. Это делает невозможным запуск сервера в релизной сборке.

Как использовать ?

Android Remote Debugger имеет 4 раздела:

  • Logging
  • Database
  • Shared Preferences
  • Network

Для работы разделов Logging, Database и Shared Preferences необходимо выполнить несколько шагов:

  1. Вызвать: AndroidRemoteDebugger.init(applicationContext) в коде приложения.

  2. После запуска Вашего приложения, Вы получите уведомление в панели уведомлений, в котором будет указана ссылка типа: http://xxx.xxx.x.xxx:8080. Просто перейдити по этой ссылке в вашем браузере. Также в logcat будет добавлена запись: D/AndroidRemoteDebugger: Android Remote Debugger is started. Go to: http://xxx.xxx.x.xxx:8080

  3. Чтобы просматривать логи в разделе Logging необходимо вызывать статические методы AndroidRemoteDebugger.Log в любом месте вашего приложения, например, AndroidRemoteDebugger.Log.d("tag", "message") или AndroidRemoteDebugger.Log.log(priority, tag, msg, throwable) с указанием всех параметров.

  4. Чтобы просматривать логи сети в разделе Network, необходимо использовать библиотеку OkHttp3 и добавить интерцептор NetLoggingInterceptor. Для получения достоверных данных, рекомендуется добавить его последним, после других интерцепторов.

OkHttpClient client = new OkHttpClient.Builder()
    .addInterceptor(new NetLoggingInterceptor())
    .build();

Внимание

  • Ваше Android устройство и компьютер должны быть подключены к одной сети (Wi-Fi или LAN).
  • Вы также можете использовать отладку через usb или Android Default Emulator. Для этого запустите команду: adb forward tcp:8080 tcp:8080 и перейдити по адресу: http://localhost:8080 или http://0.0.0.0:8080 в Вашем браузере.
  • Если вы используете Android Default Emulator, то возможно Вам также потребуется включить мобильный интернет и отключить WI-FI.

Скриншоты

Logging

logging.png

Database

database_1.png

database_2.png

Network

network_1.png

network_2.png

network_3.png

Shared Preferences

shared_preferences.png

Дополнительная настройка

Для дополнительной настройки библиотеки используйте AndroidRemoteDebugger.Builder

AndroidRemoteDebugger.init(
    new AndroidRemoteDebugger.Builder(applicationContext)
        .enabled(boolean)
        .disableInternalLogging()
        .enableDuplicateLogging()
        .disableJsonPrettyPrint()
        .disableNotifications()
        .excludeUncaughtException()
        .port(int)
        .build()
);

Описание параметров AndroidRemoteDebugger.Builder

Все параметры для AndroidRemoteDebugger.Builder являются необязательными. Для стандартной работы библиотеки достаточно вызвать AndroidRemoteDebugger.init(applicationContext).

.enabled(boolean) - управление включением
.disableInternalLogging() - отключить внутренние логи Android Remote Debugger
.disableJsonPrettyPrint() - отключение форматирования json в разделах `Logging` и `Network`
.disableNotifications() - отключить показ уведомлений статуса работы Android Remote Debugger
.excludeUncaughtException() - исключить печать логов при краше приложения
.port(int) - использовать другой порт, отличный от 8080
.enableDuplicateLogging() - все логи из раздела `Logging` будут также напечатаны в logcat
.enableDuplicateLogging(new Logger() { - callback для получения всех логов из раздела `Logging`
    @Override
    public void log(int priority, String tag, String msg, Throwable th) {
    }
})

Интерцептор NetLoggingInterceptor имеет два конструктора: пустой и с callback'ом для получения всех логов из раздела Network

new NetLoggingInterceptor(new NetLoggingInterceptor.HttpLogger() {
    @Override
    public void log(HttpLogModel httpLogModel) {
    }
})

Описание параметров страницы Logging

logging_2.png

  1. Выбор уровня логирования
  2. Отфильтровать логи по тегу
  3. Включить/отключить автоскролл при получении новых логов
  4. Перейти в начало списка
  5. Перейти в конец списка
  6. Включить/отключить цвета для логов
  7. Удалить все логи

Примечание

  • Ссылку на страницу отладчика можно также получить следующим образом: http://ip-адрес-вашего-android-устройства:порт (ip-адрес-вашего-android-устройства можно посмотреть в настройках Вашего устройства).
  • Если вы используете отладку через usb или Android Default Emulator и хотите использовать другой порт, например, 8081, то нужно запустить следующую команду: adb forward tcp:8081 tcp:8081.
  • Чтобы использовать данную библиотеку на одном Android устройстве для двух приложений одновременно, нужно ипользовать разные порты.

R8 / ProGuard

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

Если вы не используете R8, то Вам необходимо включить следующие правила:

-keep class zerobranch.androidremotedebugger.source.models.** { *; }
-keep class zerobranch.androidremotedebugger.source.local.LogLevel

Вам также могут потребоваться правила от OkHttp3 и Gson, которые являются зависимостями этой библиотеки.

License

Copyright 2020 Arman Sargsyan

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.