目录
将命令发送至指定设备(有多个设备在运行,您在发出 adb 命令时必须指定目标设备)
adb即Android Debug Bridge,它是Android开发/测试人员不可替代的强大工具
下载: 链接:https://pan.baidu.com/s/1UF7n__CEr03_3zdwPe-Zsw 提取码:ksfi
连接方式:USB连接以及网络连接:参考:https://blog.csdn.net/h_bpdwn/article/details/106712752
常用指令
启动adb
adb start-server
停止adb
adb kill-server
查看adb版本
adb version
查看已连接设备的列表(devices)
adb devcies -l
作为回应,adb 会针对每个设备输出以下状态信息:
序列号:由 adb 创建的字符串,用于通过端口号唯一标识设备。 下面是一个序列号示例:LNGNWZU13Q
状态:设备的连接状态可以是以下几项之一:
offline:设备未连接到 adb 或没有响应。
device:设备现已连接到 adb 服务器。请注意,此状态并不表示 Android 系统已完全启动并可正常运行,
因为在设备连接到 adb 时系统仍在启动。不过,在启动后,这将是设备的正常运行状态。
no device:未连接任何设备。
说明:如果您包含 -l 选项,devices 命令会告知您设备是什么。当您连接了多个设备时,此信息很有用,可帮助您将它们区分开来。
example:
D:\>adb devices -l
List of devices attached
LNGNWZU13Q device product:rk3288 model:rk3288 device:rk3288 transport_id:12
192.168.9.9:5555 device product:rk3288 model:rk3288 device:rk3288 transport_id:11
将命令发送至指定设备(有多个设备在运行,您在发出 adb 命令时必须指定目标设备)
adb -s [序列号] <命令>
adb -s LNGNWZU13Q shell
example:
D:\>adb devices
List of devices attached
LNGNWZU13Q device
192.168.9.9:5555 device
D:\>adb shell
adb.exe: more than one device/emulator
D:\>adb -s LNGNWZU13Q shell
rk3288:/ #
安装应用(install)
adb install [options] [待安装apk的路径]
-r 重新安装现有应用,保留其数据
-g 授予应用清单中列出的所有权限
移除软件包(uninstall)
adb uninstall [package]
adb shell pm uninstall [options] [package]
options:
-k 移除软件包后保留数据和缓存目录
将文件复制到设备或从设备复制文件(pull、push)
将文件从设备复制到PC端
adb pull [remote] [local]
将文件从PC端复制到设备
adb push [local] [remote]
(remote:PC端文件路径 local:设备端文件路径)
example:
D:\>adb push test.txt /mnt/sdcard/
test.txt: 1 file pushed, 0 skipped. 0.0 MB/s (30 bytes in 0.082s)
D:\>adb pull /mnt/sdcard/test.txt ./test.txtbak
/mnt/sdcard/test.txt: 1 file pulled, 0 skipped. 0.0 MB/s (30 bytes in 0.005s)
Activity管理器 (am)
启动指定activity
adb shell am start [activity的详细路径(包名+activity)]
example
D:\>adb shell am start com.hww.testface/.MainActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.hww.testface/.MainActivity }
//类名是区分大小写的
停止应用,强行停止指定包名应用关联的所有进程
adb shell am force-stop [应用包名]
example
D:\>adb shell am force-stop com.hww.testface
启动指定的Service
adb shell am startservice [service的详细路径(包名+服务类名)]
发出指定广播
adb shell am broadcast [广播指令]
软件包管理器(pm)
查询设备安装应用的包名
adb shell pm list package [options] [filter]
filter : 过滤,仅输出软件包名称包含filter中的文本的软件包
options : 选项
-f:查看它们的关联文件。
-d:进行过滤以仅显示已停用的软件包。
-e:进行过滤以仅显示已启用的软件包。
-s:进行过滤以仅显示系统软件包。
-3:进行过滤以仅显示第三方软件包。
-i:查看软件包的安装程序。
-u:也包括已卸载的软件包。
example:
D:\>adb shell pm list package -f com.google
package:/data/app/com.google.android.tts-1/base.apk=com.google.android.tts
查看应用apk的路径(path)
adb shell pm path [package]
example:
D:\>adb shell pm path com.hww.testface
package:/data/app/com.hww.testface-1/base.apk
截取屏幕-截图(screencap)
adb shell screencap /mnt/sdcard/screen.png
example:
D:\>adb shell screencap /mnt/sdcard/screen001.png
录制视频(screenrecord)
screenrecord 命令是一个用于录制设备(搭载 Android 4.4(API 级别 19)及更高版本)显示屏的 shell 实用程序。该实用程序将屏幕 Activity 录制为 MPEG-4 文件。
adb shell screenrecord [filename]
example :
D:\>adb shell screenrecord /mnt/sdcard/record.mp4
按 Ctrl + C 键(在 Mac 上,按 Command + C 键)可停止屏幕录制;如果不手动停止,到三分钟或 --time-limit 设置的时间限制时,录制将会自动停止。
screenrecord 实用程序的局限性:
音频不与视频文件一起录制。
无法在搭载 Wear OS 的设备上录制视频。
某些设备可能无法以它们的本机显示分辨率进行录制。如果在录制屏幕时出现问题,请尝试使用较低的屏幕分辨率。
不支持在录制时旋转屏幕。如果在录制期间屏幕发生了旋转,则部分屏幕内容在录制时将被切断
查看设备型号
adb shell getprop ro.product.model
example :
D:\>adb shell getprop ro.product.model
rk3288
屏幕分辨率
adb shell wm size
example :
D:\>adb shell wm size
Physical size: 800x1280
屏幕密度
adb shell wm density
example :
D:\>adb shell wm density
Physical density: 160
显示屏参数
adb shell dumpsys window displays
example:
D:\>adb shell dumpsys window displays
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=800x1280 160dpi cur=800x1280 app=800x1280 rng=800x776-1280x1256
deferred=false layoutNeeded=false
其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键,高度为 1920 - 1794 = 126px 合 42dp
查看android_id
adb shell settings get secure android_id
example :
D:\>adb shell settings get secure android_id
bb9925e47f84df4d
系统版本号
adb shell getprop ro.build.version.release
example:
D:\>adb shell getprop ro.build.version.release
7.1.2
IP地址
adb shell ifconfig
example :
Mac地址
adb shell cat /sys/class/net/wlan0/address
example:
D:\>adb shell cat /sys/class/net/wlan0/address
18:93:7f:c2:41:ed
CPU信息
adb shell cat /proc/cpuinfo
example:
D:\>adb shell cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 59.76
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc0d
CPU revision : 1
processor : 1
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 59.76
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc0d
CPU revision : 1
processor : 2
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 59.76
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc0d
CPU revision : 1
processor : 3
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 59.76
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc0d
CPU revision : 1
Hardware : Generic DT based system
Revision : 0000
Serial : 018eb1366d0dd759
内存信息
adb shell cat /proc/meminfo
example:
D:\>adb shell cat /proc/meminfo
MemTotal: 2044120 kB
MemFree: 470212 kB
MemAvailable: 1509152 kB
Buffers: 664 kB
Cached: 1112624 kB
SwapCached: 0 kB
Active: 556680 kB
Inactive: 830984 kB
Active(anon): 189832 kB
Inactive(anon): 137704 kB
Active(file): 366848 kB
Inactive(file): 693280 kB
Unevictable: 256 kB
Mlocked: 256 kB
HighTotal: 1564672 kB
HighFree: 459440 kB
LowTotal: 479448 kB
LowFree: 10772 kB
SwapTotal: 520908 kB
SwapFree: 520908 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 274656 kB
Mapped: 334688 kB
Shmem: 53160 kB
Slab: 104600 kB
SReclaimable: 84420 kB
SUnreclaim: 20180 kB
KernelStack: 6304 kB
PageTables: 14144 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1542968 kB
Committed_AS: 23905924 kB
VmallocTotal: 499712 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
CmaTotal: 16384 kB
CmaFree: 15056 kB
其中,MemTotal 就是设备的总内存,MemFree 是当前空闲内存
重启设备
adb reboot
查看链接过的wifi密码
adb shell cat /data/misc/wifi/*.conf
(若无法打印可能是无权限导致)
D:\>adb shell
rk3288:/ # su
rk3288:/ # cat /data/misc/wifi/*.conf
example:
D:\>adb shell cat /data/misc/wifi/*.conf
ctrl_interface=/data/misc/wifi/sockets
driver_param=use_p2p_group_interface=1p2p_device=1
update_config=1
device_name=Android_bb99
device_type=10-0050F204-5
config_methods=virtual_push_button physical_display keypad
p2p_ssid_postfix=-Android_bb99
persistent_reconnect=1
pmf=1
wowlan_triggers=any
AndroidAP cea6ec77ad9fctrl_interface=/data/misc/wifi/sockets
disable_scan_offload=1
driver_param=use_p2p_group_interface=1p2p_device=1
update_config=1
device_name=rk3288
manufacturer=rockchip
model_name=rk3288
model_number=rk3288
serial_number=LNGNWZU13Q
device_type=10-0050F204-5
config_methods=physical_display virtual_push_button
p2p_no_go_freq=5170-5740
pmf=1
external_sim=1
wowlan_triggers=any
p2p_search_delay=0
network={
ssid="zy5717"
psk="zy12345678"
key_mgmt=WPA-PSK
priority=1
disabled=1
id_str="%7B%22creatorUid%22%3A%221000%22%2C%22configKey%22%3A%22%5C%22zy5717%5C%22WPA_PSK%22%7D"
}
查看设备是否已有root
adb shell
su
此时命令行提示符是 $ 则表示没有 root 权限,是 # 则表示已 root
使用Monkey进行压力测试
Monkey 可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试
adb shell monkey -p <packagename> -v 500
表示向 <packagename> 指定的应用程序发送 500 个伪随机事件
Monkey 官方参考文档: https://developer.android.com/studio/test/monkey