«Обязательно для тестирования мобильных терминалов» Общие команды и использование ADB
«Обязательно для тестирования мобильных терминалов» Общие команды и использование ADB

1 Об АБР

  • ADB-Android Debug Bridge,Действует как мост отладки;
  • проходитьadbмы можемEclipseВ меру удобнопроходитьDDMSдля отладкиAndroidпрограмма;
  • adbэто своего родаклиент、Служить Серверное приложениепрограмма,использоватьCSАрхитектура;
  • adbВключает в себя три компонента:клиент、демон(adbd)、сервер.

2 и окружающая среда

  • нужноadbКаталог, в котором он находится, добавляется в переменные системной среды.:
  • Мы установили его раньшеandroid-sdk-windows,напрямуюplatform-toolsПросто добавьте каталог в переменную системной среды.;
Язык кода:python
кодКоличество запусков:0
копировать
D:\android-sdk-windows\platform-tools
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • следующее:
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Ввод командной строкиadbСм. следующую информацию,иллюстрироватьadbокружающая средаokиз:
Язык кода:python
кодКоличество запусков:0
копировать
C:\Users\Administrator>adb
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as D:\android-sdk-windows\platform-tools\adb.exe

global options:
 -a         listen on all network interfaces, not just localhost
 -d         use USB device (error if multiple devices connected)
 -e         use TCP/IP device (error if multiple TCP/IP devices available)
 -s SERIAL  use device with given serial (overrides $ANDROID_SERIAL)
 -t ID      use device with given transport id
 -H         name of adb server host [default=localhost]
 -P         port of adb server [default=5037]
 -L SOCKET  listen on given socket for adb server [default=tcp:localhost:5037]

general commands:
 devices [-l]             list connected devices (-l for long output)
 help                     show this help message
 version                  show version num

networking:

3 Часто используемые команды

3.1 сервисная команда adb

  • ПроверятьadbВерсия:
Язык кода:python
кодКоличество запусков:0
копировать
adb version
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • запускатьadbСлужить:
Язык кода:python
кодКоличество запусков:0
копировать
adb start-server
  • останавливатьсяadbСлужить:
Язык кода:python
кодКоличество запусков:0
копировать
adb kill-server

3.2 Просмотр подключенных устройств

Язык кода:python
кодКоличество запусков:0
копировать
adb devices
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Здесь мы запускаем эмулятор Android, поэтому он показывает, что устройство подключено;
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

3.3 Получите статус подключения устройства

  • использоватьadb devicesчасattachedозначает соединениесостояние;
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Статус подключения следующий:

состояние

иллюстрировать

offline

Офлайн-статус

device

Устройство успешно получено

no device

Нет подключенного устройства

unauthorized

Нет авторизации

3.4 Копирование файла на ПК

  • каккопироватьв устройствеизфайл вPCконец?
  • Сначала используйте следующую команду Введите устройство:adb shell
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • существоватьsdcardСоздайте новый файл вtest.txt:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • копировать Этот файл приходитPCконец:
Язык кода:python
кодКоличество запусков:0
копировать
adb pull /sdcard/test.txt .
  • 如下就会把в устройствеизtest.txtкопироватьPCконецтекущий каталог:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

3.5 Копирование файлов ПК на устройство

  • существоватьPCконецтекущий каталог新建一个test01.txt
  • Используйте команду:
Язык кода:python
кодКоличество запусков:0
копировать
adb push test01.txt /sdcard/
  • Тогда этот файл существует на устройстве:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

3.6 Введите устройство

  • Уже упоминалось выше,то естьиспользовать:adb shell
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

3.7 Просмотр приложений

  • Посмотреть все приложения:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell pm list package
Язык кода:python
кодКоличество запусков:0
копировать
C:\Users\Administrator>adb shell pm list package
package:com.google.android.katniss
package:com.android.providers.telephony
package:com.android.providers.calendar
package:com.android.tv.settings
package:com.lego.android.tvleanback
package:com.android.providers.media
package:com.android.externalstorage
package:com.android.htmlviewer
package:com.android.providers.downloads
package:com.android.providers.tv
package:com.google.android.pano.packageinstaller
package:com.google.android.backdrop
package:com.google.android.configupdater
package:com.android.defcontainer
package:com.android.vending
package:com.android.pacprocessor
package:com.android.certinstaller
package:com.android.carrierconfig
package:com.google.android.marvin.talkback
package:com.google.android.leanback.ime
package:android
package:com.android.backupconfirm
package:com.google.android.tv.remotepairing
package:com.android.statementservice
package:com.google.android.tv
package:com.google.android.gsf.notouch
package:com.android.providers.settings
package:com.android.sharedstoragebackup
package:com.android.printspooler
package:com.android.dreams.basic
package:com.android.inputdevices
package:com.android.backuptester
package:com.android.sdksetup
package:com.google.android.webview
package:com.google.android.syncadapters.contacts
package:com.android.keychain
package:com.android.emulator.smoketests
package:com.google.android.gms
package:com.google.android.gsf
package:com.google.android.sss
package:com.google.android.tts
package:com.android.packageinstaller
package:com.android.proxyhandler
package:com.google.android.tungsten.overscan
package:com.android.netspeed
package:com.google.android.leanbacklauncher
package:com.google.android.backuptransport
package:com.google.android.sss.authbridge
package:com.android.vpndialogs
package:com.android.shell
package:com.android.providers.userdictionary
package:com.android.location.fused
package:com.android.systemui
package:com.android.bluetooth
package:com.android.development
package:com.android.providers.contacts
  • Просмотр системных приложений:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell pm list package -s
  • Проверьте сторонние приложения:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell pm list package -3
