Подробное объяснение и использование рабочих команд ADB

Командная строка Android

ADB

1. Что такое АБР?

АБР, т.е.Android Debug Bridgeявляется инструментом командной строки, который позволяет эмулятору или подключению устройства Android для связи для связи, облегчая различные операции устройств, таких как установка и отладки приложений, а также обеспечениеUnix shell(который можно использовать для запуска различных команд на эмуляторе или подключенном устройстве). допустимыйAndroid SDK/platform-toolsнайти вadbинструмент или скачатьADB Kits.

Примечание:Поддержка некоторых команд может быть связана с версией системы Android и реализацией пользовательского ПЗУ.

Во-вторых, какая роль adb?

ADBдаAndroid SDKИнструмент в , с помощью которого вы можете напрямую работать и управлять эмуляторами Android или реальными устройствами Android. Его основные функции:

  • запускать команды оболочки на устройстве;
  • Установите локальное программное обеспечение APK на эмулятор или Android-устройство;
  • Управление предопределенными портами на устройстве или эмуляторе телефона;
  • Скопируйте или вставьте файл на устройство или эмулятор телефона.

ADBЯвляется客户端-服务器程序Программа состоит из трех компонентов:

  • клиент: Компонент отправляет команду. Клиент работает на компьютере разработки. Вы можете вызвать клиент из терминала командной строки, введя команду adb.
  • фоновая программа: этот компонент запускает команды на устройстве. Демоны работают как фоновые процессы на каждом экземпляре эмулятора или устройства.
  • сервер: этот компонент управляет связью между клиентом и демоном. Сервер работает как фоновый процесс на компьютере разработчика.

Три, синтаксис команды ADB

Основной синтаксис команды adb следующий:

adb [-d|-e|-s <serial-number>] <command>

Подключение одного устройства/эмулятора

Если подключено только одно устройство/эмулятор, его можно не указывать[-d|-e|-s <serial-number>]В этой части используйте непосредственноadb <command>.

Несколько подключений устройств/эмуляторов

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

параметр имея в виду
-d Укажите единственное в настоящее время подключенное Android-устройство через USB в качестве цели команды
-e Укажите единственный запущенный в данный момент эмулятор в качестве цели команды
-s <serial-number> Укажите устройство/эмулятор с соответствующим серийным номером устройства в качестве цели команды.

Чаще используется в случае нескольких подключений устройств/эмуляторов.-s <serial-number>параметр,serial-numberОтносится к серийному номеру устройства, доступ к которому можно получить черезadb devicesприобретение команды.

В-четвертых, общие команды ADB

4.1 Основные команды

4.1.1 Просмотр информации о версии adb

adb version

4.1.2 Пуск adb

adb start-server

Как правило, нет необходимости выполнять эту команду вручную.Если при выполнении команды adb будет обнаружен незапущенный сервер adb, он будет активирован автоматически.

4.1.3 Остановить рекламу

adb kill-server

4.1.4 Запуск adbd с привилегиями root

adb root

4.1.5 Укажите сетевой порт сервера adb

adb -P <port> start-server

Порт по умолчанию для ADB — 5037.

4.1.5 Запрос списка подключенных устройств/эмуляторов

adb devices

4.2 Управление подключением устройств

4.2.1 USB-соединение

Через USB-соединение в обычном использовании ADB требуется следующие шаги:

  1. Убедитесь, что состояние оборудования нормальное (в том числе устройство Android нормально включено, а кабель USB и различные интерфейсы в хорошем состоянии).
  2. На Android-устройстве включены параметры разработчика и режим отладки по USB (отладку по USB можно включить в «Настройки» — «Параметры разработчика» — «Отладка по USB»).
  3. Подтвердите нормальное состояние драйвера устройства (установите драйвер ADB).
  4. Подтвердите статус после подключения компьютера и устройства через USB-кабель.
  5. пройти черезadb devicesКоманда для проверки состояния подключения устройства.

4.2.2 Соединение WLAN (требуется USB-кабель)

Следующие шаги необходимы для правильного использования adb через соединение WiFi через USB: Шаги:

  1. Подключите ваше Android-устройство к тому же Wi-Fi, что и компьютер, на котором вы хотите запустить adb.
  2. Подключите устройство к компьютеру через USB-кабель (черезadb devicesкоманду для проверки подключения устройства).
  3. пройти черезadb tcpip 5555Команда, чтобы заставить устройство прослушивать соединения TCP/IP через порт 5555.
  4. Отключите USB-соединение.
  5. Найдите IP-адрес устройства (проверить IP-адрес можно в «Настройки» — «О телефоне» — «Информация о состоянии» — «IP-адрес»).
  6. пройти черезadb connect <device-ip-address>Команда использует IP-адрес для подключения устройства Android к компьютеру.
  7. пройти черезadb devicesКоманда для проверки состояния подключения устройства.
  8. После использования можно пройтиadb disconnect <device-ip-address>команда для отключения беспроводного соединения.

4.2.3 Соединение WLAN (без использования USB-кабеля)

Примечание. Требуются права root.Следующие шаги необходимы для правильного использования adb через соединение WiFi без USB:

  1. Установите эмулятор терминала на Android-устройство (доступно черезTerminal Emulator for Android Downloadsскачать).
  2. Подключите ваше Android-устройство к тому же Wi-Fi, что и компьютер, на котором вы хотите запустить adb.
  3. Откройте эмулятор терминала на Android-устройстве и последовательно выполните команды:
su
setprop service.adb.tcp.port 5555
  1. Найдите IP-адрес устройства (проверить IP-адрес можно в «Настройки» — «О телефоне» — «Информация о состоянии» — «IP-адрес»).
  2. пройти черезadb connect <device-ip-address>Команда использует IP-адрес для подключения устройства Android к компьютеру.
  3. пройти черезadb devicesКоманда для проверки состояния подключения устройства.

4.2.4 Подключение WiFi к USB-подключению

пройти черезadb usbКоманда для перезапуска ADB в режиме USB:

adb usb

4.3 Управление приложениями

4.3.1 Просмотр списка приложений

Основной формат команды для просмотра списка приложений:

adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

adb shell pm list packagesЗа ним могут следовать некоторые необязательные параметры для фильтрации для просмотра различных списков.Доступные параметры и их значения следующие:

параметр показать список
без Все приложения
-f Показать файл apk, связанный с приложением
-d Показать только отключенные приложения
-e Показать только включенные приложения
-s Показать только системные приложения
-3 Показывать только сторонние приложения
-i Показать установщик приложения
-u Включить удаленные приложения
<filter> имя пакета содержит<filter>нить
4.3.1.1 Просмотр всех приложений
adb shell pm list packages
4.3.1.2 Просмотр системных приложений
adb shell pm list packages -s
4.3.1.3 Просмотр сторонних приложений
adb shell pm list packages -3
4.3.1.4 Приложения, имя пакета которых содержит строку

