今天记录的是 Android Debug Bridge,安卓debug调试桥,它是一款测试/开发人员必不可少的利器。作为一名测试人员,今天主要了解它在测试中简单的应用命令。
ADB是一个C/S架构(默认端口号为:5037),由三部分组成:ADB Client 、ADB Server、ADB Demo,运行过程如下图所示:
adb tcpip 5555
监听TCP/IP连接;2、断开usb连接,CMD输入: adb connect 移动端ip
连接;3、CMD输入:adb devices
查看是否连接成功C:\Users\melot>adb disconnect
Microsoft Windows [版本 10.0.19042.1052]
(c) Microsoft Corporation。保留所有权利。
C:\Users\melot>adb devices
List of devices attached
7fc0e0f2 device
C:\Users\melot>
当有多台设备连接时:
-d 当前唯一通过 USB 连接的 Android 设备为命令目标
-e 指定当前唯一运行的模拟器为命令目标
-s 指定相应 serialNumber 号的设备/模拟器为命令目标
adb [-d|-e|-s <serialNumber>] <command>
在发现问题后,打印出带具体时间日期的日志,存放于D盘的log202106231609.txt中
执行命令打开文件,根据出错的时间以及标志性关键字exception、fatal、error等定位出错点
Microsoft Windows [版本 10.0.19042.1052]
(c) Microsoft Corporation。保留所有权利。
C:\Users\melot>adb logcat -v threadtime -d >D:\log202106231609.txt
C:\Users\melot>start D:\log202106231609.txt
C:\Users\melot>
C:\Users\melot>adb reboot
C:\Users\melot>
C:\Users\melot>adb shell am force-stop com.melot.kkcxlive
C:\Users\melot>
C:\Users\melot>adb shell dumpsys package com.melot.kkcxlive
C:\Users\melot>adb shell pm path com.melot.kkcxlive
package:/data/app/com.melot.kkcxlive-1/base.apk
C:\Users\melot>
C:\Users\melot>adb shell getprop ro.build.version.release
7.1.2
C:\Users\melot>
C:\Users\melot>adb shell monkey -p com.melot.kkcxlive -v 500
C:\Users\melot>adb install C:\Users\melot\Downloads\JJYP_v2.0.1_0623_11`42`16_release.apk
adb shell settings get secure android_id
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
默认 所有应用
-f 显示应用关联的 apk 文件
-d 只显示 disabled 的应用
-e 只显示 enabled 的应用
-s 只显示系统应用
-3 只显示第三方应用
-i 显示应用的 installer
-u 包含已卸载应用
包名包含 字符串
adb shell pm clear <packagename>
adb push <电脑上的文件路径> <设备里的目录>
adb pull <设备里的文件路径> [电脑上的目录]
点击屏幕坐标为x = 50 y = 250的地方:
adb shell input tap 50 250
滑动屏幕解锁:
adb shell input swipe 起始x 起始y 终止x 终止y
输入文本:
adb shell input text hello
其它按键操作:
db shell input keyevent 3
3 HOME 键
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 则让系统休眠
Android日志的优先级(由高到低):
S-slient (啥也不输出)
F-fatal
E-error
W-waring
I-info
D-debug
V-verbose
按某级别过滤日志,将该级别及以上的日志输出(以下例子会将 Warning、Error、Fatal 和 Silent 日志输出):
adb logcat *:W
按 tag 和级别过滤日志(以下例子表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)):
adb logcat ActivityManager:I MyApp:D *:S
日志格式:
adb logcat -v <format>
brief 默认格式:
process :
tag:
raw:
time:
threadtime:
long: [
清空日志:
adb logcat -c
查看手机型号:
adb shell getprop ro.product.model
查看手机电池情况:
adb shell dumpsys battery
屏幕分辨率:
adb shell wm size
查看屏幕密度:
adb shell wm density
查看显示屏参数:
adb shell dumpsys window displays
查看Android-id:
adb shell settings get secure android_id
查看Android系统版本:
adb shell getprop ro.build.version.release
查看设备ip地址:
adb shell ifconfig "| grep Mask"
查看局域网MAC地址:
adb shell cat /sys/class/net/wlan0/address
查看移动网或其它连接信息:
adb shell netcfg
查看cpu信息:
adb shell cat /proc/cpuinfo
查看内存信息:
adb shell cat /proc/meminfo
查看其它硬件与系统属性:
方法一:
adb shell cat /system/build.prop
方法二:
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 CPU 支持的 abi 列表[节注一]
persist.sys.isUsbOtgEnabled 是否支持 OTG
dalvik.vm.heapsize 每个应用程序的内存上限
ro.sf.lcd_density 屏幕密度
修改分辨率:
adb shell wm size 480x1024
恢复原分辨率:
adb shell wm size reset
修改屏幕密度:
adb shell wm density 160
恢复屏幕密度:
adb shell wm density reset
修改显示区域:
adb shell wm overscan 0,0,0,200
恢复显示区域:
adb shell wm overscan reset
adb exec-out screencap -p > sc.png
adb shell screenrecord /sdcard/filename.mp4
Ctrl-C停止录制,默认录制时间和最长录制时间都是 180 秒
导出到电脑:
adb pull /sdcard/filename.mp4
adb shell
su
cat /data/misc/wifi/*.conf
adb shell
su
date -s 20160823.131500
adb shell
su
开启:
adb root
adb shell svc wifi enable
关闭:
adb root
adb shell svc wifi disable
设置wifi优先:
adb shell svc wifi prefer
关闭:
svc data disable
开启:
adb shell svc data enable
优先数据流量,其次wifi:
adb shell svc data prefer
重启到Recovery 模式:
adb reboot recovery
从 Recovery 重启到 Android:
adb reboot
重启到 Fastboot 模式:
adb reboot bootloader
adb shell ps
adb shell top
PID: 进程 ID
PR: 优先级
CPU%: 当前瞬间占用 CPU 百分比
S: 进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
#THR: 线程数
VSS Virtual Set Size: 虚拟耗用内存(包含共享库占用的内存)
RSS Resident Set Size: 实际使用物理内存(包含共享库占用的内存)
PCY: 调度策略优先级,SP_BACKGROUND/SPFOREGROUND
UID: 进程所有者的用户 ID
NAME: 进程名
方法一:
adb shell dumpsys package <packagename> | grep userId=
方法二:通过 ps 命令找到对应进程的 pid
adb shell cat /proc/<pid>/status | grep Uid
1、找到使用该端口的进程Pid
C:\Users\melot>netstat -aon|findstr 5037
2、通过PID找到对应的进程名
C:\Windows\system32>tasklist /fi "PID eq 1中的pid号"
3、使用命令终止该命令的运行
C:\Users\wwx229495>taskkill /pid 1中的pid号 /f