Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
简介: ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。

一、ADB 简介

1. 什么是 ADB

ADB,即 Android Debug Bridge,它是一个客户端 - 服务器端程序,充当调试桥的角色。客户端通常是用于操作的电脑,而服务端则是 Android 设备。同时,ADB 也是 Android SDK 中的一个实用工具,可对 Android 模拟器或真实的 Android 设备进行直接操作和管理。

2. 为何使用 ADB

ADB 功能丰富,能帮助开发者和用户完成多种操作:

  • 可运行设备的 shell(命令行)。
  • 管理模拟器或设备的端口映射。
  • 实现计算机和设备之间的文件上传与下载。
  • 对设备上的应用进行卸载、安装等操作。
  • 当 App 出现 ANR/Crash 等问题时,可通过 ADB 抓取日志。

简而言之,ADB 是连接 Android 手机与 PC 端的桥梁,也被称为安卓调试桥(仅适用于安卓系统,不适用于 iOS),借助它用户能在电脑上对手机进行全方位操作。

二、准备工具:单独安装 ADB(不安装 SDK)

1. 下载 ADB

Google 提供了 ADB 的 zip 包供下载,不同系统的下载路径如下:

2. 配置环境变量

解压安装包后,需将解压路径添加到系统变量的 Path 中。具体配置方式可参考自身系统情况,例如个人的配置可作为参考。 图片.png

3. 设备连接

可通过模拟器或数据线进行连接。使用数据线连接时,手机需进入“开发者选项”并打开“usb 调试”。不同品牌安卓机型首次打开“开发者选项”的方式有所不同,大多是双击手机版本号 3 - 5 次,屏幕会弹出“开发者模式已打开”的提示。若不清楚具体打开方式,可根据手机品牌进行百度查询。

4. 验证安装

在电脑上打开 cmd 窗口,输入“adb version”,若显示 adb 版本,则说明安装成功。

图片.png

三、ADB 命令详解

1. 基本命令

  • adb version:显示 adb 版本。
  • 图片.png
  • adb help:查看 adb 支持的所有命令。
  • 图片.png
  • adb devices:查看当前连接的设备。
  • 图片.png
  • adb get - serialno:查看设备号。
  • 图片.png

2. 权限命令

  • adb root:获取 Android 管理员(root 用户)权限,一般测试机可使用,Android 9 以上版本商用机不支持,但可修改底层部分配置。 图片.png
  • adb shell:登录设备 shell,登录后可使用 cd、ls、rm 等 Linux 命令。
  • 图片.png
  • adb remount:获取 System 分区可写权限,需先获取 root 权限。

3. 建立连接

  • adb -d:当同时连接 usb 设备和开启模拟器时,连接当前唯一通过 usb 连接的安卓设备。
  • adb -e shell:指定连接当前电脑上唯一的模拟器。
  • adb -s <设备号> shell:当电脑连接多台手机或模拟器时,指定设备号进行连接。
  • 图片.png
  • exit:退出当前操作。
  • 图片.png
  • adb kill - server:杀死当前 adb 服务,若连接设备失败可尝试杀掉重启,但非必要情况不建议使用。
  • 图片.png
  • adb start - server:重启 adb 服务。
  • 图片.png
  • adb -p 6666 start - server:若 adb 默认端口 5037 被占用,可指定端口号启动服务。
  • 图片.png

4. APK 操作指令

  • adb shell pm list packages:列出当前设备所有包名。
  • 图片.png
  • adb shell pm list packages -f:显示包和关联文件的安装路径。
  • 图片.png
  • adb shell pm list packages -d:显示禁用的包名。
  • adb shell pm list packages -e:显示启用的包名。
  • adb shell pm list packages -s:显示系统应用包名。
  • adb shell pm list packages -3:显示已安装第三方包名。
  • adb shell pm list packages xxxx:过滤指定包名,如“taobao”。
  • adb install <文件路径\apk>:将本地 apk 安装到设备,若手机外部安装需密码,要在手机上输入。
  • 图片.png
  • adb install -r <文件路径\apk>:覆盖安装。
  • 图片.png
  • adb install -d <文件路径\apk>:允许降级覆盖安装。
  • adb install -g <文件路径\apk>:安装时授予所有权限。
  • adb uninstall <包名>:卸载应用,安装用 apk,卸载用包名,可通过 adb shell pm list packages 查看。
  • adb shell pm uninstall -k <包名>:卸载应用但保留数据和缓存。
  • adb shell am force - stop <包名>:强制退出应用。
  • 图片.png

5. 文件操作指令

  • adb push <本地路径\文件或文件夹> <手机端路径>:将本地文件或文件夹复制到设备,注意 pc 机和 Android 机路径分隔符不同,复制失败可能是权限问题,可先使用 adb rootadb remount 命令。
  • 图片.png
  • adb pull <手机端路径/文件或文件夹> <pc 机路径>:将设备文件或文件夹复制到本地,注意事项同上。 图片.png

6. 日志操作指令

  • adb shell logcat -c:清理现有日志。
  • adb shell logcat -v time:在控制台输出日志。
  • adb shell logcat -v time > <存放路径\log.txt> :输出日志并保存到本地文件。
  • Ctrl + C:终止日志抓取。
  • adb shell logcat -v time *:E > <存放路径\log.txt> :打印级别为 Error 的信息。