Например, чтобы увидеть, что имя пакета содержит строкиhuaweiСписок приложений, команда:

adb shell pm list packages huawei

4.3.2 Установите приложение

Основной формат команды для установки приложения:

adb install [-l] [-r] [-t] [-s] [-d] [-g] <apk-file>

adb installЗа ним могут следовать некоторые необязательные параметры для управления процессом установки APK.Доступные параметры и их значения следующие:

параметр имея в виду
-l Установите приложение в каталог защиты /mnt/asec
-r Разрешить установку покрытия
-t Разрешить установку, указанную приложением в AndroidManifest.xmlandroid:testOnly="true"Приложения
-s установить приложение на SD-карту
-d Разрешить понижение версии для перезаписи установки
-g Предоставить все разрешения во время выполнения

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

  • Success: указывает, что установка прошла успешно.
  • Failure: указывает, что установка не удалась. Есть много ситуаций, в которых установка APK не удалась,FailureЗа состоянием следует выходной код ошибки установки. Общие выходные коды сбоев при установке, значения и возможные решения следующие:
выходной код имея в виду Решение
INSTALL_FAILED_ALREADY_EXISTS Приложение уже существует или удалено, но не полностью adb installиспользовать, когда-rпараметр или первыйadb uninstall <packagename>переустановить
INSTALL_FAILED_INVALID_APK Неверный APK-файл
INSTALL_FAILED_INVALID_URI Недопустимое имя APK-файла Убедитесь, что в имени файла APK нет китайского языка.
INSTALL_FAILED_INSUFFICIENT_STORAGE недостаточно пространства чистое пространство
INSTALL_FAILED_DUPLICATE_PACKAGE Программа с таким названием уже существует
INSTALL_FAILED_NO_SHARED_USER Запрошенный общий пользователь не существует
INSTALL_FAILED_UPDATE_INCOMPATIBLE Приложение с таким названием было установлено ранее, но данные не удаляются при удалении; или приложение было установлено, но подпись не соответствует Первыйadb uninstall <packagename>переустановить
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE Запрошенный общий пользователь существует, но подписи несовместимы
INSTALL_FAILED_MISSING_SHARED_LIBRARY Инсталляционный пакет с использованием устройства с общей библиотекой непригоден для использования
INSTALL_FAILED_REPLACE_COULDNT_DELETE Не могу удалить при замене
INSTALL_FAILED_DEXOPT Ошибка проверки оптимизации dex или недостаточно места
INSTALL_FAILED_OLDER_SDK Версия системы устройства ниже требований приложения
INSTALL_FAILED_CONFLICTING_PROVIDER Поставщик контента с тем же именем, что и у приложения, уже существует на устройстве.
INSTALL_FAILED_NEWER_SDK Версия системы устройства выше требований приложения
INSTALL_FAILED_TEST_ONLY Приложение только тестовое, но не было указано при установке-tпараметр
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE Собственный код, содержащий бинарный интерфейс приложения для процессора несовместимого устройства.
INSTALL_FAILED_MISSING_FEATURE Приложение использует функцию, недоступную на устройстве
INSTALL_FAILED_CONTAINER_ERROR 1. Ошибка доступа к SD-карте;
2. Подпись приложения совпадает с подписью ПЗУ и считается встроенным приложением.
1. Подтвердите наличие SD-карты или установите ее во встроенное хранилище;
2. Не упакован с той же подписью, что и ПЗУ.
INSTALL_FAILED_INVALID_INSTALL_LOCATION 1. Невозможно установить в указанное место;
2. Подпись приложения совпадает с подписью ПЗУ и считается встроенным приложением.
1. Переключите место установки, добавьте или удалите-sпараметр;
2. Не упакован с той же подписью, что и ПЗУ.
INSTALL_FAILED_MEDIA_UNAVAILABLE Место установки недоступно Обычно SD-карта, подтвердите, что SD-карта доступна или установлена ​​во встроенное хранилище.
INSTALL_FAILED_VERIFICATION_TIMEOUT Время проверки установочного пакета истекло
INSTALL_FAILED_VERIFICATION_FAILURE Не удалось проверить пакет установки
INSTALL_FAILED_PACKAGE_CHANGED Приложение не соответствует тому, что ожидает вызывающая программа
INSTALL_FAILED_UID_CHANGED Приложение было установлено ранее и не соответствует присвоенному на этот раз UID. Удалите остаточные файлы из предыдущих установок
INSTALL_FAILED_VERSION_DOWNGRADE Более поздняя версия приложения уже установлена использовать-dпараметр
INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE Установлено одноименное приложение, поддерживающее разрешения среды выполнения в целевом пакете SDK, а устанавливаемая версия не поддерживает разрешения среды выполнения.
INSTALL_PARSE_FAILED_NOT_APK Указанный путь не является файлом или не начинается с.apkконец
INSTALL_PARSE_FAILED_BAD_MANIFEST Неразбираемый файл AndroidManifest.xml
INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION Парсер обнаружил исключение
INSTALL_PARSE_FAILED_NO_CERTIFICATES Инсталляционный пакет не подписан
INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES Приложение уже установлено, и подпись не соответствует APK-файлу. Удалите приложение на своем устройстве перед его установкой
INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING Обнаружено при разборе APK-файлаCertificateEncodingException
INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME В файле манифеста отсутствует или указано неверное имя пакета.
INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID В файле манифеста указан недопустимый общий идентификатор пользователя.
INSTALL_PARSE_FAILED_MANIFEST_MALFORMED Структурная ошибка при синтаксическом анализе файла манифеста
INSTALL_PARSE_FAILED_MANIFEST_EMPTY Не удалось найти активный тег (инструментарий или приложение) в файле манифеста.
INSTALL_FAILED_INTERNAL_ERROR Установка не удалась из-за системных проблем
INSTALL_FAILED_USER_RESTRICTED Пользователям запрещено устанавливать приложения
INSTALL_FAILED_DUPLICATE_PERMISSION Приложение попыталось определить уже существующее имя разрешения
INSTALL_FAILED_NO_MATCHING_ABIS Приложение содержит собственный код, который не поддерживается API устройства.
INSTALL_CANCELED_BY_USER Для установки приложения требуется подтверждение на устройстве, но устройство не использовалось или была нажата кнопка «Отмена». Согласен установить на устройство
INSTALL_FAILED_ACWF_INCOMPATIBLE Приложение несовместимо с устройством
INSTALL_FAILED_TEST_ONLY Файлы APK — это файлы, скомпилированные непосредственно RUN с использованием Android Studio. Перекомпилируйте с помощью аспирантов или ассемассы или ассематеристики Rickle, или генерируют подписанный APK
does not contain AndroidManifest.xml Неверный APK-файл
is not a valid zip file Неверный APK-файл
Offline Устройство не подключено успешно Сначала успешно подключите устройство с adb
unauthorized Устройство не авторизовано для отладки
error: device not found Нет подключенного устройства Сначала успешно подключите устройство с adb
protocol failure устройство отключено Сначала успешно подключите устройство с adb
Unknown option: -s Android 2.2 и ниже не поддерживают установку на SD-карту Не используйте-sпараметр
No space left on device недостаточно пространства чистое пространство
Permission denied ... sdcard ... SD-карта недоступна
signatures do not match the previously installed version; ignoring! Приложение уже установлено, а подпись несовместима Удалите приложение на своем устройстве перед его установкой

