当前位置: 首页 > backend >正文

adb 常用命令笔记

环境准备

确保设备已安装ADB工具并启用USB调试模式。通过以下命令验证设备连接:

adb devices

输出应显示设备序列号和“device”状态。

基础ADB操作

获取当前活动窗口信息:

adb shell dumpsys window windows | grep -E 'mCurrentFocus'

模拟点击事件需获取屏幕坐标:

adb shell getevent -p

输入自动化

执行文本输入命令:

adb shell input text "test123"

模拟物理按键操作:

adb shell input keyevent 4  # 返回键

屏幕截图与分析

截取屏幕并导出到本地:

adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png ~/Desktop/

使用OpenCV进行图像识别(需Python环境):

import cv2
template = cv2.imread('button_template.png', 0)
screen = cv2.imread('screen.png', 0)
res = cv2.matchTemplate(screen, template, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

事件序列封装

创建可复用的Shell函数:

function tap() {adb shell input tap $1 $2
}
function swipe() {adb shell input swipe $1 $2 $3 $4 $5
}

循环测试逻辑

实现重复压力测试:

for i in {1..100}; dotap 500 800sleep 1adb shell input keyevent 3
done

日志收集

定向抓取错误日志:

adb logcat -v time | grep "E/"

按时间戳保存日志文件:

adb logcat -d -v time > $(date +"%Y%m%d_%H%M%S").log

性能监控

获取CPU使用率:

adb shell top -n 1 | grep com.target.app

监测内存占用:

adb shell dumpsys meminfo com.target.app

异常处理

检测ANR并重启应用:

if adb logcat -d | grep -q "ANR in"; thenadb shell am force-stop com.target.appadb shell am start -n com.target.app/.MainActivity
fi

设备控制

重启设备并等待恢复:

adb reboot
until adb devices | grep -w device; do sleep 5; done

设置系统属性值:

adb shell setprop debug.layout false
http://www.xdnf.cn/news/10037.html

相关文章:

  • 02 APP 自动化-Appium 运行原理详解
  • 【cpp-httplib】 安装与使用
  • 【ArcGIS微课1000例】0147:Geographic Imager6.2下载安装教程
  • PCB设计实践(三十)地平面完整性
  • 【孙悟空喝水】2022-2-7
  • 使用flex实现三栏布局,两边固定,中间自适应
  • 烟草工业数字化转型:科技领航,重塑传统产业新生态
  • OpenCV中的重要、常用知识点汇总(图像处理、特征检测与匹配、图像分割与轮廓分析、视频处理与分析和机器学习与深度学习等)
  • 强化学习的前世今生(五)— SAC算法
  • WPF的交互核心:命令系统(ICommand)
  • golang 实现基于redis的并行流量控制(计数锁)
  • Joern项目第三方库依赖分析
  • 系统架构设计综合知识与案例分析
  • 深入 RAG(检索增强生成)系统架构:如何构建一个能查资料的大语言模型系统
  • MCU STM32搭配存储SD NAND(贴片式T卡)于智能皮电手环(Galvanic Skin Response, GSR 手环)的全方位评测
  • 硬件工程师笔记——运算放大电路Multisim电路仿真实验汇总
  • 三格电子——如何解决消防设备联网问题
  • [JVM] JVM内存调优
  • 黑河流域30弧秒分辨率月尺度地表水及地下水灌溉量数据集(1981-2013)
  • Redis Sorted Set 深度解析:从原理到实战应用
  • GitLens 教学(学习更新中)
  • (一)微服务(垂直API)
  • SpringBoot+vue+SSE+Nginx实现消息实时推送
  • 0-EATSA-GNN:基于图节点分类师生机制的边缘感知和两阶段注意力增强图神经网络(code)
  • grounded_sam2 使用踩坑笔记
  • gbase8s数据库+mybatis问题记录
  • 【JUC】深入解析 JUC 并发编程:单例模式、懒汉模式、饿汉模式、及懒汉模式线程安全问题解析和使用 volatile 解决内存可见性问题与指令重排序问题
  • Java处理动态的属性:字段不固定、需要动态扩展的 JSON 数据结构
  • 爬虫--以爬取小说为例
  • android协程异步编程常用方法