利用 Chrome 开发者工具远程调试 Android 中的原生 WebView

之前写过一篇关于 Android Studio 断点调试技巧 的文章,但都是针对 Native 代码的调试,对于 Hybrid 开发模式下的 WebView 却无从下手。幸运的是,PC 中的 Chrome 浏览器提供的开发者工具能够帮助我们远程调试 Android 中的 WebView 加载的网页。

Android 4.4 (KitKat) 开始,使用 Chrome 开发者工具可以帮助我们在原生 Android 应用中远程调试 WebView 网页内容。一起来看看怎么操作吧。

第一步,设置 WebView 调试模式。WebView 类包含一个公共静态方法,作为 Debug 开关:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    WebView.setWebContentsDebuggingEnabled(true);
}

注意:这个方法兼容至 Android 4.4 及更高版本,并且只需设置一次,便可应用于项目中的所有 WebView,同时不受 Manifest 文件中 debuggable 属性的影响。

第二步,确保 USB 连接的前提下,打开 PC 中的 Chrome 浏览器,输入网址,打开页面:

chrome://inspect

DevTools 页面的 Devices 菜单页自动显示当前连接的远程设备名和序列号,以及当前原生 App 打开的 WebView 的网页地址,如图:

点击对应网页下方的 inspect 选项便可以进入开发者工具页:

如图所示,网页显示内容和源代码、控制台等都可以看到,供安卓开发人员自由调试。

事实上,Chrome 开发者工具也是 H5 开发人员开发手机端网页的调试利器。

打开 PC 中 Chrome 浏览器的开发者工具页面:设置 -> 更多工具 -> 开发者工具,或者直接在 Chrome 浏览器的任意网页上右键选择 检查。在开发者工具按照下图方式中打开 Remote devices

同样,确保 PC 通过 USB 连接手机设备的前提下,检查开启 Remote devices 页面左侧 Settings 菜单中的 Discover USB devices 选项:

打开手机的 Chrome 浏览器 App,在 Remote devices 中选择对应的手机设备,便可以看到当前 Chrome App 的版本信息,以及一个 URL 输入框:

在此,我们可以输入任意的 Url 地址,点击 Open,便可同步打开手机 Chrome 上的网页,同时在 Remote devices 出现对应的地址栏,点击即可进入前面介绍 WebView 时所看到的类似调试页。

更多有关 Chrome DevTools 的细节,请参考链接:Chrome DevTools for Mobile: Screencast and Emulation

关于我:亦枫,博客地址:http://yifeng.studio/,新浪微博:IT亦枫

微信扫描二维码,欢迎关注我的个人公众号:安卓笔记侠

不仅分享我的原创技术文章,还有程序员的职场遐想

时间: 2024-10-27 02:37:40

利用 Chrome 开发者工具远程调试 Android 中的原生 WebView的相关文章

Chrome 开发者工具断点调试

很多人不了解 Chrome Dev Tools (开发者工具)的使用方法和技巧. 其中很多技能,无论是前端开发从业者,还是普通用户,了解一些还是对日常很有帮助的. 本猿定期录制.甚至根据您的需求来订制一些小短片,帮助您掌握开发技巧. 适用人群: 计算机爱好者.web 前端开发入门者 资料列表: 1. Elements:常用功能介绍(包含 Console 的部分应用) 2. Network: 黑科技 3. Sources: 断点调试技术,给你在自学 Javascript 的路上“插翅” 4. So

在 Chrome 开发者工具中调试 node.js

命令行工具 devtool ,它可以在 Chrome 的开发者工具中运行 Node.js 程序. 下面的记录显示了在一个 HTTP 服务器中设置断点的情况. 该工具基于 Electron 将 Node.js 和 Chromium 的功能融合在了一起.它的目的在于为调试.分析和开发 Node.js 应用程序提供一个简单的界面. 你可以使用 npm 来安装它: npm install -g devtool 在某种程度上,我们可以用它来作为 node shell 命令的替代品.例如,我们可以这样打开一

如何通过Chrome远程调试android设备上的Web网站

