Android Studio 对现代 WorkManager 的支持

Android Studio 对现代 WorkManager 的支持

上一篇文章 中,我们提到了现代 WorkManager API 对工具支持方面也进行了改进,本文我们将结合实际案例来看看具体有哪些改进。如果您更喜欢通过视频了解此内容,请在此处查看:

△ Android Studio 对现代 WorkManager 的支持

从 Android Studio Arctic Fox 开始,您可以直接 在 Android Studio 内使用后台任务检查器检查和调试 Worker

后台任务检查器是应用检查套件的一部分,它针对应用的几个方面提供更丰富详细的信息。为了充分利用检查器,您的应用需要使用 WorkManager 2.5 或更新的版本。

应用检查器启用方法

首次打开应用检查器的最快方法是: 连续按两下 "Shift" 键,然后在弹出对话框中输入 App Inspection 并按回车键确认。您也可以从菜单栏依次选择: View → Tool Window → App Inspection 来打开应用检查器面板。

△ 打开 App Inspection 面板

△ 打开 App Inspection 面板

示例演示

本次演示使用了 Android Studio Bumblebee 和 GitHub 上公开的 WorkManager 示例

在 App Inspection 面板中切换到后台任务检查器 (Background Task Inspector) 标签,勾选应用中的 Filter,然后点击 Apply 按钮。可以看到在随着过滤的持续进行,每个 Worker 在其生命周期中的状态也在持续变化着。由于这些 Worker 按照顺序运行,所以 CleanupWorker 需要在下一个 Worker 开始之前完成。其他的所有 Worker 此时要么处于排队状态,要么处于阻塞状态。

△ 使用 WorkManagerSample 应用和应用检查器面板

△ 使用 WorkManagerSample 应用和应用检查器面板

现在 CleanupWorker 已经完成,队列中的其他 Worker 也将按照次序运行。

△ 使用应用检查器面板的图表视图

△ 使用应用检查器面板的图表视图

您也可以从类似图示的图像中查看整个接续队列的内容。请从中选择一个 Worker,切换到图表视图 (按钮为流程图样式)。对于更加复杂的队列来说,图表视图是一种高效且不可或缺的理解手段。从这两种视图中,您都可以直接点击任何 Worker 来获得更详尽的分析。

△ 后台任务的详细信息

△ 后台任务的详细信息

在顶部是一个基本的说明信息,包括可点击的类名和一个唯一 ID。

数据库检查器

△ 数据库检查器面板

△ 数据库检查器面板

前面的内容我们谈到,WorkManager 会将您的工作数据持久化,那么下面我们用数据库检查器 (Database Inspector) 进一步看看这是怎样实现的。您可以点击数据库检查器标签页,并在其中查找某项工作的唯一 ID。您会发现,有关该特定执行的各项信息都被保存下来了。

后台任务检查器

您还可以进一步查看某个特定的执行被安排到了哪一个队列中。和手动搜索调用信息相比,这种经过编组整理的方式能够明显提升分析效率。您可以看到特定 Worker 是否受到限制,以及更加详细的频率和执行状态信息。

WorkManager 可以使用其中一个 Worker 的输出数据,并将其传递到流水线下游的另一个 Worker 中。这一点您可以从任务详细信息的结果 (Results) 中看到。输出数据包含着每个 Worker 的唯一标识符,会按照队列顺序进行传递。

△ 演示 Worker 执行失败的场景

△ 演示 Worker 执行失败的场景

这里为您展示当工作链中的某个 Worker 执行失败时的场景。在工作的接续队列中插入了一个出错的 Worker,然后重启应用。可以看到,上一次运行的结果仍然在这里供您检查。这也进一步印证了刚才说到的工作数据持久化特性。这里启动并应用过滤器,选择 Worker 后再次点击图表视图,这样就能迅速定位工作开始出错的位置 (您可以留意这里的感叹号)。您可以从这里点击直接进入 Worker 视图,然后继续调试出错的会话。

了解更多

通过本文您已经对新的后台任务检查器做了简单了解。以上便是 WorkManager 相关全部内容,如需更多资源,请参阅:

欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!

版权声明

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

脉脉不得语
脉脉不得语
Zhengzhou Website
菜鸟 Android 开发一枚/前郑州 GDG 组织者/Android 开发技术周报站长/AndroidDevTools 站长/Toast.show(∞) 播客主播

你已经成功订阅到 Android 开发技术周报
太棒了!接下来,完成检验以获得全部访问权限 Android 开发技术周报
欢迎回来!你已经成功登录了。
成功!您的帐户已完全激活,您现在可以访问所有内容。