Вставьте сюда описание изображения
Вставьте сюда описание изображения

3.8 Просмотр конкретных пакетов

  • Например, с помощью фильтрации мы можем просмотреть определенные списки приложений:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell pm list package bluetooth
Вставьте сюда описание изображения
Вставьте сюда описание изображения

3.9 Установка и удаление APK

  • Команда:
Язык кода:python
кодКоличество запусков:0
копировать
 adb install [-lrtsdg] [--instant] PACKAGE
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Чтобы удалить приложение, используйте:
Язык кода:python
кодКоличество запусков:0
копировать
 adb uninstall [-k] PACKAGE
Вставьте сюда описание изображения
Вставьте сюда описание изображения

3.10 Очистка данных приложения

  • Используйте напрямую:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell pm clear <pachagename>

3.11 Просмотр информации о энергопотреблении и процессоре

  • Проверьте потребляемую мощность:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell dumpsys batterystats
Язык кода:python
кодКоличество запусков:0
копировать
C:\Users\Administrator>adb shell dumpsys batterystats
Battery History (0% used, 580 used of 256KB, 5 strings using 322):
                    0 (9) RESET:TIME: 2023-11-27-06-46-44
                    0 (2) 050 status=charging health=good plug=ac temp=0 volt=0 +running +plugged +charging
             +1s922ms (2) 050 +screen
             +1s922ms (3) 050 +wake_lock=-1:"screen" brightness=bright
             +1s922ms (2) 050 brightness=medium
             +3s504ms (2) 050 +user=0:"0"
             +3s504ms (2) 050 +userfg=0:"0"
             +3s508ms (3) 050 +audio +top=u0a10:"com.google.android.leanbacklauncher"
             +4s586ms (2) 050 -audio
             +4s618ms (2) 050 +audio
             +4s753ms (2) 050 -audio
             +4s793ms (2) 050 +audio
             +4s856ms (2) 050 -audio
             +5s092ms (2) 050 +audio
             +5s133ms (2) 050 -audio
             +5s215ms (2) 050 +audio
             +5s235ms (2) 050 -audio
             +5s500ms (2) 050 +audio
             +5s524ms (2) 050 -audio
             +5s647ms (2) 050 +audio
             +5s949ms (2) 050 -audio
            +24s228ms (9) TIME: 2023-11-27-06-47-06
            +26s153ms (2) 050 +tmpwhitelist=u0a8:"broadcast:u0a8:com.google.android.intent.action.GCM_RECONNECT"
            +41s653ms (2) 050 -tmpwhitelist=u0a8:"broadcast:u0a8:com.google.android.intent.action.GCM_RECONNECT"
            +58s370ms (3) 050 brightness=dark +tmpwhitelist=u0a8:"broadcast:u0a8:com.google.android.intent.action.GCM_RECONNECT"
          +1m08s425ms (2) 050 -tmpwhitelist=u0a8:"broadcast:u0a8:com.google.android.intent.action.GCM_RECONNECT"
          +1m58s462ms (2) 050 +tmpwhitelist=u0a8:"broadcast:u0a8:com.google.android.intent.action.GCM_RECONNECT"
          +2m06s262ms (2) 050 brightness=medium
          +2m08s519ms (2) 050 -tmpwhitelist=u0a8:"broadcast:u0a8:com.google.android.intent.action.GCM_RECONNECT"
          +3m38s536ms (2) 050 +tmpwhitelist=u0a8:"broadcast:u0a8:com.google.android.intent.action.GCM_RECONNECT"
          +3m48s600ms (2) 050 -tmpwhitelist=u0a8:"broadcast:u0a8:com.google.android.intent.action.GCM_RECONNECT"
          +5m10s201ms (2) 050 brightness=dark
          +5m31s586ms (2) 050 brightness=medium
          +5m50s977ms (2) 050 -top=u0a10:"com.google.android.leanbacklauncher"
          +5m50s977ms (2) 050 +top=1000:"com.android.tv.settings"
          +6m18s901ms (2) 050 -top=1
  • ПроверятьCPUинформация:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell dumpsys cpuinfo
