掌握ADB:详解操作命令及完整用法指南(二)

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: **ADB摘要**Android Debug Bridge (ADB) 是用于PC与Android设备通信的调试工具。本文聚焦于`adb shell am`命令,用于控制设备执行操作,如启动应用:```bashadb shell am start <package>/<activity>```它还用于测量应用启动时间。`dumpsys window`命令获取包名和界面信息。ADB还能模拟手机按键,如点击、滑动、输入文本和控制音量。此外,通过`dumpsys cpuinfo`和`meminfo`可检查CPU和内存使用情况。这些在自动化测试中非常有用。

image.png

前言

ADB,全名Android Debug Bridge,是Android提供的一个通用的调试工具,是一个C/S架构的命令行工具,通过这个工具,使得我们的PC能够和Android设备来进行通信。之前一篇文章我们介绍了adb安装以及一些adb的基础命令,本文我们将介绍一些我们在进行app自动化测试时经常使用到的命令。

adb shell am命令

amActivity Manager的缩写,即活动管理,我们可以使用am来控制设备执行各种操作。如下:

# 使用am命令来启动淘宝App
adb shell am start com.taobao.taobao/com.taobao.tao.TBMainActivity

还可以用来获取应用的启动时间,如下:

adb shell am start -W com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity
Starting: Intent {
   
    act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity }
Status: ok
Activity: com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity
ThisTime: 289
TotalTime: 289
WaitTime: 311
Complete

以毫秒为单位
点击图标然后松开,这个时间是系统时间(分配内存和CPU的时间),应用application等待资源启动的时间
ThisTime:为界面启动耗时
TotalTime:应用自身启动耗时=ThisTime + 应用application等资源启动时间
WaitTime:系统启动耗时=TotalTime + 系统资源启动时间

获取包名和界面名

 adb shell dumpsys window | grep mFocusedApp
 或者
 adb shell "dumpsys window | grep mCurrentFocus"

注:App的包名是唯一的,不可重复的。

adb模拟手机按键

在使用adb模拟手机按键之前,我们需要先做好设置,设置路径为:设置——开发者选项——指针位置,我们可以先运行adb shell input命令来查看如何模拟手机按键:

# 首先连接设备
adb connect 127.0.0.1:7555
connected to 127.0.0.1:7555
# 执行命令
adb shell input
Usage: input [<source>] <command> [<arg>...]

The sources are:
      mouse
      keyboard
      joystick
      touchnavigation
      touchpad
      trackball
      stylus
      dpad
      touchscreen
      gamepad

The commands and default sources are:
      text <string> (Default: touchscreen)
      keyevent [--longpress] <key code number or name> ... (Default: keyboard)
      tap <x> <y> (Default: touchscreen)
      swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      press (Default: trackball)
      roll <dx> <dy> (Default: trackball)

操作示例如下:

- 模拟点击事件
adb shell input tap x坐标 y坐标
adb shell input tap 528 1539

- 输入文本
首先需要把光标移到输入框,然后执行以下命令
adb shell input text zengzengzeng

- 模拟滑动事件
adb shell swip <起点x> <起点y> <终点x> <终点y> <滑动时长>
adb shell input swipe 520 331 520 1017 2000
2000为滑动时间,单位是毫秒

- 返回键
adb shell input keyevent 4

- 返回home键(置应用于后台)
adb shell input keyevent 3

- 音量放大
adb shell input keyevent 24

- 音量缩小
adb shell input keyevent 25

资源占用情况

我们也可以使用adb命令查看设备的CPU、内存等资源使用情况,如下:

# 查看当前系统CPU使用情况
adb shell dumpsys cpuinfo
获取的是一段时间的均值

# 进程占用情况

adb shell top 
adb shell top | grep "包名" —— 查看某个包的一些性能
adb shell top -d 1 |grep "包名"

# 内存使用情况
adb shell dumpsys meminfo

总结

本文主要介绍了adb的一些高级用法,adb shell am以及相关命令对我们在使用appium进行App自动化测试时有很大的帮助,可以帮我们快速定位应用及活动名称,一些性能指标查看命令也可以帮助我们更好地执行App测试,希望本文能够帮到大家。

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
6月前
|
编解码 Shell Android开发
『移动端测试必备』ADB常用命令和使用
『移动端测试必备』ADB常用命令和使用
153 2
|
21天前
|
数据采集 人工智能 文字识别
ADB命令来捕获设备屏幕快照和发送鼠标事件来实现抓取公众号文章
ADB命令来捕获设备屏幕快照和发送鼠标事件来实现抓取公众号文章。解决方案: 1.通过ADB命令来捕获设备屏幕快照,传递给电脑并且保存在本地文件; 2.通过百度飞桨ocr解析图片获取内容并保存; 3.根据解析的内容和坐标,向手机发送鼠标事件(点击和上下,左右滑动)来控制页面的跳转。
39 1
|
1月前
|
Shell
常用 adb 命令
常用 adb 命令
20 2
|
1月前
|
Java Android开发
Android 对adb命令的拦截
Android 对adb命令的拦截
30 2
|
1月前
|
存储 编解码 Shell
|
1月前
|
安全 Java Shell
Android13 adb input 调试命令使用和源码解析
Android13 adb input 调试命令使用和源码解析
173 0
|
1月前
|
编解码 Android开发
常用adb命令
常用adb命令
73 2
|
10月前
|
Shell Linux 开发工具
adb--常用命令
adb--常用命令
|
11月前
|
Shell 测试技术 Android开发
08-adb命令之monkey压测
08-adb命令之monkey压测
|
1月前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
113 1