远程调试 Android 设备

在 Windows、Mac 或 Linux 电脑上,可以远程调试 Android 设备正在显示的内容。本教程介绍如何设置 Android 设备并让开发电脑发现它、从电脑检查和调试设备上的实时内容,以及将 Android 页面投屏到电脑上的 DevTools 实例。

远程调试连接示意图

第一步:发现 Android 设备

以下流程适用于大多数用户。如果连接失败,请参阅后面的排查步骤。

  1. 在 Android 设备上打开开发者选项。
  2. 启用 USB 调试。
  3. 在开发电脑上打开 Chrome。
  4. 访问 chrome://inspect#devices。
  5. 确认已勾选 Discover USB devices(发现 USB 设备)。

已启用发现 USB 设备

  1. 使用 USB 数据线,将 Android 设备直接连接到开发电脑。
  2. 首次连接时,设备可能显示为 Offline(离线),处于等待授权的状态。此时应在 Android 设备屏幕上接受调试会话提示。

等待授权的离线设备

  1. 如果出现 Android 设备的型号名称,就说明 DevTools 已成功建立连接。

成功连接后显示设备型号

  1. 继续第二步。

排查:DevTools 无法检测到 Android 设备

首先确认硬件连接正确:

  • 如果使用了 USB 集线器,尝试改为将 Android 设备直接连接电脑。
  • 拔下设备与电脑之间的数据线,再重新插入。操作时,Android 设备和电脑的屏幕都应保持解锁。
  • 确认数据线能够传输数据。电脑应能浏览 Android 设备上的文件。

再检查软件设置:

如果设备没有弹出“允许 USB 调试”提示,可以尝试:

  • 在电脑上的 DevTools 获得焦点、Android 设备显示主屏幕时,断开再重新连接 USB 数据线。设备或电脑锁屏时,提示有时不会显示。
  • 调整设备和电脑的显示设置,使屏幕不进入休眠。
  • 将 Android 的 USB 模式设为 PTP。相关经验见 Galaxy S4 不显示 USB 调试授权对话框。
  • 在 Android 开发者选项中选择“撤销 USB 调试授权”,将授权状态重置后再连接。

如果发现了本节或上述 Stack Overflow 问题中没有提到的解决办法,可以在那里补充回答,或在 developer.chrome.com 仓库提交问题。

第二步:从开发电脑调试 Android 设备上的内容

  1. 在 Android 设备上打开 Chrome。
  2. 在电脑的 chrome://inspect/#devices 中,可以看到设备型号和序列号。其下方显示设备正在运行的 Chrome 版本,版本号位于括号内。

Android 设备上的 Chrome 版本

  1. 在 Open tab with url 文本框输入 URL,然后点击 Open。该页面会在 Android 设备上的新标签页中打开。

远程标签页列表

每个远程 Chrome 标签页都在 chrome://inspect/#devices 中拥有独立区域,可以从该区域操作标签页。如果有应用使用 WebView,也会为这些应用显示对应区域。官方示例中只打开了一个标签页。

  1. 点击刚打开的 URL 旁边的 Inspect(检查),即可打开新的 DevTools 实例。

远程标签页的 DevTools 实例

电脑上打开的 DevTools 版本由 Android 设备正在运行的 Chrome 版本决定。因此,如果设备上的 Chrome 很旧,出现的 DevTools 界面可能与你平常使用的界面差别很大。

更多操作:暂停、聚焦、重新加载或关闭标签页

URL 下方的菜单可用于暂停、聚焦、重新加载或关闭标签页。

标签页操作菜单

检查元素

进入 DevTools 的 Elements 面板,将鼠标悬停在元素上,该元素就会在 Android 设备的视口中高亮。

也可以通过点击 Android 屏幕上的元素,在 Elements 面板中选中它:先点击 DevTools 的 Select Element(选择元素)按钮,再点击设备屏幕上的目标元素。第一次触摸后,Select Element 会被禁用,因此每次使用都需要重新启用。

将 Android 屏幕投屏到开发电脑

点击 Toggle Screencast(切换投屏),即可在 DevTools 实例中查看 Android 设备上的页面内容。

可以通过以下方式操作投屏:

  • 鼠标点击会转换成设备上的轻触,并触发相应的触摸事件。
  • 电脑上的按键输入会发送到设备。
  • 按住 Shift 并拖动,可以模拟双指缩放手势。
  • 使用触控板、鼠标滚轮,或用鼠标指针进行甩动,可以滚动页面。

使用投屏时应注意:

  • 投屏只显示网页内容。透明区域对应设备界面,例如 Chrome 地址栏、Android 状态栏和 Android 键盘。
  • 投屏会降低帧率。测量滚动或动画性能时应关闭投屏,才能更准确地观察页面性能。
  • Android 屏幕锁定后,投屏内容会消失。解锁后,投屏会自动恢复。

使用 Android Debug Bridge(adb)手动调试

少数情况下,另一种远程调试方式可能更有帮助。例如,你希望直接连接 Android Chrome 的 Chrome DevTools Protocol(CDP)。此时可使用 Android Debug Bridge(adb)。

  1. 确认已在 Android 设备上启用开发者选项和 USB 调试。
  2. 打开设备上的 Chrome。
  3. 使用 USB 数据线连接开发电脑;也可以使用 adb 的 Wi-Fi 连接。
  4. 在电脑命令行运行下列命令,确认设备出现在列表中:
adb devices -l
  1. 将设备上的 CDP 套接字转发到电脑的本地端口,例如 9222:
adb forward tcp:9222 localabstract:chrome_devtools_remote
  1. 连接成功后,可以检查:
  • http://localhost:9222/json 会列出 page 目标。
  • http://localhost:9222/json/version 会按照 CDP 文档的说明,提供 browser 目标端点。
  • 即使没有勾选 Discover USB devices,chrome://inspect/#devices 中也会出现设备内容。

排查问题时,优先参阅 adb 文档。还可查阅原文列出的较早指南:remote-debugging-legacy、remote-debugging、girish.in。这些属于历史资料。


原文:Remote debug Android devices。作者:Kayce Basques、Sofia Emelianova。本文为中文翻译;配图来自原页面。除另有说明外,正文采用 CC BY 4.0;代码示例采用 Apache 2.0。许可说明详见 Google Developers 网站政策。Java 是 Oracle 和/或其关联公司的注册商标。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容