dfx_dom_dump
dfx_dom_dump 模块提供DOM树转储功能,用于调试时导出UI视图树的层级结构信息。
Class Summary
OHOS::DfxDomDump
提供 DOM 树转储能力,将 UIView 组件树以 JSON 格式输出
- 构造:无
-
成员函数:
接口名称 功能简述 GetInstance 获取 DfxDomDump 单例引用 DumpRootView 转储 RootView 整棵组件树 DumpView 转储指定 UIView 及其子节点树 operator= 禁止赋值操作 -
使用包含头文件:
#include "dfx/dfx_dom_dump.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/dfx/dfx_dom_dump.h - 公有运算符:
DfxDomDump &operator=(const DfxDomDump&) = delete - 继承关系:HeapBase
- 嵌套类型:DomNode(私有嵌套结构体,非对外接口)
- 模板形参:无
Functions
OHOS::DfxDomDump
GetInstance
static DfxDomDump &GetInstance()
功能说明
- 核心用途:获取 DfxDomDump 类的单例引用
- 设计目的:确保全局唯一实例,所有 DOM 转储操作通过同一实例执行
- 使用场景:调用 DumpRootView 或 DumpView 前获取实例入口
返回值
- 返回类型:
DfxDomDump &
返回 DfxDomDump 单例引用
| 返回值 | 触发场景 |
|---|---|
| DfxDomDump& | 首次调用时构造静态局部实例并返回;后续调用返回同一实例 |
DumpRootView
void DumpRootView()
功能说明
- 核心用途:转储 RootView 整棵组件树为 JSON 格式
- 设计目的:以 RootView 为入口遍历全部子视图,将组件树结构及属性输出为 JSON
- 使用场景:调试时需要获取当前界面完整视图树结构信息
前置条件
- RootView 已通过
RootView::GetInstance()创建并初始化 - 图形服务 GraphicService 已启动,事件循环可投递异步任务
DumpView
void DumpView(UIView *view)
功能说明
- 核心用途:转储指定 UIView 及其子节点树为 JSON 格式
- 设计目的:以任意 UIView 为根节点遍历其子视图,将组件树结构及属性输出为 JSON
- 使用场景:调试时需要获取指定视图节点的子树结构信息
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView * | 入参指针,指定待转储的视图节点根 | nullptr 时函数直接返回,不执行转储操作 |
operator=
DfxDomDump &operator=(const DfxDomDump&) = delete
功能说明
- 核心用途:禁止赋值操作,保护单例语义
- 设计目的:防止外部通过赋值绕过单例约束
- 使用场景:编译期阻止赋值操作,违反时编译报错
Enumerations
UIViewType
enum UIViewType : uint8_t {
UI_ROOT_VIEW = 0,
UI_VIEW_GROUP,
UI_LABEL,
UI_ARC_LABEL,
UI_LABEL_BUTTON,
UI_CHECK_BOX,
UI_TOGGLE_BUTTON,
UI_RADIO_BUTTON,
UI_IMAGE_VIEW,
UI_BOX_PROGRESS,
UI_SLIDER,
UI_CIRCLE_PROGRESS,
UI_SCROLL_VIEW,
UI_LIST,
UI_DIGITAL_CLOCK,
UI_ANALOG_CLOCK,
UI_PICKER,
UI_SWIPE_VIEW,
UI_TIME_PICKER,
UI_ABSTRACT_CLOCK,
UI_ABSTRACT_PROGRESS,
UI_ABSTRACT_SCROLL,
UI_AXIS,
UI_BUTTON,
UI_CANVAS,
UI_CHART,
UI_IMAGE_ANIMATOR_VIEW,
UI_REPEAT_BUTTON,
UI_TEXTURE_MAPPER,
UI_DIALOG,
UI_QRCODE,
UI_LABEL_EXT,
UI_LABEL_BUTTON_EXT,
UI_CANVAS_EXT,
UI_CHART_PILLAR,
UI_CHART_POLYLINE,
UI_X_AXIS,
UI_Y_AXIS,
UI_LITE_SURFACE_VIEW,
LAYOUT,
LIST_LAYOUT,
FLEX_LAYOUT,
GRID_LAYOUT,
UI_EDIT_TEXT,
UI_MENU_ITEM,
UI_CARD_PAGE,
UI_COVER_FLOW,
UI_SLIP_FLOW,
UI_FOLDABLE_VIEW,
UI_CROSS_VIEW,
UI_BARCODE,
UI_MAP_VIEW,
UI_KALEIDOSCOPE_VIEW,
UI_ROLLER_VIEW,
UI_HEXAGONS_LIST,
UI_IMAGE_PICKER,
UI_ICOSAHEDRON_VIEW,
UI_TRANSFORM_GROUP,
UI_TRANSFORM_LIST,
UI_COVER_FLOW_2,
UI_WATERFALL_LIST,
UI_SPHERE_VIEW,
UI_PARTICLE_VIEW,
UI_PLANET_LIST,
UI_OPTION_BOX,
UI_CARD_CONTAINER,
UI_VIDEO,
UI_LOTT_VIEW,
UI_FLOAT_BOX_VIEW,
UI_CHART_PILLAR_EXT,
UI_CUSTOM_PLANET_LIST,
UI_LIST_EXT,
UI_LIST_NESTED,
UI_SCROLL_VIEW_NESTED,
UI_SWIPE_VIEW_NESTED,
UI_POST_EFFECT_IMAGE_VIEW,
UI_RAIN_VIEW,
UI_3D_VIEW,
UI_3D_MESH,
UI_3D_CYLINDER,
UI_3D_SPHERE,
UI_TRANSFORM_BUTTON,
UI_NUMBER_MAX
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| UI_ROOT_VIEW | 0 | 根视图 |
| UI_VIEW_GROUP | 1 | 视图组 |
| UI_LABEL | 2 | 文本标签 |
| UI_ARC_LABEL | 3 | 弧形标签 |
| UI_LABEL_BUTTON | 4 | 标签按钮 |
| UI_CHECK_BOX | 5 | 复选框 |
| UI_TOGGLE_BUTTON | 6 | 开关按钮 |
| UI_RADIO_BUTTON | 7 | 单选按钮 |
| UI_IMAGE_VIEW | 8 | 图片视图 |
| UI_BOX_PROGRESS | 9 | 条形进度条 |
| UI_SLIDER | 10 | 滑动条 |
| UI_CIRCLE_PROGRESS | 11 | 圆形进度条 |
| UI_SCROLL_VIEW | 12 | 滚动视图 |
| UI_LIST | 13 | 列表 |
| UI_DIGITAL_CLOCK | 14 | 数字时钟 |
| UI_ANALOG_CLOCK | 15 | 模拟时钟 |
| UI_PICKER | 16 | 选择器 |
| UI_SWIPE_VIEW | 17 | 滑动视图 |
| UI_TIME_PICKER | 18 | 时间选择器 |
| UI_ABSTRACT_CLOCK | 19 | 抽象时钟 |
| UI_ABSTRACT_PROGRESS | 20 | 抽象进度条 |
| UI_ABSTRACT_SCROLL | 21 | 抽象滚动 |
| UI_AXIS | 22 | 坐标轴 |
| UI_BUTTON | 23 | 按钮 |
| UI_CANVAS | 24 | 画布 |
| UI_CHART | 25 | 图表 |
| UI_IMAGE_ANIMATOR_VIEW | 26 | 图片动画视图 |
| UI_REPEAT_BUTTON | 27 | 重复按钮 |
| UI_TEXTURE_MAPPER | 28 | 纹理映射 |
| UI_DIALOG | 29 | 对话框 |
| UI_QRCODE | 30 | 二维码 |
| UI_LABEL_EXT | 31 | 扩展标签 |
| UI_LABEL_BUTTON_EXT | 32 | 扩展标签按钮 |
| UI_CANVAS_EXT | 33 | 扩展画布 |
| UI_CHART_PILLAR | 34 | 柱状图 |
| UI_CHART_POLYLINE | 35 | 折线图 |
| UI_X_AXIS | 36 | X 轴 |
| UI_Y_AXIS | 37 | Y 轴 |
| UI_LITE_SURFACE_VIEW | 38 | 轻量级 Surface 视图 |
| LAYOUT | 39 | 布局 |
| LIST_LAYOUT | 40 | 列表布局 |
| FLEX_LAYOUT | 41 | 弹性布局 |
| GRID_LAYOUT | 42 | 网格布局 |
| UI_EDIT_TEXT | 43 | 文本编辑框 |
| UI_MENU_ITEM | 44 | 菜单项 |
| UI_CARD_PAGE | 45 | 卡片页 |
| UI_COVER_FLOW | 46 | 封面流 |
| UI_SLIP_FLOW | 47 | 滑动流 |
| UI_FOLDABLE_VIEW | 48 | 可折叠视图 |
| UI_CROSS_VIEW | 49 | 交叉视图 |
| UI_BARCODE | 50 | 条形码 |
| UI_MAP_VIEW | 51 | 地图视图 |
| UI_KALEIDOSCOPE_VIEW | 52 | 万花筒视图 |
| UI_ROLLER_VIEW | 53 | 滚轮视图 |
| UI_HEXAGONS_LIST | 54 | 六边形列表 |
| UI_IMAGE_PICKER | 55 | 图片选择器 |
| UI_ICOSAHEDRON_VIEW | 56 | 二十面体视图 |
| UI_TRANSFORM_GROUP | 57 | 变换组 |
| UI_TRANSFORM_LIST | 58 | 变换列表 |
| UI_COVER_FLOW_2 | 59 | 封面流2 |
| UI_WATERFALL_LIST | 60 | 瀑布流列表 |
| UI_SPHERE_VIEW | 61 | 球体视图 |
| UI_PARTICLE_VIEW | 62 | 粒子视图 |
| UI_PLANET_LIST | 63 | 星球列表 |
| UI_OPTION_BOX | 64 | 选项框 |
| UI_CARD_CONTAINER | 65 | 卡片容器 |
| UI_VIDEO | 66 | 视频视图 |
| UI_LOTT_VIEW | 67 | Lottie 动画视图 |
| UI_FLOAT_BOX_VIEW | 68 | 浮动框视图 |
| UI_CHART_PILLAR_EXT | 69 | 扩展柱状图 |
| UI_CUSTOM_PLANET_LIST | 70 | 自定义星球列表 |
| UI_LIST_EXT | 71 | 扩展列表 |
| UI_LIST_NESTED | 72 | 嵌套列表 |
| UI_SCROLL_VIEW_NESTED | 73 | 嵌套滚动视图 |
| UI_SWIPE_VIEW_NESTED | 74 | 嵌套滑动视图 |
| UI_POST_EFFECT_IMAGE_VIEW | 75 | 后效图片视图 |
| UI_RAIN_VIEW | 76 | 雨景视图 |
| UI_3D_VIEW | 77 | 3D 视图 |
| UI_3D_MESH | 78 | 3D 网格 |
| UI_3D_CYLINDER | 79 | 3D 圆柱 |
| UI_3D_SPHERE | 80 | 3D 球体 |
| UI_TRANSFORM_BUTTON | 81 | 变换按钮 |
| UI_NUMBER_MAX | 82 | 视图类型最大值(边界标记) |