Язык кода:python
кодКоличество запусков:0
копировать
C:\Users\Administrator>adb shell dumpsys cpuinfo
Load: 0.22 / 0.07 / 0.06
CPU usage from 704709ms to 682530ms ago:
  1.3% 1208/surfaceflinger: 0.1% user + 1.1% kernel
  0.9% 1548/system_server: 0% user + 0.9% kernel / faults: 120 minor
  0.8% 1248/adbd: 0% user + 0.8% kernel / faults: 439 minor
  0% 2140/com.google.android.gms: 0% user + 0% kernel / faults: 844 minor
  0% 8/rcu_preempt: 0% user + 0% kernel
  0% 1175/kworker/0:1H: 0% user + 0% kernel
  0% 1186/logd: 0% user + 0% kernel / faults: 3 minor
  0% 1200/healthd: 0% user + 0% kernel
  0% 1202/lmkd: 0% user + 0% kernel
  0% 1909/com.google.android.gms.persistent: 0% user + 0% kernel / faults: 3 minor
0.8% TOTAL: 0% user + 0.7% kernel + 0% iowait + 0% softirq

3.12 Запустить приложение

Язык кода:python
кодКоличество запусков:0
копировать
adb shell am start -n имя пакета

3.13 Получение журналов

Язык кода:python
кодКоличество запусков:0
копировать
adb shell logcat путь хранения
Язык кода:python
кодКоличество запусков:0
копировать
adb shell logcat > ./adb_log.txt
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • уровень следующий о журнале:

уровень

иллюстрировать

V(Verbose)

уровеньсамый низкий,Вся информация журнала

D(Debug)

журнал отладки

I(Info)

Общий журнал

W(Warning)

журнал предупреждений

E(Error)

журнал ошибок

S(Silent)

Самый высокийуровень,Ничего не выводится

3.14 Операции с событиями

  • Например, выполнение операций с мышью и клавиатурой.,использоватьinputЗаказ:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell input keyevent значение кода ключа
adb shell input swipe x1 y1 x2 y2

3.15 Просмотр сведений об устройстве

  • Модель оборудования:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell getprop ro.product.model
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Посмотреть разрешение:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell wm size
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Проверьте плотность экрана:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell wm density
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Параметры экрана просмотра:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell dumpsys window displays
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Проверятьсотовый телефонID
Язык кода:python
кодКоличество запусков:0
копировать
adb shell settings get secure android_id
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Проверьте версию системы:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell getprop ro.build.version.release
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Проверятьipадрес:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell ifconfig
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Получите информацию о сетевом подключении:

4 adb --help

  • все Заказ Можетиспользоватьadb --helpПроверять:
Язык кода:python
кодКоличество запусков:0
копировать
C:\Users\Administrator>adb --help
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as D:\android-sdk-windows\platform-tools\adb.exe

global options:
 -a         listen on all network interfaces, not just localhost
 -d         use USB device (error if multiple devices connected)
 -e         use TCP/IP device (error if multiple TCP/IP devices available)
 -s SERIAL  use device with given serial (overrides $ANDROID_SERIAL)
 -t ID      use device with given transport id
 -H         name of adb server host [default=localhost]
 -P         port of adb server [default=5037]
 -L SOCKET  listen on given socket for adb server [default=tcp:localhost:5037]

general commands:
 devices [-l]             list connected devices (-l for long output)
 help                     show this help message
 version                  show version num

networking:
 connect HOST[:PORT]      connect to a device via TCP/IP
 disconnect [[HOST]:PORT] disconnect from given TCP/IP device, or all
 forward --list           list all forward socket connections
 forward [--no-rebind] LOCAL REMOTE
     forward socket connection using:
       tcp:<port> (<local> may be "tcp:0" to pick any open port)
       localabstract:<unix domain socket name>
       localreserved:<unix domain socket name>
       localfilesystem:<unix domain socket name>
       dev:<character device name>
       jdwp:<process pid> (remote only)
       acceptfd:<fd> (listen only)
 forward --remove LOCAL   remove specific forward socket connection
 forward --remove-all     remove all forward socket connections
 ppp TTY [PARAMETER...]   run PPP over USB
 reverse --list           list all reverse socket connections from device
 reverse [--no-rebind] REMOTE LOCAL
     reverse socket connection using:
       tcp:<port> (<remote> may be "tcp:0" to pick any open port)
       localabstract:<unix domain socket name>
       localreserved:<unix domain socket name>
       localfilesystem:<unix domain socket name>
 reverse --remove REMOTE  remove specific reverse socket connection
 reverse --remove-all     remove all reverse socket connections from device