日志等级包括 Verbse(明细)、Debug(调试)、Info(信息)、Warn(警告)、Error(错误)、Fatal(严重错误)。抓取日志步骤为:先输入命令启动日志,操作 App 复现 bug,按 Ctrl + C 停止日志,最后分析本地保存的文件。还可通过 adb shell pull /data/anr/traces.txt <存放路径> 拉取更详细的 Anr 日志。

7. 系统操作指令

  • adb shell getprop ro.product.model :获取设备型号。
  • adb shell getprop ro.build.version.release :获取 Android 系统版本。
  • adb get - serialno:获取设备序列号。
  • adb shell wm size:获取设备屏幕分辨率。
  • adb shell screencap -p /sdcard/mms.pngadb shell screencap -p /sdcard/screenshot.png :屏幕截图。 图片.png
  • adb pull /sdcard/mms.png <存放的路径>adb pull /sdcard/screenshot.png <存放的路径>:将截图导出到本地。
  • adb shell dumpsys activity |find “mResumedActivity”:查看前台应用包名,适用于 Android 8.0 以上系统,需先启动 app。
  • adb shell cat /proc/meminfo:获取手机内存信息。
  • 图片.png
  • adb shell df:获取手机存储信息。
  • adb shell screenrecord <存放路径/xxx.mp4> :录屏,文件名以.mp4 结尾。
  • adb shell screenrecord --time - limit 10 <存放路径/xxx.mp4> :录屏时间限制为 10 秒。
相关文章
|
26天前
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
通过引入 Sidecar 容器的技术,SAE 为用户提供了更强大的自定义日志与监控解决方案,帮助用户轻松实现日志采集、监控指标收集等功能。未来,SAE 将会支持 istio 多租场景,帮助用户更高效地部署和管理服务网格。
262 52
|
1月前
|
JSON 监控 物联网
WebSocket 调试全攻略:核心解析、工具选择与对比!
WebSocket 是一种全双工、实时交互的网络通信协议,适用于即时通信、实时数据流、多人协作、IoT 等场景。调试 WebSocket 时,工具应具备握手管理、实时消息收发、自定义 Header、消息大小告警、分组管理、多连接支持和断线重现等功能。主流调试工具如 Postman、ApiPost 和 ApiFox 各有优劣:Postman 界面友好适合基础调试;ApiPost 支持高级功能如消息分组和自动重连;ApiFox 则强化了多连接支持。选择工具时需根据具体需求和团队熟悉度决定。
|
1月前
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
SAE(Serverless应用引擎)是阿里云推出的全托管PaaS平台,致力于简化微服务应用开发与管理。为满足用户对可观测性和运维能力的更高需求,SAE引入Sidecar容器技术,实现日志采集、监控指标收集等功能扩展,且无需修改主应用代码。通过共享资源模式和独立资源模式,SAE平衡了资源灵活性与隔离性。同时,提供全链路运维能力,确保应用稳定性。未来,SAE将持续优化,支持更多场景,助力用户高效用云。
134 2
|
1月前
|
数据可视化 测试技术 API
前后端分离开发:如何高效调试API?有工具 vs 无工具全解析
在前后端分离的开发模式中,API 调试的效率直接影响项目的质量和交付速度。通过本文的对比分析,我们可以看到无工具调试模式虽具备灵活性和代码复用能力,但在操作便利性和团队协作上稍显不足。而传统的外部调试工具带来了可视化、高效协作与扩展性,却可能存在工具切换带来的开发链路断层问题。Apipost-Hepler 融合了两者的优势,让开发者无需离开熟悉的 IDEA 环境,就能享受可视化调试工具的强大功能。
67 5
|
1月前
|
JSON 监控 物联网
#WebSocket 调试全攻略:Postman、Apipost和Apifox核心解析、工具选择与对比!
WebSocket 是一种现代化的全双工通信协议,允许客户端和服务端通过持久连接实时双向传输数据。它适用于即时通讯、实时通知、金融行情、在线协作、物联网等场景。调试 WebSocket 时,工具应具备握手管理、实时消息收发、自定义 Header、消息大小监控、分组管理、多连接支持等功能。
108 1
|
2月前
|
数据可视化 测试技术 API
GraphQL开发工具选型指南:Apipost高效调试与文档生成实战解析
本文深入解析了GraphQL开发工具Apipost在高效调试与文档生成方面的优势,对比同类工具Apifox,突出其可视化界面、实时调试及自动化文档生成等特性。Apipost通过智能代码补全、错误提示等功能简化复杂Query编写,支持一键生成标准化文档,显著提升开发效率和团队协作效果,尤其适合中大型团队应对复杂业务场景。
|
4月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
4月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
186 3
|
关系型数据库 MySQL Linux
MySQL 数据库linux系统下修改配置文件设置mysql是否大小写敏感实例演示
MySQL 数据库linux系统下修改配置文件设置mysql是否大小写敏感实例演示
277 0
MySQL 数据库linux系统下修改配置文件设置mysql是否大小写敏感实例演示
|
28天前
|
Linux
linux命令详细说明以及案例
本文介绍了常用的 Linux 命令及其详细说明和示例,包括:`ls`(列出目录内容)、`cd`(更改目录)、`rm` 和 `mv`(删除与移动文件)、`grep`(搜索文本)、`cat`(显示文件内容)以及 `chmod`(更改文件权限)。每个命令均配有功能描述、选项说明及实际案例,帮助用户更好地掌握 Linux 命令的使用方法。
154 56
下一篇
oss创建bucket