跳转至

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 视图类型最大值(边界标记)