ADB 调试:轻松调试你的 Android 设备

前言

作为一名测试工作者,避免不了接触app测试工作,不管是进行功能测试还是性能测试,都需要对系统本身以及一些命令熟悉了解,才能构建出适合自己的自动化工具。这篇文章我们主要介绍adb命令,了解他的用法。

ADB

ADB(Android Debug Bridge)是Android调试桥,它是一个用于与Android设备通信的命令行工具。ADB提供了丰富的功能,可以帮助开发人员在开发、测试和调试Android应用程序时更加高效和便捷。

基本用法

  • 获取设备:adb devices
  • 安装应用程序:adb install <path_to_apk>,其中<path_to_apk>是待安装应用程序的路径。
  • 卸载应用程序:adb uninstall <package_name>,其中<package_name>是应用程序的包名。
  • 拷贝文件到设备:adb push <local_file> <device_location>,其中<local_file>是本地文件的路径,<device_location>是设备上目标位置的路径。
  • 从设备上复制文件:adb pull <device_file> <local_location>,其中<device_file>是设备上的文件路径,<local_location>是本地目标位置的路径。
  • 关闭adb后台进程:adb kill-server
  • 让Android脱离USB线的TCP连接方式 :adb tcpip 5555
  • 连接开启了tcp连接方式的手机:adb connect <host>[:<port>]
  • 连接多个设备时指定设备:adb -s <设备uid>

高级用法

  • app入口:adb logcat | grep -i displayed
  • 杀掉应用并重新启动:adb shell am start -W -n <package_name>/<activity_name> -S,其中<package_name>是应用程序的包名,<activity_name>是要启动的Activity名称。
  • 清除缓存以及权限都重置:adb shell pm clear <package_name>
  • 查看设备安装包名:adb shell pm list packages
  • 输出日志到某个文件:adb logcat -d>logcat.txt
  • 打印默认日志数据:adb logcat
  • 打印日志详细时间的简单数据:adb logcat -v time
  • 打印级别为Error的信息:adb logcat "*:E"
  • 打印时间和级别是Error的信息:adb logcat -v time "*:E"MAC系统使用该命令,需要添加双引号
  • 指定包名输出日志:adb logcat -v time *:E -e <package_name>
  • 清除之前的日志信息:adb logcat -c
  • 过滤日志:adb logcat | grep "kpl_coach" | grep "PkRoomActivity"
  • 获取近期崩溃日志:adb shell logcat -b crash
  • 获取SDK版本号:adb shell getprop ro.build.version.release
  • 获取手机名称:adb shell getprop ro.product.brand
  • 获取手机型号:adb shell getprop ro.product.model
  • 获取手机IP:adb shell ifconfig
  • 获取手机设备ID:adb shell settings get secure android_id
  • 获取手机分辨率:adb shell dumpsys window displays
  • 获取手机Mac地址:adb shell cat/sys/class/net/wlan0/address
  • 获取手机截图:adb shell screencap /sdcard/screenshot.png
  • 录制屏幕:adb shell screenrecord
  • 根据包名得到进程id:adb shell ps | grep <package_name>

性能统计

  • 获取所有的dumpsys子命令:adb shell dumpsys | grep -I DUMP
  • 获取当前activity:adb shell dumpsys activity top
  • 获取特定包基本信息:adb shell dumpsys package <package_name>
  • 获取系统通知:adb shell dumpsys notification
  • 获得内存信息:adb shell dumpsys meminto <package_name>
  • 获取cpu信息:adb shell dumpsys cpuinfo
  • 获取gpu绘制分析:adb shell dumpsys gfxinfo <package_name>
  • 获取电量:adb shell dumpsys battery

最后

熟悉这些命令后,我们就可以方便构建自己的自动化代码或者自动化测试工具。

相关推荐
源码方舟37 分钟前
【基于ALS模型的教育视频推荐系统(Java实现)】
java·python·算法·音视频
飞猿_SIR40 分钟前
Android Exoplayer 实现多个音视频文件混合播放以及音轨切换
android·音视频
萑澈1 小时前
2025深圳杯D题法医物证多人身份鉴定问题四万字思路
python·数学建模
Ronin-Lotus1 小时前
图像处理篇---MJPEG视频流处理
图像处理·python·opencv
HumoChen991 小时前
GZip+Base64压缩字符串在ios上解压报错问题解决(安卓、PC模拟器正常)
android·小程序·uniapp·base64·gzip
请你喝好果汁6411 小时前
python_竞态条件
开发语言·python
正在走向自律1 小时前
Python 数据分析与可视化:开启数据洞察之旅(5/10)
开发语言·人工智能·python·数据挖掘·数据分析
dudly2 小时前
Python 字典键 “三变一” 之谜
开发语言·python
小明.杨2 小时前
Django 中时区的理解
后端·python·django
陈奕昆3 小时前
五、【LLaMA-Factory实战】模型部署与监控:从实验室到生产的全链路实践
开发语言·人工智能·python·llama·大模型微调