布局检查器允许您在运行的应用中(模拟器或物理设备上)检查 Compose 布局。您可以使用布局检查器来检查可组合项的重组或跳过频率,这有助于识别应用中的问题。例如,某些编码错误可能会强制您的 UI 过度重组,这会导致性能低下。某些编码错误会阻止您的 UI 重组,因此会导致您的 UI 更改无法在屏幕上显示。如果您是布局检查器的新手,请查看指南,了解如何运行它。
获取重组计数
在调试 Compose 布局时,了解可组合项重组的时机对于理解您的 UI 是否正确实现至关重要。例如,如果它重组的次数过多,您的应用可能会做不必要的工作。另一方面,当您预期重组但没有重组的组件会导致意外行为。
布局检查器会显示您在与应用交互时,布局层次结构中各个可组合项的重组或跳过情况。在 Android Studio 中,您的重组将被突出显示,以帮助您确定 UI 中哪些可组合项正在重组。
图 1. 布局检查器中突出显示的重组。
突出显示的部分显示了布局检查器图像部分中可组合项的渐变叠加,并逐渐消失,以便您可以了解重组次数最多的可组合项在 UI 中的位置。如果一个可组合项的重组频率高于另一个可组合项,则第一个可组合项将接收更强的渐变叠加颜色。如果您双击布局检查器中的可组合项,您将被带到相应的代码进行分析。
打开布局检查器窗口,并连接到您的应用进程。在组件树中,布局层次结构旁边有两个列。第一列显示每个节点的重组次数,第二列显示每个节点的跳过次数。选择可组合节点将显示可组合节点的尺寸和参数,除非它是内联函数,在这种情况下无法显示参数。您还可以在选择组件树或布局显示中的可组合项时,在属性窗格中看到类似的信息。
重置计数可以帮助您了解在与应用进行特定交互期间的重组或跳过。如果您想重置计数,请单击组件树窗格顶部的重置。
图 3. 在布局检查器中启用重组和跳过计数器。
Compose 语义
在 Compose 中,语义以另一种方式描述您的 UI,这种方式对于无障碍服务和测试框架来说是可以理解的。您可以使用布局检查器来检查 Compose 布局中的语义信息。
图 4. 使用布局检查器显示的语义信息。
选择 Compose 节点时,请使用属性窗格检查它是否直接声明语义信息、合并来自其子节点的语义信息,还是两者兼而有之。要快速识别哪些节点包含语义信息(无论是声明的还是合并的),请使用组件树窗格中的视图选项下拉菜单,并选择突出显示语义层。这将仅突出显示包含语义信息的树中的节点,您可以使用键盘快速在它们之间导航。