共计 2262 个字符,预计需要花费 6 分钟才能阅读完成。
Android Studio 蕴含了许多像 布局查看器 和 数据库查看器 这样的查看器,来帮忙您考察并理解利用在运行时的外部状态。在 Android Studio Arctic Fox 中,咱们公布了一个新的查看器 (Background Task Inspector),用于帮忙您监控和调试在利用中应用 WorkManager 2.5.0 或更高版本所调度的 Worker。
对于运行后盾的异步工作,甚至是在利用被敞开之后的状况下,都举荐应用 WorkManager。尽管能够很不便的将工作配置成 WorkManager 的 Worker,但将 Worker 退出到队列中后就很难监控它的执行状况,遇到问题也不不便调试。
您能够通过后台任务查看器轻松地监控一个 Worker 的工作状态,查看它和与其链接的其余 Worker 的关系,或者查看 Worker 的输入、频率及其他与工夫相干的信息。让咱们通过一个示例我的项目来看看后台任务查看器能做些什么。
我将应用 architectural-components 仓库 中的 WorkManager 示例利用来演示后台任务查看器 (须要将工程中 versions.gradle 里的 versions.work 设置为 2.5.0 或更高版本以使得 Background Task Inspect 更好的工作)。如果您想试一试,能够检出该仓库并随着阅读文章一起尝试。该利用应用 WorkManager 将用户所抉择的滤镜利用在已筛选的照片上。用户能够通过该利用在图库中抉择一张图片或者简略地应用一张库存照片。为了演示后台任务查看器如何工作,我将会运行利用并抉择一张图片来利用滤镜。
△ 为选定的图像利用所选的滤镜
这些滤镜都是作为 WorkManager Worker 实现的。稍等一会儿该利用就会展现利用了所选滤镜的图片。在不理解示例利用的状况下,来看看我还能通过后台任务查看器晓得些什么。
抉择菜单栏上的 View > Tool Windows > App Inspection 关上后台任务查看器。
△ View > Tool Windows > App Inspection
在 App Inspection (利用查看) 窗口中抉择 Background Task Inspector 栏后,我在 API 级别 26 或更高的设施 / 模拟器上再次运行该利用。如果没有主动选中利用,在下拉菜单中抉择利用过程。连贯到利用过程后,就能够回到我正在运行的利用,抉择所有的滤镜并点击 “APPLY”。此时我能够在后台任务查看器中看到运行中的作业列表。
△ 正在运行的作业列表
后台任务查看器列出了所有正在运行、已失败和已实现作业的类名、以后状态、开始工夫、重试次数以及输入数据。点击列表中的一个作业关上 Work Details 面板。
△ Work Details 面板
该面板提供了 Worker 的 Description (形容)、Execution (执行状况)、WorkContinuation (工作延续性) 和 Results (后果)。让咱们来认真看看每个局部。
△ Work Details
Description (形容) 一节列出了 Worker 蕴含齐全限定软件包名称、指派给它的标签和它的 UUID。
△ Execution
接下来,Execution (执行状况) 一节展现了 Worker 的束缚 (如果有)、运行频率、状态以及是哪个类创立了该 worker 并将其退出了队列。
△ WorkContinuation
WorkContinuation (工作延续性) 一节显示了该 Worker 在工作链上的地位。您能够查看前一个、后一个或工作链上的其余 Worker (如果有)。您能够通过点击另一个 Worker 的 UUID 导航到它的详情。在这个工作链上,我能看到利用应用了 5 个不同的 Worker。Worker 的数量依据用户抉择的滤镜状况可能有所不同。
这是个很棒的性能,但当您面对不相熟的利用时不肯定能设想出工作链。而后台任务查看器另一个很棒的个性就是它可能以图形化的模式展现工作链。仅需点击 WorkContinuation 一节中的 “Show in graph” 链接或点击作业列表顶部的 “show Graph View” 按钮来切换到 Graph View 即可。
△ Graph View
Graph View 能帮您理解 Worker 的程序、在不同阶段之间传递的数据以及它们各自的状态。
△ Results
Work Details 面板的最初一节是 Results 窗格。在这一节您能看到选中的 Worker 的开始工夫、重试次数及输入数据。
当初假如我想测试当一个 Worker 进行时会产生什么。为了实现这个目标,我将再次运行利用,抉择 Worker,等它的状态变为正在运行后点击左上角的 “Cancel Selected Work” 按钮。一旦我这么做了,我抉择的 Worker 和链中残余的 Worker 的状态都将变为 Canceled。
△ 您能够勾销任何正在运行的 Worker
如果您的利用中蕴含像这样简单的链式关系,那 Graph View 就会很有用。您可能在这个图中疾速查看一组简单的 Worker 之间的关系并监控它们的停顿。
△ WorkManager 艺术展现 =)
如果您想用后台任务查看器尝试一些更简单的图形或者制作一些 WorkManager 艺术,请参阅 DummyWorker 代码,并将其 退出到 continuation 对象 中。
后台任务查看器将会追随 Android Studio Arctic Fox 的公布一起推出,但您当初就能够在 最新的 Arctic Fox 版本 中试用!如果您的利用应用了 WorkManager,请尝试应用并通知咱们您的想法,或者和咱们分享您的 WorkManager 艺术!