[译]使用开发工具来调试 Beta 版 WebView

[译]使用开发工具来调试 Beta 版 WebView

自2014年以来,Android WebView 已经作为一个可更新的系统组件铺平了道路,为 Android 应用程序和用户提供了稳定性和性能改进、现代网络平台功能和安全补丁。 然而,更新可能是一把双刃剑: 就像我们努力追求稳定和向下兼容一样,新的崩溃和突破性的变化偶尔会出现。 为了更快地解决这些问题,今天我们发布了 WebView DevTools,这是一套新的设备上调试工具,用于诊断由 WebView 导致的崩溃和运行不正常的 web 平台特性。

为了您的方便,WebView 开发工具作为 WebView 本身的一部分包含在内。 启动 WebView Devtools 最简单的方法是尝试 WebView Beta。 的测试版程序是应用程序开发人员在到达用户之前几周获得 WebView 的一种方式,这样可以获得额外的准备时间来向我们的团队报告兼容性缺陷。 从今天的版本(M83)开始,WebView Beta 包含了 WebView DevTools 的启动图标。 只需要找到蓝色和灰色的 WebView 齿轮图标,就可以开始在你的应用程序中调试 WebView。

在 WebView DevTools 中检查崩溃

没有一个软件是无 bug 的,加载 web 内容是一个挑战,所以 WebView 崩溃对于应用程序来说并不奇怪。更糟糕的是,这些崩溃很难调试,因为 WebView 的 Java 和 C++ 堆栈跟踪是模糊的(为了最小化 Android 用户的 APK 大小)。为了使这些崩溃更具可操作性,我们向 WebView 的内置崩溃记者提供一流的访问权限。 只要打开 WebView DevTools,点击“崩溃” ,你就会看到设备上的应用程序最近导致的 WebView 崩溃列表。您可以使用这个工具查看崩溃报告是否已经上传到我们的服务器,如果有必要强制上传它,然后提交一个 bug。这确保了我们的团队拥有快速解决这些故障所需的所有信息,并确保在您的应用程序中有一个更流畅的用户体验。

使用标志突出显示 Android 应用中 WebView 的使用情况

然而,并不是所有的 bug 都会导致崩溃。由于新特性引起的行为改变,过去的一些 WebView 版本已经破坏了 Android 应用程序。虽然我们的团队的策略是回滚那些破坏兼容性的特性,但是 chromium 团队在每个版本中都为 WebView 启动了几个特性,而且我们经常需要时间来识别出问题的特性。也可以在这里提供帮助。受到谷歌 Chrome 浏览器 Chrome://flags 工具的启发,我们为应用程序开发者提供了类似的实验性功能控件,这个工具可以让 Google 相容性测试拥有网络平台功能。 首先,打开 WebView DevTools,点击“ flags” ,启用或禁用任何可用的特性,然后关闭并重新启动正在测试的基于 WebView 的应用程序。 使用 webviewdevtools 可以帮助我们一起确定罪魁祸首,以便回滚它。我们还为即将发布的版本提供了特性标志,因此您可以通过在测试设备上启用这些特性来更早地测试兼容性。

我们希望你发现 WebView 开发工具有助于报告崩溃和测试新的 WebView 功能。今天安装 WebView 测试版,开始使用 WebView 开发工具,查看用户指南获取更多提示和技巧。

原文作者: Nate Fischer WebView 团队软件工程师 原文地址:https://android-developers.googleblog.com/2020/04/developer-tools-to-debug-webview-in-beta.html

版权声明

禁止一切形式的转载-禁止商用-禁止衍生 申请授权

脉脉不得语
脉脉不得语
Zhengzhou Website
Android Developer | https://androiddevtools.cn and https://androidweekly.io Funder | GDG Zhengzhou Funder & Ex Organizer | http://Toast.show(∞) Podcast Host

你已经成功订阅到 Android 开发技术周报
太棒了!接下来,完成检验以获得全部访问权限 Android 开发技术周报
欢迎回来!你已经成功登录了。
Unable to sign you in. Please try again.
成功!您的帐户已完全激活,您现在可以访问所有内容。
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.
🍗