ADB详解

10 篇文章 0 订阅
5 篇文章 3 订阅

ADB概述

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

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

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

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

点击前往—官方文档

一、安装与连接

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

    • 在这里插入图片描述
  • 在Path变量中添加以下路径变量

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

在这里插入图片描述

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

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

    在这里插入图片描述

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

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

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

在这里插入图片描述

二、常规使用方法

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

  • 14
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梓沫1119

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值