Ссылаться на:PackageManager.java

adb installНа самом деле это делается в три этапа:

  1. поместите файл apk в /data/local/tmp.
  2. Вызовите pm install для установки.
  3. Удалить / Data / Local / Coverence APK файлы в TMP.

4.3.3 Удаление приложения

Основной формат команды для удаления приложения:

adb uninstall [-k] <package-name>

<package-name>Указывает имя пакета приложения,-kПараметр является необязательным, что означает удаление приложения, но сохранение каталога данных и кеша.

4.3.4 Очистить данные приложения и кеш

adb shell pm clear <package-name>

<package-name>Указывает пакет имени приложения.Эффект этой команды эквивалентен нажатию «Очистить кеш» и «Очистить данные» на информационном интерфейсе приложения в настройках.

4.3.5 Просмотр активности переднего плана

adb shell dumpsys activity activities | grep mFocusedActivity

4.3.6 Просмотр запущенных служб

adb shell dumpsys activity services [<package-name>]

<package-name>Параметры необязательны, укажите<package-name>Указывает на просмотр служб, связанных с именем пакета, а не указанный означает просмотр всех служб.<package-name>Нет необходимости указывать полное имя пакета, вы можете указать только его часть, тогда будут перечислены Услуги, связанные с данным именем пакета.

4.3.7 Просмотр сведений о приложении

adb shell dumpsys package <package-name>

<package-name>Указывает имя пакета приложения. Выходные данные выполнения этой команды содержат много информации, включая таблицу разрешения действий, зарегистрированных поставщиков контента, имя пакета, идентификатор пользователя, путь к установленному коду файлового ресурса, информацию о версии, информацию о разрешениях и статусе предоставления, информацию о версии подписи и т. д.

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

adb shell pm path <package-name>

4.4 Взаимодействие с приложением

Взаимодействие с приложением в основном с помощьюam <command>команда, общий<command>следующим образом:

command использовать
start [options] <intent> запускать<intent>указанная деятельность
startservice [options] <intent> запускать<intent>Указанный сервис
broadcast [options] <intent> Отправить<intent>указанная трансляция
force-stop <package-name> остановка<package-name>связанный процесс

<intent>Параметры очень гибки и соответствуют намерению в коде при написании программ Android.

Параметры, используемые для определения объекта INTENT, следующие:

параметр имея в виду
-a <action> Укажите действие, напримерandroid.intent.action.VIEW
-c <category> Укажите категорию, напримерandroid.intent.category.APP_CONTACTS
-n <component> Укажите полное имя компонента, чтобы явно указать, какое действие нужно запустить.

<intent>Он также может переносить данные, как Bundle при написании кода:

параметр имея в виду
--esn <extra-key> нулевое значение (только имя ключа)
-e|--es <extra-key> <extra-string-value> строковое значение
--ez <extra-key> <extra-boolean-value> логическое значение
--ei <extra-key> <extra-int-value> целочисленное значение
--el <extra-key> <extra-long-value> длинное значение
--ef <extra-key> <extra-float-value> плавающее значение
--eu <extra-key> <extra-uri-value> URI
--ecn <extra-key> <extra-component-name-value> component name
--eia <extra-key> <extra-int-value>[,<extra-int-value...] Целочисленный массив
--ela <extra-key> <extra-long-value>[,<extra-long-value...] длинный массив

4.4.1 Запустите приложение/вызов Activity

adb shell am start [options] <intent>

Например:

adb shell am start -a android.settings.SETTINGS                   # 打开系统设置页面
adb shell am start -a android.intent.action.DIAL -d tel:10086     # 打开拨号页面
adb shell am start -n com.android.mms/.ui.ConversationList        # 打开短信会话列表

options — это некоторые параметры, которые изменяют его поведение.Поддерживаемые необязательные параметры и их значения следующие:

Опции имея в виду
-D включить отладку
-W Дождитесь завершения запуска
--start-profiler file Запустите анализатор и отправьте результаты наfile
-P file Аналогично --start-profiler, но профилирование останавливается, когда приложение переходит в режим ожидания.
-R count Начинается повторяющаяся активность
-S Принудительно остановить целевое приложение перед запуском действия
--opengl-trace Включить трассировку функций OpenGL
--user user_id | current Указывает, от имени какого пользователя работать; если не указано, выполняется от имени текущего пользователя.

4.4.2 Вызов службы

adb shell am startservice [options] <intent>

Типичный вариант использования — если виртуальные ключи должны отображаться на устройстве, но это не так, попробуйте следующее:

adb shell am startservice -n com.android.systemui/.SystemUIService

4.4.3 Остановить службу

adb shell am stopservice [options] <intent>

4.4.4 Отправка трансляции

adb shell am broadcast [options] <INTENT>

Может транслироваться на все компоненты или только на указанные компоненты.

Например, транслировать на все компонентыBOOT_COMPLETED:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

Для другого примера, только дляcom.android.receiver.test/.BootCompletedReceiverтранслироватьBOOT_COMPLETED:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.android.receiver.test/.BootCompletedReceiver

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

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

action Время запуска
android.net.conn.CONNECTIVITY_CHANGE Изменения в сетевом подключении
android.intent.action.SCREEN_ON экран загорается
android.intent.action.SCREEN_OFF экран гаснет
android.intent.action.BATTERY_LOW Когда батарея разряжена, появится окно с подсказкой о низком заряде батареи.
android.intent.action.BATTERY_OKAY батарея восстановлена
android.intent.action.BOOT_COMPLETED Устройство запущено
android.intent.action.DEVICE_STORAGE_LOW Место для хранения слишком мало
android.intent.action.DEVICE_STORAGE_OK Восстановление дискового пространства
android.intent.action.PACKAGE_ADDED установлено новое приложение
android.net.wifi.STATE_CHANGE Статус соединения WiFi меняется
android.net.wifi.WIFI_STATE_CHANGED Состояние WiFi изменяется на включено/выключено/запускается/выключается/неизвестно
android.intent.action.BATTERY_CHANGED Изменения уровня заряда батареи
android.intent.action.INPUT_METHOD_CHANGED Метод ввода системы изменился
android.intent.action.ACTION_POWER_CONNECTED Подключение внешнего питания
android.intent.action.ACTION_POWER_DISCONNECTED Отключение внешнего питания
android.intent.action.DREAMING_STARTED Система начинает спать
android.intent.action.DREAMING_STOPPED Система перестает находиться в спящем режиме
android.intent.action.WALLPAPER_CHANGED изменения обоев
android.intent.action.HEADSET_PLUG подключи наушники
android.intent.action.MEDIA_UNMOUNTED размонтировать внешний носитель
android.intent.action.MEDIA_MOUNTED Подключить внешний носитель
android.os.action.POWER_SAVE_MODE_CHANGED режим энергосбережения включен

