ADB学习之从入门到熟悉

前言

        不管是学习Android手机端还是车机端,ADB学习是你必学必会的技能之一。

一、什么是adb?

  • adb(Android Debug Bridge安卓调试桥)是用来链接安卓手机和PC端的桥梁,要有adb作为两者之间的维系,才能让用户在电脑上对手机进行全面操作。
  • 安卓的初衷是用db这样的工具来协助开发人员在开发和拷贝安卓应用的过程中,更好的调试APK,因此db具有安装和卸载、拷贝推送文件,查看设备硬件信息、查看应用程序占用资源这些功能!
  • Android系统的APK,apk是(Android application PacKage)应用程序包的简写
  • IOS系统软件的后缀名是IPA。IPA是Apple程序应用文件iPhoneApplication的缩写

二、adb命令

查看版本

adb version

查看性能CPU信息

adb shell "dumpsys cpuinfo"

查看设备信号

adb shell getprop ro.product.model

adb服务启动/停止

启动adb server命令:
adb start-server

停止adb server命令:
adb kill-server

安装软件

adb install安装apk文件路径

查看第三方软件

adb shell pm list packages -3

卸载软件

adb uninstall包名
鼠标右击复制包名,黏贴

adb上传

首先现在网页保存一张图片
adb push本地文件路径模拟器路径从本地上传文件到模拟器
adb push C:\Users\1\Desktop\dog.png /sdcard/pictures/Screenshots

adb下载

首先在夜神模以器截屏
adb pull模拟器文件路径本地路径从模拟器下载文件到本地
adb pull /sdcard/pictures/Screenshots/Screenshot_20210923-174542.png
C:\Users\1\Desktop

查看连接的Android设备

adb devices

 操作单台或者多台设备adbs设备号/i地址或者端口号

指定目标设备命令

如果只有一个设备/模拟器连接时,则命令为:adb<command:>

如果有多个设备/模拟器连接时,则需要区分指定目标设备命令,命令为:

adb [-d -e |-s <serialNumber>]<command>

在多个设备/模拟器连接的情况下常用的是-s<serialNumber>参数,其中serialNumber可以通过adb devices命令来获取。比如:

adb devices

List of devices attached

cf264b8f                        device

emulator-5554               device

10.129.164.6:5555        device

这里的cf264b8f、emulator-5554、10.129.164.6:5555就是serialNumber。

指定设备屏幕分辨率

比如设备为:cf264b8f,则命令为:adb-scf264b8 f shell wm size

指定设备安装应用

比如设备为:10.129.164.6:5555,则命令为:adb-s10.129.164.6:5555

查看app日志

adb logcat
adb shell logcat
打印出当前移动设备运行日志,夜神模拟器点击任何地方,都会实时打印,cr+C退出

列出软件安装包

可以列出所有的应用包名,默认包括系统自带应用和第三方安装应用
adb shell pm list packages

在adb shel‖pm list packages的基础上可以加一些参数进行过滤查看不同的列表,支持的
过滤参数如下:
参数显示无所有应用
-f显示应用关联的apk文件
-d只显示disabled的应用
-e只显示enabled的应用
-s只显示系统应用
-3只显示第三方应用
-i显示应用的installer
-u包含已卸载应用

过滤关键词

adb logcat|findstr  关键字                adb shell logcat findstr  关键字
findstr是windows系统中的过滤符

 ★★进入虚拟机内核模式 ★★

手机测试的时候,有时候需要截图。有时候还需要录屏。截图文件和录屏文件默认存放在手机中。

使用adb shell命令可以直接到达手机中。
adb shell
ls
pwd
cd
等基本的Linux命令(因为Android系统的内核是Linux)
如果要退出exit

adb模拟操作

电源键
adb shell input keyevent 26

