adb命令总结

2,216 阅读6分钟

ADB是什么

adb(全称Android Debug Bridge):Android调试桥梁。用来协助相关人员更快更好的调试apk,adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能。

Mac安装adb 1、安装homebrew:ruby -e "$(curl -fsSL raw.githubusercontent.com/Homebrew/in…)"

2、安装adb:brew install android-platform-tools --cask

3、运行adb: adb devices

ADB架构

ADB是一个C/S架构的应用程序,由三部分组成:

  1. 运行在pc端的adb client:
    命令行程序"adb"用于从shell或脚本中运行adb命令。首先,"adb"程序尝试定位主机上的ADB服务器,如果找不到adb服务器,"adb"程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的ADB server建立连接后,adb client就可以向ADB server发送服务请求;
  2. 运行在pc端的adb server:
    ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上;
  3. 运行在设备端的常驻进程adb demon(adbd):
    程序"adbd"作为一个后台进程在Android设备或者模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务;

ADB基本用法

adb能做什么? 答案是所有能对手机的操作都能用adb实现。

adb命令的基本语法如下: adb [-d|-e|-s ]

单一设备/模拟器连接

如果只有一个设备/模拟器连接时,可以省略掉[-d|-e|-s ] 这一部分,直接使用adb

多个设备/模拟器连接

如果有多个设备/模拟器连接,则需要为命令指定目标设备,下表是指定目标设备的命令选项:

参数含义
-d指定当前唯一通过USB连接的Android设备为命令目标
-e指定当前唯一运行的模拟器为命令目标
-s指定相应设备序列号的设备/模拟器为命令目标

adb shell

Android的内核本身就是Linux,所以Android本身也支持Linux命令。 在手机中执行Shell命令,每次都加上adb shell来进行命令的发送和执行。

Android性能统计dumpsys

用途命令
获取所有的dumpsys子命令dumpsysgrep -i DUMP
获取当前activityadb shell dumpsys activity top
获取activities的记录,可以获取到appium依赖的原始activitydumpsys activity activities
获取特定包基本信息adb shell dumpsys package XXX
获取系统通知adb shell dumpsys notification
获取内存信息adb shell dumpsys meminfo com.android.settings
获取cpu信息adb shell dumpsys cpuinfo
获取gpu绘制分析adb shell dumpsys gfxinfo com.android.settings
获取短信adb shell dumpsys activity broadcastsgrep senderName=

uiautomator

  • adb shell uiautomator runtest ...
  • adb shell uiautomator dump

adb常用命令

用途命令
查看adb的版本信息adb version
启动adb服务adb start-server
停止adb服务adb kill-server
查询已连接的设备/模拟器列表adb devices
指定adb server的网络端口adb -P start-server,adb的默认端口为:5037
以root权限运行adbdadb root

Activity Manager

用途命令(am是activity manager的缩写)
获得应用的启动时间adb shell am start -W<package_name>/.<activity_class_name>
启动activityadb shell am start -n<package_name>/.<activity_class_name>
杀掉APPadb shell am force-stop <package_name>
启动时要执行的动作adb shell am -a <ACTION>
eg:
adb  shell am start -a android.intent.action.VIEW -d url  跳转至指定url
adb shell am start -a android.intent.action.CALL -d tel:10086  拨打电话10086

Process status

用途命令(ps是process status的缩写)
查看进程的状态(grep筛选某个进程)adb shell ps|grep XXX

dump

用途命令
查看版本号adb shell dumpsys package com.youxiang.soyoungappfindstr versionName
获取系统数据adb shell dumpsys

Package Manager

用途命令
安装应用adb install
直接安装应用adb install test.apk
覆盖安装adb install -r test.apk
卸载应用adb uninstall
直接卸载adb uninstall test.apk
保留数据卸载adb uninstall -k test.apk
打印apk路径adb shell pm path
清除应用缓存adb shell pm clear
查看设备安装列表adb shell pm list packages

File Manager

用途命令
从Android设备下载文件到pcadb pull [local] adb pull /sdcard/test.png c:\user
把pc文件放到Android设备adb push
列出目录内容adb shell ls [option]
进入文件夹adb shell cd
删除文件或目录adb shell rm [options]
创建文件夹adb shell mkdir[options]
复制文件adb shell cp [options]
移动或者更名文件adb shell mv [options]
让Android脱离USB线的TCP连接方式adb tcpip
连接开启了TCP连接方式的手机adb connect
Android日志查看adb logcat
收集日志数据,用于后续的分析,比如耗电量adb bugreport

Logcat

用途命令
打印日志文件adb logcat [options] [filter-specs]

Screenshot

用途命令
截图保存为test.pngadb shell screencap /sdcard/test.png
录屏保存为test.mp4adb shell screencord /sdcard/test.mp4

设备管理连接

USB 连接

通过 USB 连接来正常使用 adb 需要以下步骤:

  1. 确认硬件状态正常(包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好)。
  2. Android 设备的开发者选项和 USB 调试模式已开启(可以在「设置」-「开发者选项」-「USB调试」打开USB调试)。
  3. 确认设备驱动状态正常(安装ADB驱动程序)。
  4. 通过 USB 线连接好电脑和设备后确认状态。
  5. 通过 adb devices 命令查看设备连接情况。

WLAN 连接(需要 USB 线)

借助 USB 通过 WiFi 连接来正常使用 adb 需要以下步骤:

  1. 将 Android 设备与要运行 adb 的电脑连接到同一个 WiFi。
  2. 将设备与电脑通过 USB 线连接(可通过 adb devices 命令查看设备连接情况)。
  3. 通过 adb tcpip 5555 命令让设备在 5555 端口监听 TCP/IP 连接。
  4. 断开 USB 连接。
  5. 找到设备的 IP 地址(可以在「设置」-「关于手机」-「状态信息」-「IP地址」查看 IP 地址)。
  6. 通过 adb connect 命令使用 IP 地址将 Android 设备与电脑连接。
  7. 通过 adb devices 命令查看设备连接情况。
  8. 使用完毕后可通过 adb disconnect 命令断开无线连接。

WLAN 连接(无需借助 USB 线)

注:需要 root 权限。不借助 USB 通过 WiFi 连接来正常使用 adb 需要以下步骤:

  1. 在 Android 设备上安装一个终端模拟器(可通过Terminal Emulator for Android Downloads下载)。
  2. 将 Android 设备与要运行 adb 的电脑连接到同一个 WiFi。
  3. 打开 Android 设备上的终端模拟器,在里面依次运行命令:
su
setprop service.adb.tcp.port 5555
  1. 找到设备的 IP 地址(可以在「设置」-「关于手机」-「状态信息」-「IP地址」查看 IP 地址)。
  2. 通过 adb connect 命令使用 IP 地址将 Android 设备与电脑连接。
  3. 通过 adb devices 命令查看设备连接情况。

WiFi 连接转为 USB 连接

通过adb usb命令以USB模式重新启动ADB:

adb usb