(Вышеуказанные трансляции могут быть запущены с помощью adb)

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

adb shell am force-stop <packagename>

4.4.6 Затянуть память

adb shell am send-trim-memory  <pid> <level>

Описание параметра:

  • pid: идентификатор процесса
  • level: Скрытый, Работает_умеренно, Фон, Работает_низко, Умеренно, Работает_критично, Завершено

4.5 Управление файлами

4.5.1 Загрузите указанный файл с эмулятора/устройства на компьютер

Основной формат команды для загрузки указанного файла с эмулятора/устройства на компьютер:

adb pull <remote> [local]

Описание параметра:

  • remote: путь к файлу в эмуляторе/устройстве
  • local: Каталог на компьютере, параметр можно не указывать, по умолчанию копируется в текущий каталог

Например, чтобы загрузить /sdcard/music.mp4 в текущий каталог вашего компьютера:

adb pull /sdcard/music.mp4

/sdcard/music.mp4, загруженный в текущий каталог вашего компьютера (каталог должен существовать):

adb pull /sdcard/music.mp4 D:\Download

4.5.2 Загрузить указанный файл с компьютера на эмулятор/устройство

Основной формат команды для загрузки указанного файла с компьютера на эмулятор/устройство:

adb push <local> <remote>

Описание параметра:

  • local: путь к файлу на компьютере
  • remote: каталог в эмуляторе/устройстве

Например, чтобы загрузить файл D:\Download\music.mp4 в каталог /sdcard/music/ устройства:

adb push D:\Download\music.mp4 /sdcard/music/

4.5.4 Список содержимого указанного каталога

Основной формат команды для отображения содержимого указанного каталога на эмуляторе/устройстве:

adb shell ls [options] <directory>

<directory>Указывает указанный каталог, который можно опустить, указывая, что перечислены все файлы и каталоги в корневом каталоге.adb shell lsЗа ним могут следовать некоторые необязательные параметры для фильтрации для просмотра различных списков.Доступные параметры и их значения следующие:

параметр показать список
без Список всех файлов и каталогов в каталоге
-a Все файлы, перечисленные в каталоге (включая скрытые)
-i Список всех файлов и номеров индексов в каталоге
-s Список всех файлов и размеров файлов в каталоге
-n Список всех файлов в каталоге и их UID и GID
-R Список файлов во всех подкаталогах каталога

4.5.5 Переход в целевой каталог

adb shell cd <directory>

Шаг 1: Выполнитьadb shellЗаказ; Шаг 2: Выполнитьcd <directory>команда для переключения в целевой каталог.

4.5.6 Удаление файла или каталога

adb shell rm [options] <files or directory>

Шаг 1: Выполнитьadb shellЗаказ; Шаг 2: Выполнитьrm [options] <files or directory>Команда для удаления файла или каталога.

rmЗа ним могут следовать некоторые необязательные параметры для различных операций.Доступные параметры и их значения следующие:

параметр имея в виду
без Удалить файлы
-f Принудительно удалить файлы, система не предлагает
-r Принудительно удалить все файлы и подкаталоги в указанном каталоге
-d Удалить указанный каталог, даже если это непустой каталог
-i Интерактивное удаление, запрос перед удалением

rm -dЭквивалентноrmdirкоманда, некоторые версии не содержат-dпараметр.

4.5.7 Создание каталога

adb shell mkdir [options] <directory-name>

Шаг 1: Выполнитьadb shellЗаказ; Шаг 2: Выполнитьmkdir [options] <directory-name>команда для создания каталога.mkdirЗа ним могут следовать некоторые необязательные параметры для различных операций.Доступные параметры и их значения следующие:

параметр имея в виду
без Создать указанный каталог
-m Создайте указанный каталог и дайте права на чтение и запись
-p Создать указанный каталог и его родительский каталог

4.5.8 Создать пустой файл или изменить временную метку файла

adb shell touch [options] <file>

Шаг 1: Выполнитьadb shellЗаказ; Шаг 2: Выполнитьtouch [options] <file>Команда для создания пустого файла или изменения временной метки файла.

доступныйls -n <directory>Время, когда команда просматривала файл.

4.5.9 Вывод текущего пути к каталогу

adb shell pwd

Шаг 1: Выполнитьadb shellЗаказ; Шаг 2: ВыполнитьpwdКоманда выводит текущий путь к каталогу.

4.5.10 Копирование файлов и каталогов

adb shell cp [options] <source> <dest>

Шаг 1: Выполнитьadb shellЗаказ; Шаг 2: Выполнитьcp [options] <source> <dest>Команда для копирования файлов и каталогов. Описание параметра:

  • source: путь к исходному файлу
  • dest: целевой путь к файлу

4.5.11 Перемещение или переименование файлов

adb shell mv [options] <source> <dest>

Шаг 1: Выполнитьadb shellЗаказ; Шаг 2: Выполнитьmv [options] <source> <dest>Команда для перемещения или переименования файлов. Описание параметра:

  • source: путь к исходному файлу
  • dest: целевой путь к файлу

4.6 Управление сетью

4.6.1 Просмотр статистики сети

adb shell netstat

Также возможен вывод сетевой статистики в указанный файл:

adb shell netstat><file-path>

Например, поadb shell netstat>D:\netstat.logвывод журнала вD:\netstat.logсередина.

4.6.2 Тестирование подключения и задержки между двумя сетями

pingФормат команды следующий:

