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 требуется следующие шаги:
- Убедитесь, что состояние оборудования нормальное (в том числе устройство Android нормально включено, а кабель USB и различные интерфейсы в хорошем состоянии).
- На Android-устройстве включены параметры разработчика и режим отладки по USB (отладку по USB можно включить в «Настройки» — «Параметры разработчика» — «Отладка по USB»).
- Подтвердите нормальное состояние драйвера устройства (установите драйвер ADB).
- Подтвердите статус после подключения компьютера и устройства через USB-кабель.
- пройти через
adb devices
Команда для проверки состояния подключения устройства.
4.2.2 Соединение WLAN (требуется USB-кабель)
Следующие шаги необходимы для правильного использования adb через соединение WiFi через USB: Шаги:
- Подключите ваше Android-устройство к тому же Wi-Fi, что и компьютер, на котором вы хотите запустить adb.
- Подключите устройство к компьютеру через USB-кабель (через
adb devices
команду для проверки подключения устройства). - пройти через
adb tcpip 5555
Команда, чтобы заставить устройство прослушивать соединения TCP/IP через порт 5555. - Отключите USB-соединение.
- Найдите IP-адрес устройства (проверить IP-адрес можно в «Настройки» — «О телефоне» — «Информация о состоянии» — «IP-адрес»).
- пройти через
adb connect <device-ip-address>
Команда использует IP-адрес для подключения устройства Android к компьютеру. - пройти через
adb devices
Команда для проверки состояния подключения устройства. - После использования можно пройти
adb disconnect <device-ip-address>
команда для отключения беспроводного соединения.
4.2.3 Соединение WLAN (без использования USB-кабеля)
Примечание. Требуются права root.Следующие шаги необходимы для правильного использования adb через соединение WiFi без USB:
- Установите эмулятор терминала на Android-устройство (доступно черезTerminal Emulator for Android Downloadsскачать).
- Подключите ваше Android-устройство к тому же Wi-Fi, что и компьютер, на котором вы хотите запустить adb.
- Откройте эмулятор терминала на Android-устройстве и последовательно выполните команды:
su
setprop service.adb.tcp.port 5555
- Найдите IP-адрес устройства (проверить IP-адрес можно в «Настройки» — «О телефоне» — «Информация о состоянии» — «IP-адрес»).
- пройти через
adb connect <device-ip-address>
Команда использует IP-адрес для подключения устройства Android к компьютеру. - пройти через
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
На самом деле это делается в три этапа:
- поместите файл apk в /data/local/tmp.
- Вызовите pm install для установки.
- Удалить / 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.
В качестве примера возьмем обновление в режиме восстановления:
- Перезагрузитесь в режиме восстановления.
adb reboot recovery
-
Операция в интерфейсе восстановления устройства для входа
Apply update
-Apply from ADB
. Примечание. Различные меню восстановления могут отличаться от этого, некоторые из них являются меню первого уровня.Apply update from ADB
. -
Загрузите и обновите систему через 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
Есть два варианта:
-
adb shell dumpsys package <packagename> | grep userId=
Такие как:
adb shell dumpsys package org.mazhuang.guanggoo | grep userId=
userId=10394
- После нахождения pid соответствующего процесса с помощью команды ps
adb 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:/ $