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

ADB 调试工具的学习[特殊字符]

一、ADB 的工作原理

1.1 ADB 概念

  • ADB (Android Debug Bridge):Android 调试桥,是开发/测试 Android 应用必备的调试工具。
  • 作用:通过 电脑终端命令 操作 安卓手机/模拟器

1.2 ADB 构成与原理

ADB 由三部分组成:

  1. Client 端:运行在开发电脑,发送 adb 命令。
  2. Daemon 守护进程:运行在调试设备(手机/模拟器),执行命令。
  3. Server 端:运行在开发电脑,管理 Client 与 Daemon 之间的通信。

👉 总结
PC 端(Client + Server)发出指令 → 手机/模拟器(Daemon)接收并执行。


二、ADB 常用命令

2.1 获取包名和界面名(Activity)

应用场景:自动化测试中,需要指定“哪个应用的哪个界面”。

  1. 打开目标应用(如“设置”)。
  2. 执行命令:
  • Mac/Linux

    adb shell dumpsys window windows | grep mFocusedApp
    
  • Windows

    adb shell dumpsys window windows | findstr mFocusedApp
    

示例输出

ActivityRecord{2928d4fc u0 com.android.settings/.Settings t1127}
  • 包名:com.android.settings
  • 界面名(启动名):.Settings

2.2 文件传输

应用场景:拷贝数据库、日志文件,或上传测试数据。

  1. 电脑 → 手机

    adb push 电脑文件路径 手机文件路径
    

    示例

    adb push C:\Users\hm\Desktop\a.txt /sdcard
    

    👉 把 a.txt 发送到手机 SD 卡。

  2. 手机 → 电脑

    adb pull 手机文件路径 电脑文件路径
    

    示例

    adb pull /sdcard/a.txt C:\Users\hm\Desktop
    

    👉 把手机里的 a.txt 拉取到电脑桌面。


2.3 获取 APP 启动时间

应用场景:测试应用启动性能。

命令:

adb shell am start -W 包名/启动名

示例

adb shell am start -W com.android.settings/.Settings

结果解释

  • ThisTime:界面启动耗时(毫秒)。
  • TotalTime:应用自身启动耗时。
  • WaitTime:系统加应用总耗时。

👉 测试标准:一般启动时间不超过同类软件的 2 倍。


2.4 获取手机日志

应用场景:定位 bug,把日志发给开发。

步骤:

  1. 打开目标应用。

  2. 输入命令:

    adb logcat
    
  3. 执行操作触发 bug。

  4. 终端会输出日志,复制保存即可。


三、ADB 其他常用命令(了解)

命令说明
adb install 路径/xx.apk安装 app 到手机
adb uninstall 包名卸载手机上的 app
adb devices查看已连接设备及设备号
adb shell进入手机 Linux 命令行
adb start-server启动 adb 服务端
adb kill-server停止 adb 服务端
adb --help查看 adb 帮助
http://www.xdnf.cn/news/1362547.html

相关文章:

  • 【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(2):智慧城市西安与一带一路
  • 技术速递|使用 AI 应用模板扩展创建一个 .NET AI 应用与自定义数据进行对话
  • 通过C#上位机串口写入和读取浮点数到stm32实战5(通过串口读取bmp280气压计的数值并在上位机显示)
  • .NET表格控件Spread .NET v18.0——支持富文本、增强PDF导出
  • 算法学习8.25
  • 如何生成雪碧图和 WEBVTT
  • Elasticsearch脑裂紧急处理与预防
  • [React]Antd Upload组件上传多个文件
  • 微服务商城构筑其一
  • VIVO/OPPO手机,显示5G开关
  • 【Wrangler(Cloudflare 的官方 CLI)和 npm/npx 的区别一次讲清】
  • 大模型面试题剖析:Pre-Norm与Post-Norm的对比及当代大模型选择Pre-Norm的原因
  • openharmony之DRM开发:数字知识产权保护揭秘
  • ESP8266学习
  • 迁移面试题
  • 将跨平台框架或游戏引擎开发的 macOS 应用上架 Mac App Store
  • Docker基本使用方法和常用命令
  • 8851定期复盘代码实现设计模式的于芬应用
  • 从2D序列帧到3D体积感:我用AE+UE5 Niagara构建次世代风格化VFX工作流
  • TDengine IDMP 应用场景:IT 系统监控
  • Ubuntu 14.10 i386桌面版安装教程(U盘启动详细步骤-附安装包下载)​
  • 800G时代!全场景光模块矩阵解锁数据中心超高速未来
  • 5分钟发布技术博客:cpolar简化Docsify远程协作流程
  • Zabbix企业级监控运维实践为主(新)
  • ╳╳╳╳╳╳╳╳╳╳头像商店╳╳╳╳╳╳╳╳╳╳
  • 独立显卡接口操作指南
  • blazor 学习笔记--vscode debug
  • 探索汽车材料新纪元:AUTO TECH 2025广州先进汽车材料展即将震撼来袭
  • Vim 的 :term命令:终端集成的终极指南
  • 服务器Docker 安装和常用命令总结