网上的帖子很多,但很多都是老版本的,试过了,根本不管用,花了一天时间,终于在本机试验通过了,特记录下来,以备用.有需要的朋友也可以参考.先上一张图,看看PC端chrome上调试的效果: 左边是手机的模拟操作器,右边是大家熟悉的开发人员工具,也可以在手机上操作,PC端左边屏幕会同步到手机上的界面. 下面再说一下环境配置: 1.手机端,我手机是华为荣耀4,android4.4.4,很旧的手机了,大家别笑话,但不影响本次试验.安装chrome版本为58.0.3029.83: 2.PC端,win7 64

在chrome开发者工具中观察函数调用栈、作用域链与闭包

在chrome开发者工具中观察函数调用栈.作用域链与闭包 在chrome的开发者工具中,通过断点调试,我们能够非常方便的一步一步的观察JavaScript的执行过程,直观感知函数调用栈,作用域链,变量对象,闭包,this等关键信息的变化.因此,断点调试对于快速定位代码错误,快速了解代码的执行过程有着非常重要的作用,这也是我们前端开发者必不可少的一个高级技能. 当然如果你对JavaScript的这些基础概念[执行上下文,变量对象,闭包,this等]了解还不够的话,想要透彻掌握断点调试可能会有一些困

前端调试效率低?试试这10个“Chrome开发者工具”使用技巧

天给大家分享一些使用“Chrome开发者工具”的小技巧.包括调试,优化页面渲染速度等.希望能提升Web开发人员的工作效率. 1,打开Shadow DOM显示 浏览器对例如Video.Password等组件进行了封装,无法查看到组件的详细代码,不利于调试.幸好,通过配置能够在元素标签器中显示被隐藏的组件代码. 实现:Settings → General → Elements → Show user agent shadow DOM 2,在控制台快速选择元素 在Chrome Dev Tools 控制

关于异步加载的 javascript 不出现在 chrome 开发者工具的 source 中的解决方法

首先,当你看到这篇文章时,我相信你已经是一个中级甚至是高级的前端开发了. 因为异步加载 javascript 这样的做法,在一些中小型项目几乎是看不到的. 而异步加载 javascript 归根到底,是为了性能优化,防止 JS 加载造成页面阻塞. 会注意到性能,说明你已经不再是一个停留在实现层面的前端开发了,而是一个有着更高追求的人. 在此,向所有有追求的人点赞~~~ 昨天为公司的项目做前端优化,其中一项就是做脚本异步加载. 但是奇怪的是,异步加载的 js 出现在 chrome 开发者工具的 n

Chrome开发者工具详解(1):Elements、Console、Sources面板

Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Network面板. Timeline面板.Profiles面板.Application面板.Security面板.Audits面板这些功能面板. 这些按钮的功能点如下: Elements:查找网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈. Console:记录开发者开发过程中的日志信息,且可以作为与JS进行交互的命令行Shell. Sources:断

远程调试 Android 设备使用入门

远程调试 Android 设备使用入门 目录 要求 第 1 步:发现您的 Android 设备 第 2 步:从您的开发计算机调试 Android 设备上的内容. 更多操作:重新加载.聚焦或关闭一个标签 检查元素 Android 设备到开发计算机的抓屏 反馈 By Kayce Basques Technical Writer at Google 从 Windows.Mac 或 Linux 计算机远程调试 Android 设备上的实时内容. 本教程将向您展示如何: 设置您的 Android 设备进行

Chrome 开发者工具的Timeline和Profiles提高Web应用程序的性能[转]

我们都希望创建高性能的Web应用程序.由于我们的应用程序变得越来越复杂,我们可能想要支持丰富的画面以及理想的60帧/秒,这能保证我们的应用程序响应灵敏且生动流畅. 知道如何衡量和提高性能,是一个有用的技能,在这短短的文章中,我会带您简单回顾关于如何通过 Chrome DevTools的 Timeline和Profiles做到这一点. 看!这是一个美丽的GIF动画.这标志着这篇文章这里开始展开:) 记录 Timeline工具栏提供了对于在装载你的Web应用的过程中,时间花费情况的概览,这些应用包括