ADB详解

文章目录

  • ADB概述
    • 一、安装与连接
    • 二、常规使用方法
    • 三、Adb shell
    • 四、性能统计dumpsys
    • 五、Monkey工具

ADB概述

ADB(Android Debug Bridge)顾名思义—“安卓调试桥”。

是一种功能多样的命令行工具,可与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

关于移动端Android平台上的自动化框架,很多都是基于ADB进行连接,甚至很多的API接口的调用也是借用的ADB

点击前往—官方文档

一、安装与连接

首先,需要Java sdk环境,这个就不再赘述。网上有很多教程,大家自行解决。

可以直接去国内的这个网站下载Android SDK:传送门;进入页面往下拉,找到SDK Tools,选择适合自己的版本进行下载。以下内容在win7环境安装,win10大体上相同。

ADB详解_第1张图片

下载后解压或安装,可以看到下图所示内容

ADB详解_第2张图片

这时候,如果Java环境安装正确,双击SDK Manager.exe就可以打开下图所示

ADB详解_第3张图片

这里面提供了很多的工具以供下载,比如Tools里面的Android SDK Platform-tools,里面就有我们所需要的Adb套件了。

下载安装完毕,接下来配置环境变量

  • 创建ANDROID_HOME,值就是SDK的目录

    • ADB详解_第4张图片
  • 在Path变量中添加以下路径变量

    • ;%ANDROID_HOME%\platform-tools
    • ;%ANDROID_HOME%\tools

ADB详解_第5张图片

  • 接下来就可以在命令行cmd窗口进行验证了。

    • 输入adb version,显示以下版本号,即为安装成功。

    在这里插入图片描述

安装成功后,怎样进行连接呢??

  • 首先无论是真机,还是模拟器,开发者选项内的USB调试是需要开启的
    • 这里进行演示使用的是夜神模拟器,则需要主动去连接以下,命令:adb connect 127.0.0.1:62001
      在这里插入图片描述

    • 显示connected to 127.0.0.1:62001则表示连接成功;可以使用adb devices查看当前连接的设备

在这里插入图片描述

二、常规使用方法

序号 命令 功能
01 adb devices 查看当前已连接设备
02 adb shell getprop ro.build.version.release 查看系统版本(安卓版本)
03 adb shell pm list packages 获取所有应用包名
04 adb shell dumpsys window|grep mCurrent 获取当前启动的应用包名
05 adb shell pm list packages huawei 获取包名包含某字符串的应用
06 adb logcat 查看日志
07 adb install ok.apk 使用命令安装apk
08 adb -s [设备序列号] install ok.apk 多台设备安装apk
09 adb uninstall [包名] 卸载应用
10 adb shell wm size 查看屏幕分辨率

其实以上命令日常的使用差不多足够了;毕竟现在自动化框架把该有的功能也都集成了。

三、Adb shell

实际上,Android系统是基于Linux内核的,所以Linux的很多命令在Android里也能够使用。

如果输入adb shell则进入Android的终端命令行模式

  • adb shell
    • adb shell dumpsys
    • adb shell pm
    • adb shell am
    • adb shell ps
    • adb shell monkey

#清除apk的所有缓存,再次打开apk会重新申请权限

adb shell pm clear com.taobao.taobao

四、性能统计dumpsys

  • 获取所有的 dumpsys 子命令 dumpsys | grep -i DUMP
  • 获取当前 activity adb shell dumpsys activity top
  • 获取 activities 的记录,可以获取到 appium 依赖的原始 activity dumpsys activity activities
  • 获取特定包基本信息 adb shell dumpsys package com.taobao.taobao
  • 获取系统通知 adb shell dumpsys notification
  • 获得内存信息 adb shell dumpsys meminfo com.android.settings
  • 获取 cpu 信息 adb shell dumpsys cpuinfo
  • 获取 gpu 绘制分析 adb shell dumpsys gfxinfo com.android.settings
  • 获取短信 adb shell dumpsys activity broadcasts | grep senderName=

五、Monkey工具

Monkey是一个在模拟器或设备上运行的程序,可生成伪随机用户时间,可以对正在开发的应用做一个稳定性的测试;属于一种伪随机的便利工具。

  • 不支持业务行为定制
    • 经常点到外部的app
    • 经常点击到注销和退出
    • 无法灵活控制
  • 常见的遍历工具:
    • UIcrawler
    • 谷歌原生monkey
    • 百度SmartMonkey
    • 腾讯NewMonkey
    • 头条zhangzhao Maxim
    • 等等

当我们要使用Monkey时,需要知道他的各个参数是怎样填写的。

序号 参数 含义
01 -p 指定被测应用程序
02 –pct-touch 60 点击事件占60%比重
03 –pct-motion 10 滑动事件占10%比重
04 –pct-majornav 20 主要导航事件占20%比重
05 –pct-syskeys 10 系统级事件操作占10%比重
06 –throttle [毫秒] 设置事件之间的缓冲时间
07 –ignore-crashes 忽略崩溃
08 –ignore-timeouts 忽略超时
09 –ignore-native-crashes 忽略本地崩溃
10 –monitor-native-crashes 忽略本地崩溃代码
11 –ignore-secuurity-execptions 忽略安全异常
12 -s 随机种子数 伪随机
13 -v -v -v 最高等级日志信息

事件的参数中还有一些未列举的,比如:

  • trackball–轨迹球(无规则滑动)
  • syskeys–系统级事件操作
  • nav–方向导航
  • appswitch–app之间activity活动窗口切换交互
  • anyevent–不常见的操作事件

举个栗子:

# monkey测试淘宝
adb shell monkey -p com.taobao.taobao --pct-touch 60 --pct-motion 10 --pct-majornav 20 --pct-syskeys 10 -s 17 --throttle 300 --ignore-crashes --ignore-timeouts --ignore-native-crashes --monitor-native-crashes --ignore-security-exceptions -v -v -v 200 >D:\monkeytest.txt

这个的命令呢,就是monkey测试淘宝应用,点击事件占60%比重、滑动事件占10%比重、主要导航事件占20%比重、系统级事件操作占10%比重、设置伪随机种子17号、设置事件之间的缓冲时间300毫秒、忽略崩溃、忽略超时、忽略本地崩溃、忽略本地崩溃代码、忽略安全异常、 -v -v -v 最高等级日志信息,事件次数200次,日志结果输出至D:\monkeytest.txt

你可能感兴趣的:(App自动化,Linux,软件测试,android,adb,测试工程师,软件测试,扫描测试工具)