adb shell ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
[-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
[-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
[-w deadline] [-W timeout] [hop1 ...] destination

Например, пропингуйте доменное имя:

adb shell ping www.google.com

Если это не закончится, он будет продолжать пинговаться, вы можете нажатьCtrl + CПерестаньте пинговаться.

Вы также можете указать количество пингов:

adb shell ping -c 4 www.google.com

4.6.3 Настройка и управление сетевыми подключениями с помощью файлов конфигурации

netcfgФормат команды следующий:

adb shell netcfg [<interface> {dhcp|up|down}]

Пример вывода:

rmnet_ims10 DOWN                                   0.0.0.0/0   0x00001002
rmnet_ims00 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun04 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun03 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun02 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun01 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun00 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun14 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun13 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun12 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun11 DOWN                                   0.0.0.0/0   0x00001002
rmnet_tun10 DOWN                                   0.0.0.0/0   0x00001002
rmnet1   DOWN                                   0.0.0.0/0   0x00001002
rmnet0   DOWN                                   0.0.0.0/0   0x00001002
rmnet4   DOWN                                   0.0.0.0/0   0x00001002
rmnet3   DOWN                                   0.0.0.0/0   0x00001002
rmnet2   DOWN                                   0.0.0.0/0   0x00001002
rmnet6   DOWN                                   0.0.0.0/0   0x00001002
rmnet5   DOWN                                   0.0.0.0/0   0x00001002
dummy0   UP                                     0.0.0.0/0   0x000000c3
rmnet_r_ims10 DOWN                                   0.0.0.0/0   0x00001002
rmnet_r_ims00 DOWN                                   0.0.0.0/0   0x00001002
rmnet_emc0 DOWN                                   0.0.0.0/0   0x00001002
lo       UP                                   127.0.0.1/8   0x00000049
sit0     DOWN                                   0.0.0.0/0   0x00000080
wlan0    UP                                 10.0.38.176/23  0x00001043

4.6.4 Отображение и управление маршрутами, устройствами, маршрутами политик и туннелями

ipФормат команды следующий:

adb shell ip [ options ] object
  • options := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |-f[amily] { inet | inet6 | ipx | dnet | link } |-l[oops] { maximum-addr-flush-attempts } |-o[neline] | -t[imestamp] | -b[atch] [filename] |-rc[vbuf] [size]}

  • object := { link | addr | addrlabel | route | rule | neigh | ntable |tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |netns | l2tp }

optionsэто параметры, которые изменяют поведение ip или изменяют его вывод. Все параметры начинаются с символа - и делятся на длинные и короткие формы.Поддерживаемые необязательные параметры и их значения следующие:

Опции имея в виду
-V,-Version распечатать версию ip и выйти
-s,-stats,-statistics Вывести более подробную информацию (если эта опция появляется два или более раз, выводимая информация будет более подробной)
-f,-family Подчеркните тип используемого протокола (включая: inet, inet6 или link)
-4 это сокращение от -family inet
-6 является сокращением от -семейства inet6
-0 сокращение от -семейная ссылка
-o,-oneline Используйте одну строку вывода для каждой строки записей, замените строку возврата символом
-r,-resolve Запросите систему разрешения доменных имен и замените IP-адрес узла полученным именем узла.

objectОбъект, которым вы хотите управлять или получать информацию. Объекты, в настоящее время распознаваемые ip, включают:

параметр показать список
link Сетевое оборудование
address Адрес протокола (IP или IPV6) устройства
neighbour Запись буфера ARP или NDISC
route запись в таблице маршрутизации
rule Правила в базе данных политик маршрутизации
maddress многоадресный адрес
mroute Записи буфера многоадресной маршрутизации
tuntap Управление устройствами TUN/TAP
netns Управление киберпространством

Например, см.WiFi IPадрес:

adb shell ip -f inet addr show wlan0

4.7 Имитация клавиш/ввода

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

Usage: input [<source>] <command> [<arg>...]

The sources are:
      dpad
      keyboard
      mouse
      touchpad
      gamepad
      touchnavigation
      joystick
      touchscreen
      stylus
      trackball

The commands and default sources are:
      text <string> (Default: touchscreen)
      keyevent [--longpress] <key code number or name> ... (Default: keyboard)
      tap <x> <y> (Default: touchscreen)
      swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      draganddrop <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      press (Default: trackball)
      roll <dx> <dy> (Default: trackball)

такие как использованиеadb shell input keyevent <keycode>Команды, разные коды клавиш могут выполнять разные функции, см. полный список кодов клавишKeyEvent, выдержки, которые я нахожу интересными, следующие:

keycode имея в виду
3 ДОМАШНЯЯ клавиша
4 ключ возврата
5 Откройте приложение для набора номера
6 вешать трубку
24 увеличить громкость
25 уменьшить громкость
26 Кнопка питания
27 Сделайте снимок (требуется в приложении камеры)
64 Открыть браузер
82 меню
85 воспроизведение / пауза
86 Остановить воспроизведение
87 воспроизвести следующий трек
88 воспроизвести предыдущий трек
122 Переместить курсор в начало строки или вверх списка
123 Переместить курсор в конец строки или конец списка
126 Возобновить воспроизведение
127 Пауза воспроизведения
164 немой
176 Откройте системные настройки
187 переключать приложения
207 Открытые контакты
208 Открыть календарь
209 включить музыку
210 открыть калькулятор
220 Уменьшить яркость экрана
221 Увеличить яркость экрана
223 спящий режим системы
224 зажечь экран
231 Включите голосовой помощник
276 Если нет Wakelock, пусть система спит

НижеinputНекоторые примеры использования команд.

4.7.1 Кнопка питания

adb shell input keyevent 26

Эффект выполнения эквивалентен нажатию кнопки питания.

4.7.2 Клавиша меню

adb shell input keyevent 82

4.7.3 Клавиша ДОМОЙ

adb shell input keyevent 3

4.7.4 Клавиша возврата

adb shell input keyevent 4

4.7.5 Регулятор громкости

  • Увеличить громкость:
adb shell input keyevent 24
  • уменьшить громкость:
adb shell input keyevent 25
  • Немой:
adb shell input keyevent 164

4.7.6 Управление мультимедиа

  • воспроизведение / пауза:
adb shell input keyevent 85
  • Остановить воспроизведение:
adb shell input keyevent 86
  • Воспроизвести следующий трек:
adb shell input keyevent 87
  • Воспроизвести предыдущую песню:
adb shell input keyevent 88
  • Возобновить воспроизведение:
adb shell input keyevent 126
  • Пауза воспроизведения:
adb shell input keyevent 127

4.7.7 Включение/выключение экрана

  • Зажгите экран:
adb shell input keyevent 224
  • Чтобы выключить экран:
adb shell input keyevent 223

4.7.8 Сдвиньте, чтобы разблокировать

Если экран блокировки не имеет пароля и разблокируется жестом смахивания, вы можете использоватьinput swipeразблокировать. Команда (параметры берут модель Nexus 5, например, свайп вверх для разблокировки):

adb shell input swipe 300 1000 300 500

параметр300 1000 300 500Соответственно起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标.

4.7.9 Ввод текста

Когда фокус находится на текстовом поле, вы можете передатьinputкоманда для ввода текста.

adb shell input text hello

4.8 Печать журнала

Журнал системы Android разделен на две части: журнал основного ядра Linux выводится в /proc/kmsg, а журнал Android выводится в /dev/log.

4.8.1 Журналы Android

Основной формат команды для просмотра системных свойств Android-устройства:

adb logcat [option] [filter-specs]

остановиться, если это необходимоlogcatжурнал печати, вы можете нажатьCtrl + CОстановить мониторинг журнала.

4.8.1.1 Фильтрация журналов по уровню

Основной формат команды для фильтрации журналов по уровню:

adb logcat [filter-specs]

Журналы Android делятся на следующие приоритеты:

уровень имея в виду
*:V Отфильтрованы, чтобы показать только многословный уровень и выше (самый низкий приоритет)
*:D Отфильтровать, чтобы отображались только отладки и выше
*:I Фильтр, чтобы показывать только информацию и выше
*:W Отфильтровать, чтобы отображались только предупреждения и выше
*:E Отфильтровать, чтобы отображались только ошибки и выше
*:F Отфильтровать, чтобы показывать только Fatal и выше
*:S Отфильтровать, чтобы отображались только Без звука и выше (высший приоритет, ничего не выводится)

При фильтрации журналов по определенному уровню будут выводиться журналы этого уровня и выше.

Например, команда:

adb logcat *:W

Будут выведены журналы предупреждений, ошибок, фатальных и тихих сообщений.

(Примечание:Нужно отдать под macOS*:Wв этом случае*Добавьте двойные кавычки в качестве параметра тега, напримерadb logcat "*:W", иначе сообщит об ошибкеno matches found: *:W. )

4.8.1.2 Фильтрация журналов по тегу и уровню

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

adb logcat [tag:level] [tag:level] ...

Например, команда:

adb logcat ActivityManager:I MyApp:D *:S

Указывает выходной тегActivityManagerЖурнал выше уровня Info, выходной тегMyAppЖурналы уровня отладки и выше, а также журналы уровня Silent других тегов (то есть экранирование журналов других тегов).

4.8.1.3 Формат вывода журнала

Можно использоватьadb logcat -v <format>Параметр указывает формат вывода журнала.

Журнал поддерживает следующие типы<format>:

параметр Отображение формата
brief <priority>/<tag>(<pid>): <message>
process <priority>(<pid>) <message>
tag <priority>/<tag>: <message>
raw <message>
time <datetime> <priority>/<tag>(<pid>): <message>
threadtime <datetime> <pid> <tid> <priority> <tag>: <message>
long [ <datetime> <pid>:<tid> <priority>/<tag> ] <message>

Формат журнала по умолчаниюbrief, указанный формат можно использовать одновременно с вышеуказанной фильтрацией. Например:

adb logcat -v long ActivityManager:I *:S
4.8.1.3 Очистить существующие журналы
adb logcat -c
4.8.1.4 Отображение журналов в консоли
adb logcat -d
4.8.1.5 Вывод журнала в файл
adb logcat -f <file-path>
4.8.1.6 Загрузить пригодный для использования буфер журнала для просмотра
adb logcat -b <Buffer>

Android logВывод огромен, особенно журнал системы связи.Поэтому Android выводит журнал в разные буфера.В настоящее время определены четыре буфера журнала:

буфер имея в виду
Radio Вывести лог системы связи
System компоненты системы вывода логов
Event вывести лог модуля событий
Main Все журналы уровня Java и журналы, которые не относятся к верхним 3 слоям

Буфер в основном используется компонентами системы, а общие приложения не должны заботиться, а журнал приложения выводится в основной буфер. Вывод журнала по умолчанию (без указания буфера) является вывод журнала системы и основных буферов.

4.8.1.7 Печать размера указанного буфера журнала
adb logcat -g

4.8.2 Журнал ядра

adb shell dmesg

Пример вывода:

<6>[14201.684016] PM: noirq resume of devices complete after 0.982 msecs
<6>[14201.685525] PM: early resume of devices complete after 0.838 msecs
<6>[14201.753642] PM: resume of devices complete after 68.106 msecs
<4>[14201.755954] Restarting tasks ... done.
<6>[14201.771229] PM: suspend exit 2016-08-28 13:31:32.679217193 UTC
<6>[14201.872373] PM: suspend entry 2016-08-28 13:31:32.780363596 UTC
<6>[14201.872498] PM: Syncing filesystems ... done.

в скобках[14201.684016]Представляет время с момента начала загрузки ядра в секундах.

Через журнал ядра мы можем делать некоторые вещи, например, измерять время запуска ядра и находить его в журнале ядра после запуска системы.Freeing init memoryВремя до этой строки.

4.9 Просмотр свойств системы Android-устройства

Основной формат команды для просмотра системных свойств Android-устройства:

adb shell getprop [options]

Помимо просмотра системных свойств Android-устройства, вы также можете установить системные свойства.Основной формат команды для настройки системных свойств:

adb shell setprop <key> <value>

4.9.1 Просмотр модели устройства

adb shell getprop ro.product.model

Пример вывода:

Nexus 5

4.9.2 Просмотр состояния батареи устройства

adb shell dumpsys battery

Пример вывода:

Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  status: 2
  health: 2
  present: true
  level: 44
  scale: 100
  voltage: 3872
  temperature: 280
  technology: Li-poly

вscaleпредставляет собой максимальную мощность,levelПредставляет текущий уровень заряда батареи. Выходные данные выше показывают, что осталось 44% заряда.

4.9.3 Просмотр разрешения экрана устройства

adb shell wm size

Пример вывода:

Physical size: 1080x1920

Разрешение экрана устройства составляет 1080px * 1920px.

Если изменить с помощью команды, вывод может быть:

Physical size: 1080x1920
Override size: 480x1024

Указывает, что разрешение экрана устройства изначально было 1080 пикселей * 1920 пикселей, а в настоящее время изменено на 480 пикселей * 1024 пикселей.

4.9.4 Просмотр плотности экрана устройства

adb shell wm density

Пример вывода:

Physical density: 420

Устройство имеет плотность экрана 420 dpi.

Если изменить с помощью команды, вывод может быть:

Physical density: 480
Override density: 160

Указывает, что плотность экрана устройства изначально составляла 480 точек на дюйм, а в настоящее время изменена на 160 точек на дюйм.

4.9.5 Просмотр параметров дисплея устройства

adb shell dumpsys window displays

Пример вывода:

WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
  Display: mDisplayId=0
    init=1080x1920 420dpi cur=1080x1920 app=1080x1794 rng=1080x1017-1810x1731
    deferred=false layoutNeeded=false

вmDisplayIdНомер дисплей,initисходное разрешение и плотность экрана,appсоотношение высотыinitТот, что в нем, должен быть маленьким, что говорит о наличии виртуальных кнопок внизу экрана, а высота 1920 - 1794 = 126px и 42dp.

4.9.6 Просмотр устройства android_id

adb shell settings get secure android_id

Пример вывода:

51b6be48bac8c569

4.9.7 Просмотр IMEI устройства

На Android 4.4 и ниже IMEI можно получить с помощью следующей команды:

adb shell dumpsys iphonesubinfo

Пример вывода:

Phone Subscriber Info:
  Phone Type = GSM
  Device ID = 860955027785041

один из нихDevice IDЭто ИМЕИ.

В Android 5.0 и более поздних версиях вывод этой команды пуст и должен быть получен другими способами (требуется разрешение root):

adb shell
su
service call iphonesubinfo 1

Извлечение действительного содержимого внутри IMEI, например, вот860955027785041.

Ссылаться на:adb shell dumpsys iphonesubinfo not working since Android 5.0 Lollipop

4.9.8 Просмотр версии системы Android устройства

adb shell getprop ro.build.version.release

Пример вывода:

5.0.2

4.9.9 Просмотр IP-адреса устройства

adb shell ifconfig | grep Mask

На некоторых устройствах эта команда не имеет вывода.Если устройство подключено к WiFi, вы можете использовать следующую команду для просмотра IP-адреса в локальной сети:

adb shell ifconfig wlan0

Если приведенная выше команда по-прежнему не дает ожидаемой информации, вы можете попробовать следующую команду (доступную в некоторых версиях системы):

adb shell netcfg

4.9.10 Просмотр Mac-адреса устройства

adb shell cat /sys/class/net/wlan0/address

Пример вывода:

f8:a9:d0:17:42:4d

Это для просмотра Mac-адреса локальной сети, мобильной сети или другой информации о подключении, на которую можно ссылаться в предыдущем разделе «IP-адрес».adb shell netcfgкоманда для просмотра.

4.9.11 Просмотр информации о ЦП устройства

adb shell cat /proc/cpuinfo

4.9.12 Просмотр информации о памяти устройства

adb shell cat /proc/meminfo

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

Дополнительные аппаратные и системные свойства устройства можно просмотреть с помощью следующих команд:

adb shell cat /system/build.prop

Это выведет много информации, включая «модель» и «версию системы Android», упомянутые в предыдущих подразделах.

Вывод также включает некоторую другую полезную информацию, которая также доступна черезadb shell getprop <属性名>Команда просматривается отдельно, а некоторые свойства перечислены следующим образом:

Имя свойства имея в виду
ro.build.version.sdk версия SDK
ro.build.version.release Версия системы Android
ro.build.version.security_patch Уровень исправления безопасности Android
ro.product.model модель
ro.product.brand марка
ro.product.name Название оборудования
ro.product.board Модель процессора
ro.product.cpu.abilist Список поддерживаемых ЦП abi[Раздел Примечание 1]
persist.sys.isUsbOtgEnabled Поддерживать ли OTG
dalvik.vm.heapsize Ограничение памяти на приложение
ro.sf.lcd_density плотность экрана

Примечание к разделу 1:

В некоторых небольших заводских ПЗУ могут быть изменены имена атрибутов списка abi, поддерживаемого ЦП.ro.product.cpu.abilistИмя свойства не может быть найдено, вы можете попробовать это:

adb shell cat /system/build.prop | grep ro.product.cpu.abi

Пример вывода:

ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi

4.10 Изменить настройки

Примечание:После изменения настроек запуск команды восстановления может показать, что дисплей по-прежнему не нормальный, вы можете запуститьadb rebootПерезагрузите устройство или перезагрузите его вручную.

Принцип изменения настроек заключается в изменении значений настроек, хранящихся в /data/data/com.android.providers.settings/databases/settings.db, с помощью команды settings.

4.10.1 Изменить разрешение

adb shell wm size 480x1024

Это означает изменить разрешение на 480px * 1024px.

Команда восстановления исходного разрешения:

adb shell wm size reset

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

adb shell wm density 160

Указывает на изменение плотности экрана до 160 точек на дюйм.

Команда восстановления исходной плотности экрана:

adb shell wm density reset

4.10.3 Изменение области отображения

adb shell wm overscan 0,0,0,200

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

Восстановите исходную команду области отображения:

adb shell wm overscan reset

4.10.4 Изменить и отключить режим отладки USB

adb shell settings put global adb_enabled 0

Командами не восстановить.Ведь если адб отладки по USB выключен, то Андроид устройство подключиться не может. Зайдите на устройство, чтобы восстановить его вручную: «Настройки» — «Параметры разработчика» — «Отладка Android».

4.10.5 Изменить разрешение/запрет доступа к API, не относящемуся к SDK

Разрешить доступ к API, не относящимся к SDK:

adb shell settings put global hidden_api_policy_pre_p_apps 1
adb shell settings put global hidden_api_policy_p_apps 1

Отключите доступ к API, не относящимся к SDK:

adb shell settings delete global hidden_api_policy_pre_p_apps
adb shell settings delete global hidden_api_policy_p_apps

Устройство не требует рутирования.

Значение цифр в конце команды:

стоимость имея в виду
0 禁止检测非 SDK 接口的调用。该情况下,日志记录功能被禁用,并且令 strict mode API,即 detectNonSdkApiUsage() 无效。 Не рекомендуется.
1 Только предупреждения. Разрешите доступ ко всем интерфейсам, не относящимся к SDK, но сохраняйте предупреждения в журнале и продолжайте использовать API режима блокировки.
2 Запрещен вызов интерфейсов в темно-сером списке и черном списке.
3 Запрещен вызов интерфейса из черного списка, но разрешен вызов интерфейса из темного серого списка.

4.10.6 Изменение отображения и скрытия строки состояния и панели навигации

adb shell settings put global policy_control <key-values>

<key-values>Он может состоять из следующих ключей и соответствующих им значений, формат<key1>=<value1>:<key2>=<value2>.

key имея в виду
immersive.full спрятаться заодно
immersive.status скрыть строку состояния
immersive.navigation скрыть панель навигации
immersive.preconfirms ?

Значения, соответствующие этим ключам, можно объединить запятыми следующим образом:

value имея в виду
apps Все приложения
* Все интерфейсы
package-name конкретное приложение
-package-name Исключить указанные приложения

Например:

adb shell settings put global policy_control immersive.full=*

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

adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3

Указывает, что настройки находятся в имени пакетаcom.package1а такжеcom.package2Строка состояния скрыта в приложении, за исключением пакета с именемcom.package3Скрыть панель навигации во всех приложениях.

4.11 Полезные функции

4.11.1 Скриншоты

Сохраните скриншот на свой компьютер:

adb exec-out screencap -p > sc.png

Нельзя использовать, если версия adb стараяexec-outВ это время рекомендуется обновить версию adb. Если вы не можете обновиться, вы можете использовать следующие неприятные методы:

Сохраните скриншот на устройство:

adb shell screencap -p /sdcard/sc.png

Затем экспортируйте файл png на свой компьютер:

adb pull /sdcard/sc.png

можно использоватьadb shell screencap -hПроверитьscreencapСправочная информация команды, следующие два значимых параметра и их значения:

параметр имея в виду
-p Укажите файл сохранения в формате png
-d display-id Укажите номер экрана скриншота (в случае нескольких экранов)

Измеряется, если указанное имя файла начинается с.pngПараметр -p можно опустить в конце, иначе параметр -p обязателен. Если имя файла не указано, содержимое файла снимка экрана будет выведено непосредственно на стандартный вывод.

Еще один способ сделать скриншот однострочной команды и сохранить его на свой компьютер:Линукс и Виндовс

adb shell screencap -p | sed "s/\r$//" > sc.png

Mac OS X

adb shell screencap -p | gsed "s/\r$//" > sc.png

Для этого метода требуется команда gnu sed, которая доступна непосредственно в Linux, а также в папке bin каталога установки Git в Windows. Если вы действительно не можете найти команду, вы можете скачатьsed for WindowsИ добавьте папку, в которой находится sed.exe, в переменную окружения PATH.

Однако использование команды sed, которая входит в состав системы под Mac, сообщит об ошибке:

sed: RE error: illegal byte sequence

Вам нужно установить gnu-sed, а затем использовать команду gsed:

brew install gnu-sed

4.11.2 Экран записи

Сохраните записанный экран в /sdcard в формате mp4:

adb shell screenrecord /sdcard/filename.mp4

Нажмите, когда вам нужно остановитьсяCtrl-C, время записи по умолчанию и максимальное время записи составляют 180 секунд.

Если вам нужно экспортировать на компьютер:

adb pull /sdcard/filename.mp4

можно использоватьadb shell screenrecord --helpПроверитьscreenrecordСправочная информация по командам, ниже приведены общие параметры и их значения:

параметр имея в виду
--size WIDTHxHEIGHT размеры видео, такие как1280x720, по умолчанию используется разрешение экрана.
--bit-rate RATE Скорость бита видео, по умолчанию составляет 4 Мбит / с.
--time-limit TIME Время записи, в секундах.
--verbose Вывести дополнительную информацию.

4.11.3 Просмотр пароля подключенного WiFi

Примечание. Требуются права root.

adb shell
su
cat /data/misc/wifi/*.conf

4.11.4 Установка системной даты и времени

Примечание. Требуются права root.

adb shell
su
date -s 20160823.131500

Указывает на изменение системной даты и времени на 13:15:00 23 августа 2016 г.

4.11.5 Перезагрузите телефон

adb reboot

4.11.6 Определение наличия root-прав на устройстве

adb shell
su

В этот момент приглашение командной строки$Это означает, что нет прав root, да#Имеется в виду укоренившийся.

4.11.7 Стресс-тестирование с помощью Monkey

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

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

adb shell monkey -p <packagename> -v 500

выразить<packagename>Указанное приложение отправляет 500 псевдослучайных событий. Подробная ссылка на использование Monkeyофициальная документация.

4.11.8 Включение/отключение Wi-Fi

Примечание. Требуются права root.

  • Включите Wi-Fi:
adb root
adb shell svc wifi enable
  • Отключить Wi-Fi:
adb root
adb shell svc wifi disable

Если выполнение выполнено успешно, вывод пуст; если команда выполняется без разрешения root, выполнение завершится ошибкой, и вывод будет пуст.Killed.

4.12 Команды, связанные с флэш-памятью

4.12.1 Перезагрузка в режим восстановления

adb reboot recovery

4.12.2 Перезагрузите Android из Recovery

adb reboot

4.12.2 Перезагрузка в режим быстрой загрузки

adb reboot bootloader

4.12.4 Обновление системы через боковую загрузку

Если мы загрузим пакет обновления системы, соответствующий Android-устройству, на компьютер, мы также можем выполнить обновление через adb.

В качестве примера возьмем обновление в режиме восстановления:

  1. Перезагрузитесь в режиме восстановления.
adb reboot recovery
  1. Операция в интерфейсе восстановления устройства для входаApply update-Apply from ADB. Примечание. Различные меню восстановления могут отличаться от этого, некоторые из них являются меню первого уровня.Apply update from ADB.

  2. Загрузите и обновите систему через adb.

adb sideload <path-to-update.zip>

4.13 Команды безопасности

4.13.1 Включение/выключение SELinux

Включить SELinux

adb root
adb shell setenforce 1

Отключить SELinux

adb root
adb shell setenforce 0

4.13.2 Включить/выключить dm_verity

включить dm_verity

adb root
adb enable-verity

отключить dm_verity

adb root
adb disable-verity

4.14 Дополнительные команды оболочки adb

Система Android основана на ядре Linux, поэтому многие команды в Linux имеют одинаковые или похожие реализации в Android.adb shellможно назвать. Некоторые из предыдущих частей этого документа были использованыadb shellЗаказ.

4.14.1 Просмотр состояния процесса

adb shell ps

Значение каждого столбца выходной информации:

имя столбца имея в виду
USER владелец пользователя
PID Идентификатор процесса
PPID идентификатор родительского процесса
NAME Имя процесса

4.14.2 Просмотр состояния процессора в реальном времени

adb shell top [-m max_procs] [-n iterations] [-d delay] [-s sort_column] [-t] [-h]

adb shell topЗа ним могут следовать некоторые необязательные параметры для фильтрации для просмотра различных списков.Доступные параметры и их значения следующие:

параметр имея в виду
-m Максимальное количество процессов отображается
-n Сколько раз обновлять и выходить
-d Интервал обновления (в секундах, значение по умолчанию 5)
-s Сортировка по столбцу (доступные значения col: cpu, vss, rss, thr)
-t Показать информацию о потоке
-h Показать справочную документацию

Значение каждого столбца выходной информации:

имя столбца имея в виду
PID Идентификатор процесса
PR приоритет
CPU% Процент процессора в настоящее время занята на данный момент
S Состояние процесса (R=выполняется, S=спящий режим, T=трассировка/остановка, Z=процесс-зомби)
#THR Потоки
VSS Потребление виртуальной памяти Virtual Set Size (включая память, занятую разделяемыми библиотеками)
RSS Резидентный размер набора фактически использует физическую память (включая память, занятую разделяемыми библиотеками).
PCY Приоритет политики планирования, SP_BACKGROUND/SPFOREGROUND
UID ID пользователя владельца процесса
NAME Имя процесса

4.14.3 Просмотр процесса UID

Есть два варианта:

  1. adb shell dumpsys package <packagename> | grep userId=Такие как:
 adb shell dumpsys package org.mazhuang.guanggoo | grep userId=
  userId=10394
  1. После нахождения pid соответствующего процесса с помощью команды psadb shell cat /proc/<pid>/status | grep UidТакие как:
    adb shell
    gemini:/ $ ps | grep org.mazhuang.guanggoo
    u0_a394   28635 770   1795812 78736 SyS_epoll_ 0000000000 S org.mazhuang.guanggoo
    gemini:/ $ cat /proc/28635/status | grep Uid
    Uid:    10394   10394   10394   10394
    gemini:/ $
    

5. Спасибо

  1. ADB Shell
  2. Awesome Adb
  3. Android Debug Bridge