file transfer:
 push [--sync] LOCAL... REMOTE
     copy local files/directories to device
     --sync: only push files that are newer on the host than the device
 pull [-a] REMOTE... LOCAL
     copy files/dirs from device
     -a: preserve file timestamp and mode
 sync [all|data|odm|oem|product|system|system_ext|vendor]
     sync a local build from $ANDROID_PRODUCT_OUT to the device (default all)
     -l: list files that would be copied, but don't copy them

shell:
 shell [-e ESCAPE] [-n] [-Tt] [-x] [COMMAND...]
     run remote shell command (interactive shell if no command given)
     -e: choose escape character, or "none"; default '~'
     -n: don't read from stdin
     -T: disable pty allocation
     -t: allocate a pty if on a tty (-tt: force pty allocation)
     -x: disable remote exit codes and stdout/stderr separation
 emu COMMAND              run emulator console command

app installation (see also `adb shell cmd package help`):
 install [-lrtsdg] [--instant] PACKAGE
     push a single package to the device and install it
 install-multiple [-lrtsdpg] [--instant] PACKAGE...
     push multiple APKs to the device for a single package and install them
 install-multi-package [-lrtsdpg] [--instant] PACKAGE...
     push one or more packages to the device and install them atomically
     -r: replace existing application
     -t: allow test packages
     -d: allow version code downgrade (debuggable packages only)
     -p: partial application install (install-multiple only)
     -g: grant all runtime permissions
     --abi ABI: override platform's default ABI
     --instant: cause the app to be installed as an ephemeral install app
     --no-streaming: always push APK to device and invoke Package Manager as separate steps
     --streaming: force streaming APK directly into Package Manager
     --fastdeploy: use fast deploy
     --no-fastdeploy: prevent use of fast deploy
     --force-agent: force update of deployment agent when using fast deploy
     --date-check-agent: update deployment agent when local version is newer and using fast deploy
     --version-check-agent: update deployment agent when local version has different version code and using fast deploy
     (See also `adb shell pm help` for more options.)
 uninstall [-k] PACKAGE
     remove this app package from the device
     '-k': keep the data and cache directories

debugging:
 bugreport [PATH]
     write bugreport to given PATH [default=bugreport.zip];
     if PATH is a directory, the bug report is saved in that directory.
     devices that don't support zipped bug reports output to stdout.
 jdwp                     list pids of processes hosting a JDWP transport
 logcat                   show device log (logcat --help for more)

security:
 disable-verity           disable dm-verity checking on userdebug builds
 enable-verity            re-enable dm-verity checking on userdebug builds
 keygen FILE
     generate adb public/private key; private key stored in FILE,

scripting:
 wait-for[-TRANSPORT]-STATE
     wait for device to be in the given state
     STATE: device, recovery, rescue, sideload, bootloader, or disconnect
     TRANSPORT: usb, local, or any [default=any]
 get-state                print offline | bootloader | device
 get-serialno             print <serial-number>
 get-devpath              print <device-path>
 remount [-R]
      remount partitions read-write. if a reboot is required, -R will
      will automatically reboot the device.
 reboot [bootloader|recovery|sideload|sideload-auto-reboot]
     reboot the device; defaults to booting system image but
     supports bootloader and recovery too. sideload reboots
     into recovery and automatically starts sideload mode,
     sideload-auto-reboot is the same but reboots after sideloading.
 sideload OTAPACKAGE      sideload the given full OTA package
 root                     restart adbd with root permissions
 unroot                   restart adbd without root permissions
 usb                      restart adbd listening on USB
 tcpip PORT               restart adbd listening on TCP on PORT

internal debugging:
 start-server             ensure that there is a server running
 kill-server              kill the server if it is running
 reconnect                kick connection from host side to force reconnect
 reconnect device         kick connection from device side to force reconnect
 reconnect offline        reset offline/unauthorized devices to force reconnect

environment variables:
 $ADB_TRACE
     comma-separated list of debug info to log:
     all,adb,sockets,packets,rwx,usb,sync,sysdeps,transport,jdwp
 $ADB_VENDOR_KEYS         colon-separated list of keys (files or directories)
 $ANDROID_SERIAL          serial number to connect to (see -s)
 $ANDROID_LOG_TAGS        tags to be used by logcat (see logcat --help)
 $ADB_LOCAL_TRANSPORT_MAX_PORT max emulator scan port (default 5585, 16 emus)

ЯсуществоватьучаствоватьНа третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 года будет проводиться конкурс сочинений. Соберите команду, чтобы выиграть приз!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose