APP测试--adb使用介绍

一、adb简介

1.1、adb是什么?

ADB,全名Android Debug Bridge(Android调试桥),是Android提供的一个通用的调试工具,基于C/S架构的命令行工具,通过这个工具,可以使PC能够和Android设备来进行通信,通过电脑控制手机的目的。

1.2、adb构成

adb 构成为三部分:adb 客户端、adb 服务端、adb daemon守护进程

  • adb客户端:运行在开发机器,负责发送adb命令,比如:个人PC
  • adb daemon守护进程:运行在Android设备中,负责接收并执行adb命令。例如:Android手机、 Android模拟器等
  • adb服务端:运行在开发机器,负责adb客户端和adb daemon之间通信

1.3、adb能干啥?

  • 通过电脑控制手机各种操作【含APP性能测试】
  • 电脑和手机之间数据传递

1.4、adb环境搭建

  • 解压后到指定目录即可
  • 配置环境变量:
    • 打开系统-->系统信息-->高级系统设置
    • 环境变量-->系统变量 path-->编辑
    • 打开cmd窗口输入: adb version 验证

二、adb使用准备

  • 2.1 安装配置adb工具(参见上述1.4步骤)
  • 2.2 连接Android设备
    • Android模拟器
    • Android手机:手机需要开启USB调试模式

三、adb常用命令

3.1、设备本身

  • 查看设备是否接入: adb devices

检查设备是否已经接入,及设备显示是否正确

  • 设备接入不正常【offline】:重新关闭/开启adb服务
    • adb服务关闭: adb kill-server
    • adb服务开启: adb start-server
  • 设备手动连接
    • 连接木木模拟器: adb connect 127.0.0.1:7555
    • 连接雷电模拟器: adb connect 127.0.0.1:5555
    • WiFi局域网连接真机: adb connect 手机IP地址
    • 手动断开真机/模拟器: adb disconnect IP地址
  • apk软件包安装卸载:通过adb命令给手机安装卸载软件
    • 安装软件: adb install 电脑路径/apk文件名
    • 卸载软件: adb uninstall apk包名

注意:安装和卸载后面跟不同的名称

  • 文件上传下载:通过adb命令给手机上传/从手机下载文件
    • 上传文件: adb push 电脑路径 设备路径
    • 下载文件: adb pull 设备路径 电脑路径
  • 查看跟踪手机端/APP日志
  • cmd下直接查看: adb logcat
  • 将日志重定向文件: adb logcat > 电脑路径/日志文件名.log

3.2、adb shell 命令

1、Android系统本身是基于Linux系统开发的,因而也支持Linux命令,通过adb shell命令进入,在"/system/bin"中可以查看支持的Linux命令操作。在cmd下可以直接将adb shell 命令和Linux命令结合一起操作

2、adb shell :用户通过命令行解释器和操作系统进行交互,实现对机器的控制

  • 方式一:先进入,再操作
  • 方式二:直接在cmd下操作

3.2.1、pm和am命令

  • adb shell pm命令
    • 列出已安装的APP包: adb shell pm list packages
    • 列出已安装的第三方APP包: adb shell pm list packages -3

1、pm工具为包管理(package manager)的简称,能模拟android行为或者查询设备上的应用等;

2、可以使用pm工具来执行应用app的安装、查询、控制等操作;Android开发测试都会涉及到。

  • adb shell am命令
    • 获取app启动页: adb shell dumpsys window | findstr mCurrentFocus
    • 获取启动页时注意:在启动APP的瞬间需要执行上述命令,而不是启动完成后再执行上述命令
    • app启动命令: adb shell am start -W 包名/Activity名
    • app停用命令: adb shell am force-stop 包名

1、am:全称活动管理器(activity manager),相当于管理app的页面,能使用am去模拟各种系统的行为。例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等

3.2.2、dumpsys命令

  • adb shell dumpsys命令

1 adb shell dumpsys:查询所有的系统服务相关信息

  • ① 查看系统内存情况: adb shell dumpsys meminfo
  • 查看某个程序占用内存情况: adb shell dumpsys meminfo 包名

1、例如:查看拼多多APP占用手机内存情况,系统总内存:7647668KB;拼多多APP此刻占用内存:310310KB

2、请问:此时拼多多APP占用手机内存比例有多少? (310310/7647668)*100% = 4%

  • ② 查看CPU占用情况: adb shell dumpsys cpuinfo | findstr 包名
  • ③ 获取设备总电量信息: adb shell dumpsys battery
  • ④ 获取某应用程序流量
    • 查看应用程序进程ID(PID): adb shell ps | findstr xxx
    • 查看应用程序耗费流量: adb shell cat /proc/PID/net/dev 【PID指上述获取的进程ID】
    • 查看应用程序耗费实时流量: adb shell watch -n xx cat /proc/PID/net/dev 【每隔xx秒 获取PID对应app的流量,单位为Byte】
  • ⑤ 查看流畅度: adb shell dumpsys gfxinfo 包名 | findstr "Janky frames"

注意事项:

需要手机开启"GPU呈现模式分析"

通过查看Janky frams获取丢帧率(丢帧越多越卡),正常达到24帧以上肉眼感知不出 卡顿(60帧最佳)

  • ⑥ app稳定性: adb shell monkey -p 包名 -v 随机次数 > 路径/文件名.log

稳定性测试:检查随意使用app是否会出现闪退(crash)无响应(ANR)现象

通过查询日志中关键词出现的次数就可以统计出是否出现异常,及出现的异常数据

四、网盘adb下载

通过网盘分享的文件:android-sdk-adb

链接: https://pan.baidu.com/s/1A-FSCxftplmBH2igeqt7Vg?pwd=x6rw 提取码: x6rw

相关推荐
溪语流沙6 分钟前
【Web全栈进阶】Alembic数据库迁移:改表结构不再删库
前端·数据库·python·elasticsearch·postgresql
Evan_Lai22 分钟前
(一)独热编码、标签编码、目标编码、序数编码详解
python·机器学习
用户76241175670523 分钟前
第二章 Python语言基础
python
129Lab24 分钟前
BMS 核心算法:SOC 估算从安时积分到 LSTM-UKF 串级融合的 30 年演进(附 Python 实现)
python·算法·lstm·python3.11·bms·soc估算
129Lab33 分钟前
电池热管理仿真的AI加速:用Python+PINN物理信息神经网络替代传统CFD的可行性探索
pytorch·python·cfd·pinn·物理信息神经网络·仿真加速·电池热管理
用户298698530141 小时前
Python 中 HTML 转 PDF 的实现方法
python·html·api
答案是你1 小时前
YOLOE 开放词汇检测 + ONNX / TensorRT 推理,开源了!
python·深度学习·yolo·目标检测·计算机视觉·视觉检测
2601_962885721 小时前
AlphaFeed 支持哪些 K 线周期?period参数怎么传?
前端·数据库·python
老歌老听老掉牙1 小时前
基于 Python 的顺次文本拼接:以 MCD 数控文件为例
python·数控·mcd
朝朝辞暮i1 小时前
VLA 系统学习第 7 课:loss.backward() 到底做了什么?——从计算图到反向传播
人工智能·python·深度学习·神经网络·vla