Прикладное adb (Android Debug Bridge) для зумеров

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

В этой инструкции хочу рассказать о командах adb, которые использовать легче, чем делать то же самое через UI Android Studio или настройки Android.

Основная задача — показать возможности adb, которые избавят от рутинных шагов при разработке/отладке. Например, позволят быстро переключать светлую тему на темную.

Рассмотрим те команды, которые действительно пригождаются хотя бы раз в пару дней. Для остального есть документация.

Денис Долгополов

Блог об Android разработке — https://t.me/dolgo_polo_dev

Что такое ADB

adb (Android Debug Bridge) — это программа для управления андроидом через командную строку.

Hidden text

https://developer.android.com/tools/adb — тут есть более правильное определение + объяснение, почему adb называют клиент-серверным приложением.

Сменить тему (светлая/темная)

// перейти на темную тему
adb shell cmd uimode night yes

// перейти на светлую тему
adb shell cmd uimode night no

Принудительная остановка приложения

  adb shell am force-stop ru.test.app

Удалить кэш и данные приложения

adb shell pm clear

Включить/выключить Wi-Fi

adb shell svc wifi enable
adb shell svc wifi disable

Удалить файл

Без root-прав некоторые директории будут недоступны через adb

adb shell rm  "/records/albums/music.mp3"

Отправить Intent

Пригождается, когда нужно сэмулировать Intent от системы:

adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n ru.app.test/ru.app.test.featureName.TestBroadcastReceiver

Отправить deeplink:

adb shell am start -a android.intent.action.VIEW -d "mydeeplink"

Или запустить Activity:

adb shell am start -n ru.test.app/.feature.main.MyActivity

Установить proxy ip

Если вы пользуетесь Charles/Proxyman или другой программой для работы с трафиком, то можете быстро установить proxy ip командой:

adb shell settings put global http_proxy 192.168.1.12:8888

Сбросить proxy ip:

adb shell settings put global http_proxy :0

Изменить плотность экрана

Удобно для тестирования UI на разных разрешениях:

adb shell wm density 160

например
adb shell wm density 160

Узнать, какая изначальная плотность экрана:

adb shell wm density 

// Physical density: 440
// Override density: 160

Установить apk

 adb install -d -r -g "C://downloads/.../test.apk"

аргументы (лишние убрать):

  • -r — сохранить данные приложения (например, информацию в shared preferences)

  • -g — выдать все разрешение, запрашиваемые в манифесте

  • -d — отключает проверку версии приложения (по умолчанию версия устанавливаемого приложения должна быть равна или больше версии установленного)

Подключение по Wi-Fi

Необходимо, чтобы компьютер и телефон находились в одной сети. На Android нужно включить "Отладку по Wi-Fi" в настройках разработчика.

adb connect ip:port

например:
adb connect 192.168.1.12
или
adb connect 192.168.1.12:5555

Список подключенных устройств и их ip

adb devices

Выбор определенного устройства

Если вы работаете с несколькими устройствами, то чтобы отправить любую команду на определенное устройство (а не получать ошибку List of devices attached), можно передать аргумент -s ip

adb -s 192.168.1.12 uninstall ru.test.app

Заключение

Когда определите для себя топ удобных команд, можно сделать для них alias (псевдонимы для длинных команд). Тогда использование adb станет действительно удобнее, чем GUI.

Источник: https://habr.com/ru/articles/751092/


Интересные статьи

Интересные статьи

Эта статья посвящена настройке IDE для возможности запуска и отладки Django сервера. Статья нацелена на людей которые столкнулись с подобной проблемой и хотелось бы поделиться опытом, так как сам прош...
Настройка локального отладчика Xdebug в Docker для Laravel-приложения для PhpStorm IDE. Читать далее
Зачем нужны цели? Как их формулировать? Какие проблемы могут возникнуть? По случаю Я.Субботника Pro я подготовил доклад, основанный на нескольких годах опыта ведения целей для коман...
Для отладки PHP-программ часто используют Xdebug. Однако стандартных возможностей IDE и Xdebug не всегда достаточно. Часть проблем можно решить с помощью Xdebug proxy — pydbgpproxy, но всё же н...
С каждым новым поколением процессоров Intel появляются новые и все более сложные векторные инструкции. Хотя длина вектора (512 бит) в ближайшее время расти не будет, появятся новые типы данных и ...