ADB的使用-简单命令

今天记录的是 Android Debug Bridge,安卓debug调试桥,它是一款测试/开发人员必不可少的利器。作为一名测试人员,今天主要了解它在测试中简单的应用命令。
ADB是一个C/S架构(默认端口号为:5037),由三部分组成:ADB Client 、ADB Server、ADB Demo,运行过程如下图所示:
在这里插入图片描述

主要应用:

1、连接设备

  • 数据线直接连接服务器

  • 无线连接:1、将手机与电脑用usb连接,CMD输入: adb tcpip 5555 监听TCP/IP连接;2、断开usb连接,CMD输入: adb connect 移动端ip 连接;3、CMD输入:adb devices查看是否连接成功

  • 断开连接:C:\Users\melot>adb disconnect

2、查看设备是否已连接: adb devices

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>

3、查看Android app的log,排查出现的问题:

在发现问题后,打印出带具体时间日期的日志,存放于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>

4、测试模拟重启设备

C:\Users\melot>adb reboot

C:\Users\melot>

5、测试模拟强制停止应用

C:\Users\melot>adb shell am force-stop com.melot.kkcxlive

C:\Users\melot>

6、查看应用详细信息

C:\Users\melot>adb shell dumpsys package com.melot.kkcxlive

7、查看应用的安装路径

C:\Users\melot>adb shell pm path com.melot.kkcxlive
package:/data/app/com.melot.kkcxlive-1/base.apk

C:\Users\melot>

8、获取安卓设备的版本信息

C:\Users\melot>adb shell getprop ro.build.version.release
7.1.2

C:\Users\melot>

9、使用 Monkey 进行压力测试

C:\Users\melot>adb shell monkey -p com.melot.kkcxlive -v 500

10、安装软件至APP

C:\Users\melot>adb install C:\Users\melot\Downloads\JJYP_v2.0.1_0623_11`42`16_release.apk

11、获取设备id

adb shell settings get secure android_id

12、查看应用列表

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 包含已卸载应用
包名包含 字符串

13、清除应用数据和缓存

adb shell pm clear <packagename>

14、复制电脑里的文件到设备

adb push <电脑上的文件路径> <设备里的目录>

15、复制设备里的文件到电脑

adb pull <设备里的文件路径> [电脑上的目录]

16、模拟按键操作

点击屏幕坐标为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 则让系统休眠

17、查看日志

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 默认格式: <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>

清空日志:

adb logcat -c

18、查看设备信息

查看手机型号:

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 屏幕密度

19、修改设置

修改分辨率:

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

20、屏幕截屏保存到电脑

adb exec-out screencap -p > sc.png

21、录制屏幕(以 mp4 格式保存到 /sdcard)

adb shell screenrecord /sdcard/filename.mp4

Ctrl-C停止录制,默认录制时间和最长录制时间都是 180 秒
导出到电脑:

adb pull /sdcard/filename.mp4

22、查看连接过的wifi密码:

adb shell
su
cat /data/misc/wifi/*.conf

23、设置系统日期和时间:

adb shell
su
date -s 20160823.131500

24、检测设备是否已 root

adb shell
su

25、开启/关闭 WiFi

开启:

adb root
adb shell svc wifi enable

关闭:

adb root
adb shell svc wifi disable

设置wifi优先:

adb shell svc wifi prefer 

26、开启/关闭数据流量

关闭:

svc data disable

开启:

adb shell svc data enable 

优先数据流量,其次wifi:

adb shell svc data prefer

27、刷机相关

重启到Recovery 模式:

adb reboot recovery

从 Recovery 重启到 Android:

adb reboot

重启到 Fastboot 模式:

adb reboot bootloader

28、查看进程

adb shell ps

29、查看实时资源占用情况

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: 进程名

30、查看进程uid

方法一:

adb shell dumpsys package <packagename> | grep userId=

方法二:通过 ps 命令找到对应进程的 pid

adb shell cat /proc/<pid>/status | grep Uid

31、端口号被占用

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
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值