adb shell的功能很强大,可以使用很多功能,今天我们说下通过控制按键输入:adb shell input keyevent xx
具体数值x如下
KEYCODE_CALL进入拨号盘5
KEYCODE ENDCALL挂机建6
KEYCODE_HOME按键Home3
KEYCODE MENU菜单键82
KEYCODE_BACK返回键4
KEYCODE_SEARCH搜索键84
KEYCODE_CAMERA拍照键27
KEYCODE_FOCUS拍照对焦键80
KEYCODE_POWER电源键26
KEYCODE_NOTIFICATION通知键83
KEYCODE_MUTE话筒静音键91
KEYCODE_VOLUME_MUTE扬声器静音键164
KEYCODE_VOLUME_UP音量增加键24
KEYCODE_VOLUME_DOWN音量减小键25控制键
KEYCODE_ENTER回车键66
KEYCODE_ESCAPE ESC 111
KEYCODE_DPAD_CENTER导航键确定键23
KEYCODE_DPAD_UP导航键向上19
KEYCODE_DPAD_DOWN导航键向下20
KEYCODE_DPAD_LEFT导航键向左21
KEYCODE_DPAD_RIGHT导航键向右22
KEYCODE_MOVE_HOME光标移动到开始键122
KEYCODE._MOVE_END光标移动到末尾键123
KEYCODE_PAGE_UP向上翻页键92
KEYCODE._PAGE_DOWN向下翻页键93
KEYCODE_DEL退格键67
KEYCODE._FORWARD_.DEL删除键112
KEYCODE_INSERT插入键124
KEYCODE_TAB Tabs键61
KEYCODE_NUM_LOCK小键盘锁143
KEYCODE_CAPS_LOCK大写锁定键115
KEYCODE_BREAK Break/Pause 121
KEYCODE._SCROLL_LOCK滚动锁定键116
KEYCODE_ZOOM_IN放大键168
KEYCODE_ZOOM_OUT缩小键169利用命令"adb shell input keyevent<键值>"可以实现
自动化。例如"adb shell input keyevent3"就可以按下Home键。]执行返回:
adb shel input keyevent4
执行灭屏亮屏:adb shell input keyevent26执行解锁屏幕:adb shell input keyevent 82

三、稳定性--monkey命令

monkey主要是用来做安卓客户端稳定性测试,monkeyi可以随机生成模似出一系列伪事件流。

手机客户端最严重的bug?
程序崩溃(crash)或者程序未响应(ANR)
通过monkey可以生成伪随机事件流,来检查手机客户端是否有这样的问题。

运行指定app的专项测试

adb shell monkey-p com.autonavi.amapauto 3000
adb shell monkey-p com.autonavi.amapauto 3000
指定运行微博执行3000个事件,随机事件包含(旋转屏幕、音量、缩放照片、点击、滑动屏幕等等)

运行日志

adb shell monkey -p com.autonavi.amapauto -vv 3000
W显示详细的运行日志

指定运行速度

adb shell monkey--throttle 500 -p com.autonavi.amapauto -vv 300
-throttle500事件延迟时间为500毫秒
500毫秒=0.5秒

保存日志到文件

adb shell monkey -p com.sina.weibo-w1000>电脑桌面文件路径

注:

运行过程中出现应用闪退或者应用无响应。
日志中会有对应的报错信息。只需要将报错信息发给开发即可。

-s 种子值

在上次运行的时候,应用程序崩溃,开发修复之后给你一个新版本,对新版本进行复测。
因为每次执行monkey的时候事件都是随机的,不能将上次的操作浮现。
通过查看上一次的运行日志。
上一次执行的时候,在日志中保存的有seed值。
本次运行跟上次使用同一个种子值即可。

adb shell monkey -s 1664295788023-p com.autonavi.amapauto -vv 300
D:\data\monkeytest3.log

截图

adb shell screencap /sdcard/screen.png

录制视频

adb shell screenrecord /sdcard/demo.mp4

adb远程连接

先有线设备连接然后使用

adb tcpip5555打开远程连接默认端口
建立远程连接ip为设备的局域网地址ip
adb connect ip
断开远程连接
adb disconnect ip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值