[
  {
    "table_index": 1,
    "rows": [
      {
        "Android 事件": "`onTouchEvent(MotionEvent)`",
        "HarmonyOS 事件": "`onTouch(event: TouchEvent)`",
        "映射说明": "直接映射",
        "代码示例对比": "Android: `view.onTouchEvent(event)`<br/>HarmonyOS: `Component().onTouch((event) => {})`"
      },
      {
        "Android 事件": "`onInterceptTouchEvent(MotionEvent)`",
        "HarmonyOS 事件": "`onTouchIntercept(event: TouchEvent)`",
        "映射说明": "直接映射",
        "代码示例对比": "Android: `viewGroup.onInterceptTouchEvent(event)`<br/>HarmonyOS: `Container().onTouchIntercept((event) => {})`"
      },
      {
        "Android 事件": "`dispatchTouchEvent(MotionEvent)`",
        "HarmonyOS 事件": "事件分发机制",
        "映射说明": "架构差异",
        "代码示例对比": "Android: 手动分发<br/>HarmonyOS: 自动分发 + 手势系统"
      }
    ],
    "raw_table": [
      [
        "Android 事件",
        "HarmonyOS 事件",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`onTouchEvent(MotionEvent)`",
        "`onTouch(event: TouchEvent)`",
        "直接映射",
        "Android: `view.onTouchEvent(event)`<br/>HarmonyOS: `Component().onTouch((event) => {})`"
      ],
      [
        "`onInterceptTouchEvent(MotionEvent)`",
        "`onTouchIntercept(event: TouchEvent)`",
        "直接映射",
        "Android: `viewGroup.onInterceptTouchEvent(event)`<br/>HarmonyOS: `Container().onTouchIntercept((event) => {})`"
      ],
      [
        "`dispatchTouchEvent(MotionEvent)`",
        "事件分发机制",
        "架构差异",
        "Android: 手动分发<br/>HarmonyOS: 自动分发 + 手势系统"
      ]
    ]
  },
  {
    "table_index": 2,
    "rows": [
      {
        "Android Action": "`ACTION_DOWN`",
        "HarmonyOS 触摸类型": "`TouchType.Down`",
        "映射说明": "手指按下"
      },
      {
        "Android Action": "`ACTION_UP`",
        "HarmonyOS 触摸类型": "`TouchType.Up`",
        "映射说明": "手指抬起"
      },
      {
        "Android Action": "`ACTION_MOVE`",
        "HarmonyOS 触摸类型": "`TouchType.Move`",
        "映射说明": "手指移动"
      },
      {
        "Android Action": "`ACTION_CANCEL`",
        "HarmonyOS 触摸类型": "`TouchType.Cancel`",
        "映射说明": "事件取消"
      },
      {
        "Android Action": "`ACTION_POINTER_DOWN`",
        "HarmonyOS 触摸类型": "多点触摸开始",
        "映射说明": "新手指按下"
      },
      {
        "Android Action": "`ACTION_POINTER_UP`",
        "HarmonyOS 触摸类型": "多点触摸结束",
        "映射说明": "手指抬起"
      },
      {
        "Android Action": "`ACTION_OUTSIDE`",
        "HarmonyOS 触摸类型": "触摸区域外",
        "映射说明": "触摸在组件外"
      }
    ],
    "raw_table": [
      [
        "Android Action",
        "HarmonyOS 触摸类型",
        "映射说明"
      ],
      [
        "`ACTION_DOWN`",
        "`TouchType.Down`",
        "手指按下"
      ],
      [
        "`ACTION_UP`",
        "`TouchType.Up`",
        "手指抬起"
      ],
      [
        "`ACTION_MOVE`",
        "`TouchType.Move`",
        "手指移动"
      ],
      [
        "`ACTION_CANCEL`",
        "`TouchType.Cancel`",
        "事件取消"
      ],
      [
        "`ACTION_POINTER_DOWN`",
        "多点触摸开始",
        "新手指按下"
      ],
      [
        "`ACTION_POINTER_UP`",
        "多点触摸结束",
        "手指抬起"
      ],
      [
        "`ACTION_OUTSIDE`",
        "触摸区域外",
        "触摸在组件外"
      ]
    ]
  },
  {
    "table_index": 3,
    "rows": [
      {
        "Android 属性": "`event.getX()` / `event.getY()`",
        "HarmonyOS 属性": "`event.touches[0].x` / `event.touches[0].y`",
        "映射说明": "获取坐标"
      },
      {
        "Android 属性": "`event.getRawX()` / `event.getRawY()`",
        "HarmonyOS 属性": "`event.touches[0].screenX` / `event.touches[0].screenY`",
        "映射说明": "获取屏幕坐标"
      },
      {
        "Android 属性": "`event.getPointerCount()`",
        "HarmonyOS 属性": "`event.touches.length`",
        "映射说明": "触摸点数量"
      },
      {
        "Android 属性": "`event.getPointerId(index)`",
        "HarmonyOS 属性": "`event.touches[index].id`",
        "映射说明": "触摸点 ID"
      },
      {
        "Android 属性": "`event.getPressure()`",
        "HarmonyOS 属性": "`event.touches[0].pressure`",
        "映射说明": "压力值"
      },
      {
        "Android 属性": "`event.getSize()`",
        "HarmonyOS 属性": "`event.touches[0].toolType`",
        "映射说明": "触摸工具类型"
      },
      {
        "Android 属性": "`event.getEventTime()`",
        "HarmonyOS 属性": "`event.timestamp`",
        "映射说明": "事件时间戳"
      },
      {
        "Android 属性": "`event.getSource()`",
        "HarmonyOS 属性": "无直接对应",
        "映射说明": "输入源判断需自定义"
      }
    ],
    "raw_table": [
      [
        "Android 属性",
        "HarmonyOS 属性",
        "映射说明"
      ],
      [
        "`event.getX()` / `event.getY()`",
        "`event.touches[0].x` / `event.touches[0].y`",
        "获取坐标"
      ],
      [
        "`event.getRawX()` / `event.getRawY()`",
        "`event.touches[0].screenX` / `event.touches[0].screenY`",
        "获取屏幕坐标"
      ],
      [
        "`event.getPointerCount()`",
        "`event.touches.length`",
        "触摸点数量"
      ],
      [
        "`event.getPointerId(index)`",
        "`event.touches[index].id`",
        "触摸点 ID"
      ],
      [
        "`event.getPressure()`",
        "`event.touches[0].pressure`",
        "压力值"
      ],
      [
        "`event.getSize()`",
        "`event.touches[0].toolType`",
        "触摸工具类型"
      ],
      [
        "`event.getEventTime()`",
        "`event.timestamp`",
        "事件时间戳"
      ],
      [
        "`event.getSource()`",
        "无直接对应",
        "输入源判断需自定义"
      ]
    ]
  },
  {
    "table_index": 4,
    "rows": [
      {
        "Android 功能": "`setTouchDelegate()`",
        "HarmonyOS 功能": "`responseRegion`",
        "映射说明": "扩展响应热区",
        "代码示例": "`Component().responseRegion({ x: '10%', y: '10%', width: '80%', height: '80%' })`"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`responseRegion`",
        "映射说明": "热区可配置多个区域",
        "代码示例": "支持设置一个或多个热区范围"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`responseRegion`",
        "映射说明": "百分比偏移",
        "代码示例": "x/y 可设置正负值百分比"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例"
      ],
      [
        "`setTouchDelegate()`",
        "`responseRegion`",
        "扩展响应热区",
        "`Component().responseRegion({ x: '10%', y: '10%', width: '80%', height: '80%' })`"
      ],
      [
        "无直接对应",
        "`responseRegion`",
        "热区可配置多个区域",
        "支持设置一个或多个热区范围"
      ],
      [
        "无直接对应",
        "`responseRegion`",
        "百分比偏移",
        "x/y 可设置正负值百分比"
      ]
    ]
  },
  {
    "table_index": 5,
    "rows": [
      {
        "Android 功能": "`requestDisallowInterceptTouchEvent()`",
        "HarmonyOS 功能": "`hitTestBehavior`",
        "映射说明": "阻止拦截(静态配置)",
        "代码示例": "`Component().hitTestBehavior(HitTestMode.None)`"
      },
      {
        "Android 功能": "`onInterceptTouchEvent()`",
        "HarmonyOS 功能": "`onTouchIntercept()`",
        "映射说明": "事件拦截(动态回调)",
        "代码示例": "`Container().onTouchIntercept((event) => { /* 返回 HitTestMode */ })`"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`HitTestMode.Default`",
        "映射说明": "默认:自身命中会阻塞兄弟组件",
        "代码示例": "API 7+"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`HitTestMode.None`",
        "映射说明": "自身不接收事件,不阻塞",
        "代码示例": "API 7+"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`HitTestMode.Block`",
        "映射说明": "阻塞子组件的触摸测试",
        "代码示例": "API 7+"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`HitTestMode.Transparent`",
        "映射说明": "自身触摸测试,不阻塞",
        "代码示例": "API 7+"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`HitTestMode.BLOCK_HIERARCHY`(API 20 新增)",
        "映射说明": "自身和子节点响应,阻止祖先",
        "代码示例": "API 20+"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`HitTestMode.BLOCK_DESCENDANTS`(API 20 新增)",
        "映射说明": "自身不响应,后代也不响应",
        "代码示例": "API 20+"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例"
      ],
      [
        "`requestDisallowInterceptTouchEvent()`",
        "`hitTestBehavior`",
        "阻止拦截(静态配置)",
        "`Component().hitTestBehavior(HitTestMode.None)`"
      ],
      [
        "`onInterceptTouchEvent()`",
        "`onTouchIntercept()`",
        "事件拦截(动态回调)",
        "`Container().onTouchIntercept((event) => { /* 返回 HitTestMode */ })`"
      ],
      [
        "无直接对应",
        "`HitTestMode.Default`",
        "默认:自身命中会阻塞兄弟组件",
        "API 7+"
      ],
      [
        "无直接对应",
        "`HitTestMode.None`",
        "自身不接收事件,不阻塞",
        "API 7+"
      ],
      [
        "无直接对应",
        "`HitTestMode.Block`",
        "阻塞子组件的触摸测试",
        "API 7+"
      ],
      [
        "无直接对应",
        "`HitTestMode.Transparent`",
        "自身触摸测试,不阻塞",
        "API 7+"
      ],
      [
        "无直接对应",
        "`HitTestMode.BLOCK_HIERARCHY`(API 20 新增)",
        "自身和子节点响应,阻止祖先",
        "API 20+"
      ],
      [
        "无直接对应",
        "`HitTestMode.BLOCK_DESCENDANTS`(API 20 新增)",
        "自身不响应,后代也不响应",
        "API 20+"
      ]
    ]
  },
  {
    "table_index": 6,
    "rows": [
      {
        "Android 机制": "无直接 API",
        "HarmonyOS 机制": "`stopPropagation()`",
        "映射说明": "停止事件冒泡",
        "代码示例对比": "HarmonyOS: `event.stopPropagation()`(API 21+)"
      },
      {
        "Android 机制": "无直接 API",
        "HarmonyOS 机制": "事件冒泡机制",
        "映射说明": "默认冒泡到父组件",
        "代码示例对比": "遵循右子树优先的后序遍历"
      },
      {
        "Android 机制": "手势和事件独立",
        "HarmonyOS 机制": "手势事件冒泡不影响基础事件",
        "映射说明": "stopPropagation 只停止 Touch 事件,不影响手势",
        "代码示例对比": "需要注意"
      }
    ],
    "raw_table": [
      [
        "Android 机制",
        "HarmonyOS 机制",
        "映射说明",
        "代码示例对比"
      ],
      [
        "无直接 API",
        "`stopPropagation()`",
        "停止事件冒泡",
        "HarmonyOS: `event.stopPropagation()`(API 21+)"
      ],
      [
        "无直接 API",
        "事件冒泡机制",
        "默认冒泡到父组件",
        "遵循右子树优先的后序遍历"
      ],
      [
        "手势和事件独立",
        "手势事件冒泡不影响基础事件",
        "stopPropagation 只停止 Touch 事件,不影响手势",
        "需要注意"
      ]
    ]
  },
  {
    "table_index": 7,
    "rows": [
      {
        "Android 事件": "`OnClickListener.onClick(View)`",
        "HarmonyOS 事件": "`onClick(() => {})`",
        "映射说明": "直接映射",
        "代码示例对比": "Android: `button.setOnClickListener { }`<br/>HarmonyOS: `Button().onClick(() => {})`"
      },
      {
        "Android 事件": "`OnLongClickListener.onLongClick(View)`",
        "HarmonyOS 事件": "`onLongPress()` 手势",
        "映射说明": "手势识别",
        "代码示例对比": "Android: `button.setOnLongClickListener { }`<br/>HarmonyOS: `Button().gesture(LongPressGesture().onAction(() => {}))`"
      },
      {
        "Android 事件": "`OnDoubleClickListener`",
        "HarmonyOS 事件": "`TapGesture({count: 2})`",
        "映射说明": "手势识别",
        "代码示例对比": "Android: 自定义实现<br/>HarmonyOS: `Component().gesture(TapGesture({count: 2}).onAction(() => {}))`"
      },
      {
        "Android 事件": "`OnContextClickListener`",
        "HarmonyOS 事件": "`BindContextMenu`",
        "映射说明": "上下文菜单",
        "代码示例对比": "Android: `view.setOnContextClickListener { }`<br/>HarmonyOS: `Component().bindContextMenu(this.menuBuilder)`"
      }
    ],
    "raw_table": [
      [
        "Android 事件",
        "HarmonyOS 事件",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`OnClickListener.onClick(View)`",
        "`onClick(() => {})`",
        "直接映射",
        "Android: `button.setOnClickListener { }`<br/>HarmonyOS: `Button().onClick(() => {})`"
      ],
      [
        "`OnLongClickListener.onLongClick(View)`",
        "`onLongPress()` 手势",
        "手势识别",
        "Android: `button.setOnLongClickListener { }`<br/>HarmonyOS: `Button().gesture(LongPressGesture().onAction(() => {}))`"
      ],
      [
        "`OnDoubleClickListener`",
        "`TapGesture({count: 2})`",
        "手势识别",
        "Android: 自定义实现<br/>HarmonyOS: `Component().gesture(TapGesture({count: 2}).onAction(() => {}))`"
      ],
      [
        "`OnContextClickListener`",
        "`BindContextMenu`",
        "上下文菜单",
        "Android: `view.setOnContextClickListener { }`<br/>HarmonyOS: `Component().bindContextMenu(this.menuBuilder)`"
      ]
    ]
  },
  {
    "table_index": 8,
    "rows": [
      {
        "Android 手势": "`GestureDetector.OnSingleTapUpListener`",
        "HarmonyOS 手势": "`TapGesture({count: 1})`",
        "映射说明": "单击",
        "参数映射": "count: 1"
      },
      {
        "Android 手势": "`GestureDetector.OnDoubleTapListener`",
        "HarmonyOS 手势": "`TapGesture({count: 2})`",
        "映射说明": "双击",
        "参数映射": "count: 2"
      },
      {
        "Android 手势": "`GestureDetector.OnShowPressListener`",
        "HarmonyOS 手势": "`TapGesture` + 延时",
        "映射说明": "长按触发",
        "参数映射": "需自定义延时"
      },
      {
        "Android 手势": "手指按下",
        "HarmonyOS 手势": "`TapGesture` onAction",
        "映射说明": "动作回调",
        "参数映射": "`onAction(() => {})`"
      }
    ],
    "raw_table": [
      [
        "Android 手势",
        "HarmonyOS 手势",
        "映射说明",
        "参数映射"
      ],
      [
        "`GestureDetector.OnSingleTapUpListener`",
        "`TapGesture({count: 1})`",
        "单击",
        "count: 1"
      ],
      [
        "`GestureDetector.OnDoubleTapListener`",
        "`TapGesture({count: 2})`",
        "双击",
        "count: 2"
      ],
      [
        "`GestureDetector.OnShowPressListener`",
        "`TapGesture` + 延时",
        "长按触发",
        "需自定义延时"
      ],
      [
        "手指按下",
        "`TapGesture` onAction",
        "动作回调",
        "`onAction(() => {})`"
      ]
    ]
  },
  {
    "table_index": 9,
    "rows": [
      {
        "Android 手势": "`GestureDetector.OnLongPressListener`",
        "HarmonyOS 手势": "`LongPressGesture`",
        "映射说明": "长按",
        "代码示例": "`Component().gesture(LongPressGesture().onAction(() => {}))`"
      },
      {
        "Android 手势": "`onLongPress(MotionEvent)`",
        "HarmonyOS 手势": "`LongPressGesture` onAction",
        "映射说明": "长按动作",
        "代码示例": "`onAction(() => { /* 长按触发 */ })`"
      }
    ],
    "raw_table": [
      [
        "Android 手势",
        "HarmonyOS 手势",
        "映射说明",
        "代码示例"
      ],
      [
        "`GestureDetector.OnLongPressListener`",
        "`LongPressGesture`",
        "长按",
        "`Component().gesture(LongPressGesture().onAction(() => {}))`"
      ],
      [
        "`onLongPress(MotionEvent)`",
        "`LongPressGesture` onAction",
        "长按动作",
        "`onAction(() => { /* 长按触发 */ })`"
      ]
    ]
  },
  {
    "table_index": 10,
    "rows": [
      {
        "Android 手势": "`GestureDetector.OnScrollListener`",
        "HarmonyOS 手势": "`PanGesture`",
        "映射说明": "滑动/拖动",
        "参数映射": "direction: PanDirection"
      },
      {
        "Android 手势": "`onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)`",
        "HarmonyOS 手势": "`PanGesture` onAction",
        "映射说明": "滑动动作",
        "参数映射": "`onAction((event: GestureEvent) => { /* 处理滑动 */ })`"
      },
      {
        "Android 手势": "`onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)`",
        "HarmonyOS 手势": "`SwipeGesture`",
        "映射说明": "快速滑动",
        "参数映射": "需要速度阈值判断"
      }
    ],
    "raw_table": [
      [
        "Android 手势",
        "HarmonyOS 手势",
        "映射说明",
        "参数映射"
      ],
      [
        "`GestureDetector.OnScrollListener`",
        "`PanGesture`",
        "滑动/拖动",
        "direction: PanDirection"
      ],
      [
        "`onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)`",
        "`PanGesture` onAction",
        "滑动动作",
        "`onAction((event: GestureEvent) => { /* 处理滑动 */ })`"
      ],
      [
        "`onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)`",
        "`SwipeGesture`",
        "快速滑动",
        "需要速度阈值判断"
      ]
    ]
  },
  {
    "table_index": 11,
    "rows": [
      {
        "Android 手势": "`ScaleGestureDetector.OnScaleGestureListener`",
        "HarmonyOS 手势": "`PinchGesture`",
        "映射说明": "双指缩放",
        "参数映射": "需配合手势系统"
      },
      {
        "Android 手势": "`onScale(ScaleGestureDetector detector)`",
        "HarmonyOS 手势": "`PinchGesture` onAction",
        "映射说明": "缩放动作",
        "参数映射": "`onAction((event: GestureEvent) => { /* 处理缩放 */ })`"
      },
      {
        "Android 手势": "`onScaleBegin(ScaleGestureDetector detector)`",
        "HarmonyOS 手势": "`PinchGesture` onActionStart",
        "映射说明": "缩放开始",
        "参数映射": "`onActionStart(() => {})`"
      },
      {
        "Android 手势": "`onScaleEnd(ScaleGestureDetector detector)`",
        "HarmonyOS 手势": "`PinchGesture` onActionEnd",
        "映射说明": "缩放结束",
        "参数映射": "`onActionEnd(() => {})`"
      }
    ],
    "raw_table": [
      [
        "Android 手势",
        "HarmonyOS 手势",
        "映射说明",
        "参数映射"
      ],
      [
        "`ScaleGestureDetector.OnScaleGestureListener`",
        "`PinchGesture`",
        "双指缩放",
        "需配合手势系统"
      ],
      [
        "`onScale(ScaleGestureDetector detector)`",
        "`PinchGesture` onAction",
        "缩放动作",
        "`onAction((event: GestureEvent) => { /* 处理缩放 */ })`"
      ],
      [
        "`onScaleBegin(ScaleGestureDetector detector)`",
        "`PinchGesture` onActionStart",
        "缩放开始",
        "`onActionStart(() => {})`"
      ],
      [
        "`onScaleEnd(ScaleGestureDetector detector)`",
        "`PinchGesture` onActionEnd",
        "缩放结束",
        "`onActionEnd(() => {})`"
      ]
    ]
  },
  {
    "table_index": 12,
    "rows": [
      {
        "Android 手势": "无直接对应(需自定义)",
        "HarmonyOS 手势": "`RotationGesture`",
        "映射说明": "双指旋转",
        "代码示例": "`Component().gesture(RotationGesture().onAction(() => {}))`"
      }
    ],
    "raw_table": [
      [
        "Android 手势",
        "HarmonyOS 手势",
        "映射说明",
        "代码示例"
      ],
      [
        "无直接对应(需自定义)",
        "`RotationGesture`",
        "双指旋转",
        "`Component().gesture(RotationGesture().onAction(() => {}))`"
      ]
    ]
  },
  {
    "table_index": 13,
    "rows": [
      {
        "Android 机制": "GestureDetector 组合",
        "HarmonyOS 机制": "`GestureGroup`",
        "映射说明": "手势组合识别"
      },
      {
        "Android 机制": "手势冲突处理",
        "HarmonyOS 机制": "`GestureMask`",
        "映射说明": "手势响应模式控制"
      },
      {
        "Android 机制": "事件拦截 onInterceptTouchEvent",
        "HarmonyOS 机制": "`onTouchIntercept`",
        "映射说明": "触摸事件拦截"
      }
    ],
    "raw_table": [
      [
        "Android 机制",
        "HarmonyOS 机制",
        "映射说明"
      ],
      [
        "GestureDetector 组合",
        "`GestureGroup`",
        "手势组合识别"
      ],
      [
        "手势冲突处理",
        "`GestureMask`",
        "手势响应模式控制"
      ],
      [
        "事件拦截 onInterceptTouchEvent",
        "`onTouchIntercept`",
        "触摸事件拦截"
      ]
    ]
  },
  {
    "table_index": 14,
    "rows": [
      {
        "Android 事件": "`OnPageChangeListener`",
        "HarmonyOS 手势": "`SwiperController` + onChange",
        "映射说明": "页面滑动",
        "代码示例": "`Swiper().onChange((index) => {})`"
      },
      {
        "Android 事件": "`OnScrollChangeListener`",
        "HarmonyOS 手势": "`Scroll` onScroll",
        "映射说明": "滚动监听",
        "代码示例": "`Scroll().onScroll((xOffset, yOffset) => {})`"
      },
      {
        "Android 事件": "`RecyclerView.OnScrollListener`",
        "HarmonyOS 手势": "`List` onScroll",
        "映射说明": "列表滚动",
        "代码示例": "`List().onScroll((scrollOffset, scrollState) => {})`"
      }
    ],
    "raw_table": [
      [
        "Android 事件",
        "HarmonyOS 手势",
        "映射说明",
        "代码示例"
      ],
      [
        "`OnPageChangeListener`",
        "`SwiperController` + onChange",
        "页面滑动",
        "`Swiper().onChange((index) => {})`"
      ],
      [
        "`OnScrollChangeListener`",
        "`Scroll` onScroll",
        "滚动监听",
        "`Scroll().onScroll((xOffset, yOffset) => {})`"
      ],
      [
        "`RecyclerView.OnScrollListener`",
        "`List` onScroll",
        "列表滚动",
        "`List().onScroll((scrollOffset, scrollState) => {})`"
      ]
    ]
  },
  {
    "table_index": 15,
    "rows": [
      {
        "Android 功能": "View.OnDragListener",
        "HarmonyOS 功能": "`Drag` 装饰器",
        "映射说明": "拖拽功能",
        "代码示例": "`Component().gesture(Drag())`"
      },
      {
        "Android 功能": "`onDrag(View v, DragEvent event)`",
        "HarmonyOS 功能": "`Drag` onActionStart/onAction/onActionEnd",
        "映射说明": "拖拽事件",
        "代码示例": "`onActionStart(() => {})`<br/>`onAction((event) => {})`<br/>`onActionEnd(() => {})`"
      },
      {
        "Android 功能": "`startDragAndDrop()`",
        "HarmonyOS 功能": "无直接对应",
        "映射说明": "系统拖拽",
        "代码示例": "需自定义实现"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例"
      ],
      [
        "View.OnDragListener",
        "`Drag` 装饰器",
        "拖拽功能",
        "`Component().gesture(Drag())`"
      ],
      [
        "`onDrag(View v, DragEvent event)`",
        "`Drag` onActionStart/onAction/onActionEnd",
        "拖拽事件",
        "`onActionStart(() => {})`<br/>`onAction((event) => {})`<br/>`onActionEnd(() => {})`"
      ],
      [
        "`startDragAndDrop()`",
        "无直接对应",
        "系统拖拽",
        "需自定义实现"
      ]
    ]
  },
  {
    "table_index": 16,
    "rows": [
      {
        "Android 功能": "ItemTouchHelper Swipe",
        "HarmonyOS 功能": "`SwipeGesture` + 状态",
        "映射说明": "滑动删除",
        "代码示例": "`ListItem().gesture(SwipeGesture().onAction(() => { /* 删除逻辑 */ }))`"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例"
      ],
      [
        "ItemTouchHelper Swipe",
        "`SwipeGesture` + 状态",
        "滑动删除",
        "`ListItem().gesture(SwipeGesture().onAction(() => { /* 删除逻辑 */ }))`"
      ]
    ]
  },
  {
    "table_index": 17,
    "rows": [
      {
        "Android 事件": "`OnFocusChangeListener.onFocusChange(View v, boolean hasFocus)`",
        "HarmonyOS 事件": "`onFocus()` / `onBlur()`",
        "映射说明": "分离为两个事件",
        "代码示例对比": "Android: `view.onFocusChange { _, hasFocus -> }`<br/>HarmonyOS: `Component().onFocus(() => {}).onBlur(() => {})`"
      },
      {
        "Android 事件": "`setOnFocusChangeListener()`",
        "HarmonyOS 事件": "`onFocus()` / `onBlur()`",
        "映射说明": "焦点变化监听",
        "代码示例对比": "`Component().onFocus(() => { /* 获得焦点 */ }).onBlur(() => { /* 失去焦点 */ })`"
      }
    ],
    "raw_table": [
      [
        "Android 事件",
        "HarmonyOS 事件",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`OnFocusChangeListener.onFocusChange(View v, boolean hasFocus)`",
        "`onFocus()` / `onBlur()`",
        "分离为两个事件",
        "Android: `view.onFocusChange { _, hasFocus -> }`<br/>HarmonyOS: `Component().onFocus(() => {}).onBlur(() => {})`"
      ],
      [
        "`setOnFocusChangeListener()`",
        "`onFocus()` / `onBlur()`",
        "焦点变化监听",
        "`Component().onFocus(() => { /* 获得焦点 */ }).onBlur(() => { /* 失去焦点 */ })`"
      ]
    ]
  },
  {
    "table_index": 18,
    "rows": [
      {
        "Android 功能": "`requestFocus()`",
        "HarmonyOS 功能": "`focusControl.requestFocus()`",
        "映射说明": "请求焦点",
        "代码示例对比": "Android: `editText.requestFocus()`<br/>HarmonyOS: `focusControl.requestFocus(this.input)`"
      },
      {
        "Android 功能": "`clearFocus()`",
        "HarmonyOS 功能": "`focusControl.requestFocus(null)`",
        "映射说明": "清除焦点",
        "代码示例对比": "Android: `editText.clearFocus()`<br/>HarmonyOS: `focusControl.requestFocus(null)`"
      },
      {
        "Android 功能": "`isFocused()`",
        "HarmonyOS 功能": "组件属性 `focused`",
        "映射说明": "检查焦点状态",
        "代码示例对比": "Android: `view.isFocused()`<br/>HarmonyOS: 组件内部状态判断"
      },
      {
        "Android 功能": "`findFocus()`",
        "HarmonyOS 功能": "`focusControl.requestFocus()`",
        "映射说明": "查找焦点组件",
        "代码示例对比": "功能相似,API不同"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`requestFocus()`",
        "`focusControl.requestFocus()`",
        "请求焦点",
        "Android: `editText.requestFocus()`<br/>HarmonyOS: `focusControl.requestFocus(this.input)`"
      ],
      [
        "`clearFocus()`",
        "`focusControl.requestFocus(null)`",
        "清除焦点",
        "Android: `editText.clearFocus()`<br/>HarmonyOS: `focusControl.requestFocus(null)`"
      ],
      [
        "`isFocused()`",
        "组件属性 `focused`",
        "检查焦点状态",
        "Android: `view.isFocused()`<br/>HarmonyOS: 组件内部状态判断"
      ],
      [
        "`findFocus()`",
        "`focusControl.requestFocus()`",
        "查找焦点组件",
        "功能相似,API不同"
      ]
    ]
  },
  {
    "table_index": 19,
    "rows": [
      {
        "Android 功能": "`FOCUS_DOWN` / `FOCUS_UP` / `FOCUS_LEFT` / `FOCUS_RIGHT`",
        "HarmonyOS 功能": "键盘方向键",
        "映射说明": "方向键移动焦点"
      },
      {
        "Android 功能": "`nextFocusDown` 等 XML 属性",
        "HarmonyOS 功能": "`focusable` 属性",
        "映射说明": "焦点可获取性"
      },
      {
        "Android 功能": "`FocusFinder.findNextFocus()`",
        "HarmonyOS 功能": "系统自动处理",
        "映射说明": "下一个焦点查找"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明"
      ],
      [
        "`FOCUS_DOWN` / `FOCUS_UP` / `FOCUS_LEFT` / `FOCUS_RIGHT`",
        "键盘方向键",
        "方向键移动焦点"
      ],
      [
        "`nextFocusDown` 等 XML 属性",
        "`focusable` 属性",
        "焦点可获取性"
      ],
      [
        "`FocusFinder.findNextFocus()`",
        "系统自动处理",
        "下一个焦点查找"
      ]
    ]
  },
  {
    "table_index": 20,
    "rows": [
      {
        "Android 特性": "触摸自动获取焦点",
        "HarmonyOS 特性": "默认不自动",
        "映射说明": "HarmonyOS 需设置 `focusOnTouch` 属性"
      },
      {
        "Android 特性": "Tab 键切换焦点",
        "HarmonyOS 特性": "Tab 键切换焦点",
        "映射说明": "默认行为一致"
      },
      {
        "Android 特性": "方向键移动焦点",
        "HarmonyOS 特性": "方向键移动焦点",
        "映射说明": "默认行为一致"
      }
    ],
    "raw_table": [
      [
        "Android 特性",
        "HarmonyOS 特性",
        "映射说明"
      ],
      [
        "触摸自动获取焦点",
        "默认不自动",
        "HarmonyOS 需设置 `focusOnTouch` 属性"
      ],
      [
        "Tab 键切换焦点",
        "Tab 键切换焦点",
        "默认行为一致"
      ],
      [
        "方向键移动焦点",
        "方向键移动焦点",
        "默认行为一致"
      ]
    ]
  },
  {
    "table_index": 21,
    "rows": [
      {
        "Android 事件": "`OnKeyListener.onKey(View v, int keyCode, KeyEvent event)`",
        "HarmonyOS 事件": "`onKeyEvent(event: KeyEvent)`",
        "映射说明": "键盘事件",
        "代码示例对比": "Android: `view.setOnKeyListener { _, keyCode, _ -> }`<br/>HarmonyOS: `Component().onKeyEvent((event) => { /* 处理按键 */ })`"
      },
      {
        "Android 事件": "`dispatchKeyEvent(KeyEvent event)`",
        "HarmonyOS 事件": "`onKeyEvent()`",
        "映射说明": "按键分发",
        "代码示例对比": "功能类似"
      }
    ],
    "raw_table": [
      [
        "Android 事件",
        "HarmonyOS 事件",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`OnKeyListener.onKey(View v, int keyCode, KeyEvent event)`",
        "`onKeyEvent(event: KeyEvent)`",
        "键盘事件",
        "Android: `view.setOnKeyListener { _, keyCode, _ -> }`<br/>HarmonyOS: `Component().onKeyEvent((event) => { /* 处理按键 */ })`"
      ],
      [
        "`dispatchKeyEvent(KeyEvent event)`",
        "`onKeyEvent()`",
        "按键分发",
        "功能类似"
      ]
    ]
  },
  {
    "table_index": 22,
    "rows": [
      {
        "Android 键值": "`KeyEvent.KEYCODE_ENTER`",
        "HarmonyOS 键值": "`KeyCode.ENTER`",
        "映射说明": "回车键"
      },
      {
        "Android 键值": "`KeyEvent.KEYCODE_BACK`",
        "HarmonyOS 键值": "`KeyCode.ESCAPE`",
        "映射说明": "返回键"
      },
      {
        "Android 键值": "`KeyEvent.KEYCODE_DEL`",
        "HarmonyOS 键值": "`KeyCode.DELETE`",
        "映射说明": "删除键"
      },
      {
        "Android 键值": "`KeyEvent.KEYCODE_TAB`",
        "HarmonyOS 键值": "`KeyCode.TAB`",
        "映射说明": "Tab 键"
      },
      {
        "Android 键值": "`KeyEvent.KEYCODE_DPAD_UP/DOWN/LEFT/RIGHT`",
        "HarmonyOS 键值": "方向键",
        "映射说明": "方向键"
      }
    ],
    "raw_table": [
      [
        "Android 键值",
        "HarmonyOS 键值",
        "映射说明"
      ],
      [
        "`KeyEvent.KEYCODE_ENTER`",
        "`KeyCode.ENTER`",
        "回车键"
      ],
      [
        "`KeyEvent.KEYCODE_BACK`",
        "`KeyCode.ESCAPE`",
        "返回键"
      ],
      [
        "`KeyEvent.KEYCODE_DEL`",
        "`KeyCode.DELETE`",
        "删除键"
      ],
      [
        "`KeyEvent.KEYCODE_TAB`",
        "`KeyCode.TAB`",
        "Tab 键"
      ],
      [
        "`KeyEvent.KEYCODE_DPAD_UP/DOWN/LEFT/RIGHT`",
        "方向键",
        "方向键"
      ]
    ]
  },
  {
    "table_index": 23,
    "rows": [
      {
        "Android 功能": "`InputMethodManager`",
        "HarmonyOS 功能": "`InputMethod`",
        "映射说明": "输入法管理"
      },
      {
        "Android 功能": "`showSoftInput()` / `hideSoftInput()`",
        "HarmonyOS 功能": "`focusControl.requestFocus()`",
        "映射说明": "显示/隐藏键盘"
      },
      {
        "Android 功能": "`IME_ACTION` 配置",
        "HarmonyOS 功能": "`enterKeyType` 属性",
        "映射说明": "输入法操作类型"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明"
      ],
      [
        "`InputMethodManager`",
        "`InputMethod`",
        "输入法管理"
      ],
      [
        "`showSoftInput()` / `hideSoftInput()`",
        "`focusControl.requestFocus()`",
        "显示/隐藏键盘"
      ],
      [
        "`IME_ACTION` 配置",
        "`enterKeyType` 属性",
        "输入法操作类型"
      ]
    ]
  },
  {
    "table_index": 24,
    "rows": [
      {
        "Android 机制": "`dispatchTouchEvent()`",
        "HarmonyOS 机制": "自动分发系统",
        "映射说明": "Android 手动分发",
        "架构差异": "HarmonyOS 自动处理"
      },
      {
        "Android 机制": "`onInterceptTouchEvent()`",
        "HarmonyOS 机制": "`onTouchIntercept()`",
        "映射说明": "事件拦截",
        "架构差异": "功能类似,API不同"
      },
      {
        "Android 机制": "事件响应链机制",
        "HarmonyOS 机制": "事件响应链机制",
        "映射说明": "事件传播",
        "架构差异": "HarmonyOS 基于触摸测试构建响应链(API 20/21)"
      }
    ],
    "raw_table": [
      [
        "Android 机制",
        "HarmonyOS 机制",
        "映射说明",
        "架构差异"
      ],
      [
        "`dispatchTouchEvent()`",
        "自动分发系统",
        "Android 手动分发",
        "HarmonyOS 自动处理"
      ],
      [
        "`onInterceptTouchEvent()`",
        "`onTouchIntercept()`",
        "事件拦截",
        "功能类似,API不同"
      ],
      [
        "事件响应链机制",
        "事件响应链机制",
        "事件传播",
        "HarmonyOS 基于触摸测试构建响应链(API 20/21)"
      ]
    ]
  },
  {
    "table_index": 25,
    "rows": [
      {
        "Android 机制": "`requestDisallowInterceptTouchEvent(true)`",
        "HarmonyOS 机制": "`onTouchIntercept` 返回 false",
        "映射说明": "阻止拦截",
        "代码示例对比": "Android: `parent.requestDisallowInterceptTouchEvent(true)`<br/>HarmonyOS: `Container().onTouchIntercept(() => false)`"
      },
      {
        "Android 机制": "`stopPropagation()`",
        "HarmonyOS 机制": "`event.stopPropagation()`",
        "映射说明": "停止事件冒泡",
        "代码示例对比": "HarmonyOS: `event.stopPropagation()`(API 21+)"
      },
      {
        "Android 机制": "`return true` / `return false`",
        "HarmonyOS 机制": "事件消费",
        "映射说明": "事件消费控制",
        "代码示例对比": "Android: `return true` 消费事件<br/>HarmonyOS: 绑定事件即消费"
      }
    ],
    "raw_table": [
      [
        "Android 机制",
        "HarmonyOS 机制",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`requestDisallowInterceptTouchEvent(true)`",
        "`onTouchIntercept` 返回 false",
        "阻止拦截",
        "Android: `parent.requestDisallowInterceptTouchEvent(true)`<br/>HarmonyOS: `Container().onTouchIntercept(() => false)`"
      ],
      [
        "`stopPropagation()`",
        "`event.stopPropagation()`",
        "停止事件冒泡",
        "HarmonyOS: `event.stopPropagation()`(API 21+)"
      ],
      [
        "`return true` / `return false`",
        "事件消费",
        "事件消费控制",
        "Android: `return true` 消费事件<br/>HarmonyOS: 绑定事件即消费"
      ]
    ]
  },
  {
    "table_index": 26,
    "rows": [
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`onGestureRecognizerJudgeBegin()`",
        "映射说明": "手势判断拦截",
        "代码示例": "`Component().onGestureRecognizerJudgeBegin(() => { /* 拦截手势判断 */ })`"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`parallelGesture()`",
        "映射说明": "并行手势绑定",
        "代码示例": "支持系统手势和自定义手势并行处理"
      },
      {
        "Android 功能": "无直接对应",
        "HarmonyOS 功能": "`手势拦截`",
        "映射说明": "动态控制手势触发",
        "代码示例": "从 API 20 开始支持手势拦截能力"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例"
      ],
      [
        "无直接对应",
        "`onGestureRecognizerJudgeBegin()`",
        "手势判断拦截",
        "`Component().onGestureRecognizerJudgeBegin(() => { /* 拦截手势判断 */ })`"
      ],
      [
        "无直接对应",
        "`parallelGesture()`",
        "并行手势绑定",
        "支持系统手势和自定义手势并行处理"
      ],
      [
        "无直接对应",
        "`手势拦截`",
        "动态控制手势触发",
        "从 API 20 开始支持手势拦截能力"
      ]
    ]
  },
  {
    "table_index": 27,
    "rows": [
      {
        "概念": "触摸测试",
        "Android": "手动实现",
        "HarmonyOS": "自动基于坐标测试",
        "说明": "API 20/21 自动进行"
      },
      {
        "概念": "响应链收集",
        "Android": "递归遍历",
        "HarmonyOS": "右子树优先后序遍历",
        "说明": "更高效的事件分发"
      },
      {
        "概念": "事件分发",
        "Android": "dispatchTouchEvent",
        "HarmonyOS": "自动分发系统",
        "说明": "减少开发复杂度"
      }
    ],
    "raw_table": [
      [
        "概念",
        "Android",
        "HarmonyOS",
        "说明"
      ],
      [
        "触摸测试",
        "手动实现",
        "自动基于坐标测试",
        "API 20/21 自动进行"
      ],
      [
        "响应链收集",
        "递归遍历",
        "右子树优先后序遍历",
        "更高效的事件分发"
      ],
      [
        "事件分发",
        "dispatchTouchEvent",
        "自动分发系统",
        "减少开发复杂度"
      ]
    ]
  },
  {
    "table_index": 28,
    "rows": [
      {
        "Android 问题": "父子组件触摸事件冲突",
        "HarmonyOS 解决方案": "`onTouch` + `onClick` 冲突解决",
        "映射说明": "多层级事件处理",
        "参考文档": "[多层级手势事件官方文档](https://developer.huawei.com/consumer/cn/doc/HarmonyOS-Guides/arkts-gesture-events-multi-level-gesture)"
      },
      {
        "Android 问题": "Button onClick 父组件 onTouch 冲突",
        "HarmonyOS 解决方案": "`stopPropagation()` 或配置",
        "映射说明": "事件优先级处理",
        "参考文档": "[onTouch与onClick事件冲突 FAQ](https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-arkui-174)"
      }
    ],
    "raw_table": [
      [
        "Android 问题",
        "HarmonyOS 解决方案",
        "映射说明",
        "参考文档"
      ],
      [
        "父子组件触摸事件冲突",
        "`onTouch` + `onClick` 冲突解决",
        "多层级事件处理",
        "[多层级手势事件官方文档](https://developer.huawei.com/consumer/cn/doc/HarmonyOS-Guides/arkts-gesture-events-multi-level-gesture)"
      ],
      [
        "Button onClick 父组件 onTouch 冲突",
        "`stopPropagation()` 或配置",
        "事件优先级处理",
        "[onTouch与onClick事件冲突 FAQ](https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-arkui-174)"
      ]
    ]
  },
  {
    "table_index": 29,
    "rows": [
      {
        "Android 生命周期": "`View.onAttachedToWindow()`",
        "HarmonyOS 生命周期": "`aboutToAppear()`",
        "映射说明": "组件即将出现",
        "调用时机": "组件挂载到 DOM 时"
      },
      {
        "Android 生命周期": "`View.onDetachedFromWindow()`",
        "HarmonyOS 生命周期": "`aboutToDisappear()`",
        "映射说明": "组件即将消失",
        "调用时机": "组件从 DOM 卸载时"
      },
      {
        "Android 生命周期": "`View.onVisibilityChanged()`",
        "HarmonyOS 生命周期": "`visibility` 属性变化",
        "映射说明": "可见性变化",
        "调用时机": "组件显示/隐藏时"
      }
    ],
    "raw_table": [
      [
        "Android 生命周期",
        "HarmonyOS 生命周期",
        "映射说明",
        "调用时机"
      ],
      [
        "`View.onAttachedToWindow()`",
        "`aboutToAppear()`",
        "组件即将出现",
        "组件挂载到 DOM 时"
      ],
      [
        "`View.onDetachedFromWindow()`",
        "`aboutToDisappear()`",
        "组件即将消失",
        "组件从 DOM 卸载时"
      ],
      [
        "`View.onVisibilityChanged()`",
        "`visibility` 属性变化",
        "可见性变化",
        "组件显示/隐藏时"
      ]
    ]
  },
  {
    "table_index": 30,
    "rows": [
      {
        "Android 生命周期": "`Activity.onCreate()`",
        "HarmonyOS 生命周期": "`UIAbility.onCreate()`",
        "映射说明": "创建",
        "调用时机": "页面创建时"
      },
      {
        "Android 生命周期": "`Activity.onStart()`",
        "HarmonyOS 生命周期": "`UIAbility.onForeground()`",
        "映射说明": "前台",
        "调用时机": "页面进入前台时"
      },
      {
        "Android 生命周期": "`Activity.onResume()`",
        "HarmonyOS 生命周期": "`UIAbility.onForeground()` 内部处理",
        "映射说明": "可交互",
        "调用时机": "页面可交互时"
      },
      {
        "Android 生命周期": "`Activity.onPause()`",
        "HarmonyOS 生命周期": "`UIAbility.onBackground()`",
        "映射说明": "后台",
        "调用时机": "页面进入后台时"
      },
      {
        "Android 生命周期": "`Activity.onStop()`",
        "HarmonyOS 生命周期": "`UIAbility.onBackground()`",
        "映射说明": "停止",
        "调用时机": "页面停止时"
      },
      {
        "Android 生命周期": "`Activity.onDestroy()`",
        "HarmonyOS 生命周期": "`UIAbility.onDestroy()`",
        "映射说明": "销毁",
        "调用时机": "页面销毁时"
      }
    ],
    "raw_table": [
      [
        "Android 生命周期",
        "HarmonyOS 生命周期",
        "映射说明",
        "调用时机"
      ],
      [
        "`Activity.onCreate()`",
        "`UIAbility.onCreate()`",
        "创建",
        "页面创建时"
      ],
      [
        "`Activity.onStart()`",
        "`UIAbility.onForeground()`",
        "前台",
        "页面进入前台时"
      ],
      [
        "`Activity.onResume()`",
        "`UIAbility.onForeground()` 内部处理",
        "可交互",
        "页面可交互时"
      ],
      [
        "`Activity.onPause()`",
        "`UIAbility.onBackground()`",
        "后台",
        "页面进入后台时"
      ],
      [
        "`Activity.onStop()`",
        "`UIAbility.onBackground()`",
        "停止",
        "页面停止时"
      ],
      [
        "`Activity.onDestroy()`",
        "`UIAbility.onDestroy()`",
        "销毁",
        "页面销毁时"
      ]
    ]
  },
  {
    "table_index": 31,
    "rows": [
      {
        "Android 事件": "`onWindowFocusChanged(boolean hasFocus)`",
        "HarmonyOS 事件": "`onPageShow()` / `onPageHide()`",
        "映射说明": "窗口焦点变化",
        "代码示例": "`@Entry struct Page { onPageShow() { /* 页面显示 */ } onPageHide() { /* 页面隐藏 */ } }`"
      },
      {
        "Android 事件": "`onConfigurationChanged(Configuration newConfig)`",
        "HarmonyOS 事件": "`onConfigurationUpdated(newConfig)`",
        "映射说明": "配置变化",
        "代码示例": "配置(如屏幕方向)变化时调用"
      }
    ],
    "raw_table": [
      [
        "Android 事件",
        "HarmonyOS 事件",
        "映射说明",
        "代码示例"
      ],
      [
        "`onWindowFocusChanged(boolean hasFocus)`",
        "`onPageShow()` / `onPageHide()`",
        "窗口焦点变化",
        "`@Entry struct Page { onPageShow() { /* 页面显示 */ } onPageHide() { /* 页面隐藏 */ } }`"
      ],
      [
        "`onConfigurationChanged(Configuration newConfig)`",
        "`onConfigurationUpdated(newConfig)`",
        "配置变化",
        "配置(如屏幕方向)变化时调用"
      ]
    ]
  },
  {
    "table_index": 32,
    "rows": [
      {
        "Android 动画": "`ObjectAnimator.ofFloat(view, \"translationX\", 0, 100)`",
        "HarmonyOS 动画": "`animateTo({ duration: 1000 }, () => { this.x = 100 })`",
        "映射说明": "属性动画",
        "代码示例对比": "Android: `ObjectAnimator.ofFloat(view, \"translationX\", 0, 100).start()`<br/>HarmonyOS: `animateTo({ duration: 1000 }, () => { this.x = 100 })`"
      },
      {
        "Android 动画": "`ValueAnimator.ofFloat(0, 100)`",
        "HarmonyOS 动画": "`animateTo()`",
        "映射说明": "值动画",
        "代码示例对比": "Android: `ValueAnimator.ofFloat(0, 100)`<br/>HarmonyOS: `animateTo({ duration: 1000 }, () => { this.value = 100 })`"
      },
      {
        "Android 动画": "`AnimatorSet`",
        "HarmonyOS 动画": "组合 `animateTo` 调用",
        "映射说明": "动画集合",
        "代码示例对比": "Android: `AnimatorSet.playTogether(animator1, animator2)`<br/>HarmonyOS: `animateTo({ duration: 1000 }, () => { this.x = 100; this.y = 200; })`"
      }
    ],
    "raw_table": [
      [
        "Android 动画",
        "HarmonyOS 动画",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`ObjectAnimator.ofFloat(view, \"translationX\", 0, 100)`",
        "`animateTo({ duration: 1000 }, () => { this.x = 100 })`",
        "属性动画",
        "Android: `ObjectAnimator.ofFloat(view, \"translationX\", 0, 100).start()`<br/>HarmonyOS: `animateTo({ duration: 1000 }, () => { this.x = 100 })`"
      ],
      [
        "`ValueAnimator.ofFloat(0, 100)`",
        "`animateTo()`",
        "值动画",
        "Android: `ValueAnimator.ofFloat(0, 100)`<br/>HarmonyOS: `animateTo({ duration: 1000 }, () => { this.value = 100 })`"
      ],
      [
        "`AnimatorSet`",
        "组合 `animateTo` 调用",
        "动画集合",
        "Android: `AnimatorSet.playTogether(animator1, animator2)`<br/>HarmonyOS: `animateTo({ duration: 1000 }, () => { this.x = 100; this.y = 200; })`"
      ]
    ]
  },
  {
    "table_index": 33,
    "rows": [
      {
        "Android 动画": "`TranslateAnimation`",
        "HarmonyOS 动画": "`animateTo` + `translate`",
        "映射说明": "平移动画",
        "代码示例对比": "Android: `TranslateAnimation(0, 100, 0, 0)`<br/>HarmonyOS: `Component().translate({ x: this.x }).animation({ duration: 1000 })`"
      },
      {
        "Android 动画": "`ScaleAnimation`",
        "HarmonyOS 动画": "`animateTo` + `scale`",
        "映射说明": "缩放动画",
        "代码示例对比": "Android: `ScaleAnimation(1, 1.5f, 1, 1.5f)`<br/>HarmonyOS: `Component().scale({ x: this.scale }).animation({ duration: 1000 })`"
      },
      {
        "Android 动画": "`RotateAnimation`",
        "HarmonyOS 动画": "`animateTo` + `rotate`",
        "映射说明": "旋转动画",
        "代码示例对比": "Android: `RotateAnimation(0, 360)`<br/>HarmonyOS: `Component().rotate({ angle: this.angle }).animation({ duration: 1000 })`"
      },
      {
        "Android 动画": "`AlphaAnimation`",
        "HarmonyOS 动画": "`animateTo` + `opacity`",
        "映射说明": "透明度动画",
        "代码示例对比": "Android: `AlphaAnimation(1, 0)`<br/>HarmonyOS: `Component().opacity(this.opacity).animation({ duration: 1000 })`"
      }
    ],
    "raw_table": [
      [
        "Android 动画",
        "HarmonyOS 动画",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`TranslateAnimation`",
        "`animateTo` + `translate`",
        "平移动画",
        "Android: `TranslateAnimation(0, 100, 0, 0)`<br/>HarmonyOS: `Component().translate({ x: this.x }).animation({ duration: 1000 })`"
      ],
      [
        "`ScaleAnimation`",
        "`animateTo` + `scale`",
        "缩放动画",
        "Android: `ScaleAnimation(1, 1.5f, 1, 1.5f)`<br/>HarmonyOS: `Component().scale({ x: this.scale }).animation({ duration: 1000 })`"
      ],
      [
        "`RotateAnimation`",
        "`animateTo` + `rotate`",
        "旋转动画",
        "Android: `RotateAnimation(0, 360)`<br/>HarmonyOS: `Component().rotate({ angle: this.angle }).animation({ duration: 1000 })`"
      ],
      [
        "`AlphaAnimation`",
        "`animateTo` + `opacity`",
        "透明度动画",
        "Android: `AlphaAnimation(1, 0)`<br/>HarmonyOS: `Component().opacity(this.opacity).animation({ duration: 1000 })`"
      ]
    ]
  },
  {
    "table_index": 34,
    "rows": [
      {
        "Android 转场": "`ActivityOptions.makeCustomAnimation()`",
        "HarmonyOS 转场": "`pageTransition()`",
        "映射说明": "页面转场",
        "代码示例对比": "Android: `startActivity(intent, options.toBundle())`<br/>HarmonyOS: `@Entry @Component struct Page { pageTransition() { PageTransitionEnter({ type: RouteType.None, duration: 1000 }).slide({ type: SlideEffect.Right }) } }`"
      },
      {
        "Android 转场": "`SharedElementCallback`",
        "HarmonyOS 转场": "`sharedTransition()`",
        "映射说明": "共享元素转场",
        "代码示例对比": "Android: `ActivityOptions.makeSceneTransitionAnimation()`<br/>HarmonyOS: `Component().sharedTransition('id', { duration: 1000 })`"
      },
      {
        "Android 转场": "`Transition`",
        "HarmonyOS 转场": "`transition`",
        "映射说明": "组件转场",
        "代码示例对比": "Android: `TransitionSet`<br/>HarmonyOS: `if (this.show) { Component().transition({ type: TransitionType.All, opacity: 0 }) }`"
      }
    ],
    "raw_table": [
      [
        "Android 转场",
        "HarmonyOS 转场",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`ActivityOptions.makeCustomAnimation()`",
        "`pageTransition()`",
        "页面转场",
        "Android: `startActivity(intent, options.toBundle())`<br/>HarmonyOS: `@Entry @Component struct Page { pageTransition() { PageTransitionEnter({ type: RouteType.None, duration: 1000 }).slide({ type: SlideEffect.Right }) } }`"
      ],
      [
        "`SharedElementCallback`",
        "`sharedTransition()`",
        "共享元素转场",
        "Android: `ActivityOptions.makeSceneTransitionAnimation()`<br/>HarmonyOS: `Component().sharedTransition('id', { duration: 1000 })`"
      ],
      [
        "`Transition`",
        "`transition`",
        "组件转场",
        "Android: `TransitionSet`<br/>HarmonyOS: `if (this.show) { Component().transition({ type: TransitionType.All, opacity: 0 }) }`"
      ]
    ]
  },
  {
    "table_index": 35,
    "rows": [
      {
        "Android 监听器": "`Animator.AnimatorListener`",
        "HarmonyOS 监听器": "`AnimatorResult` 回调",
        "映射说明": "动画生命周期",
        "代码示例对比": "Android: `animator.addListener(object: Animator.AnimatorListener { override fun onAnimationStart(animation: Animator) {} override fun onAnimationEnd(animation: Animator) {} })`<br/>HarmonyOS: `animateTo({ duration: 1000, onFinish: () => { /* 动画结束 */ } }, () => { /* 动画内容 */ })`"
      },
      {
        "Android 监听器": "`ValueAnimator.AnimatorUpdateListener`",
        "HarmonyOS 监听器": "`AnimatorResult` 回调",
        "映射说明": "动画更新",
        "代码示例对比": "Android: `valueAnimator.addUpdateListener { animation -> val value = animation.animatedValue as Float }`<br/>HarmonyOS: 状态自动更新,无需回调"
      }
    ],
    "raw_table": [
      [
        "Android 监听器",
        "HarmonyOS 监听器",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`Animator.AnimatorListener`",
        "`AnimatorResult` 回调",
        "动画生命周期",
        "Android: `animator.addListener(object: Animator.AnimatorListener { override fun onAnimationStart(animation: Animator) {} override fun onAnimationEnd(animation: Animator) {} })`<br/>HarmonyOS: `animateTo({ duration: 1000, onFinish: () => { /* 动画结束 */ } }, () => { /* 动画内容 */ })`"
      ],
      [
        "`ValueAnimator.AnimatorUpdateListener`",
        "`AnimatorResult` 回调",
        "动画更新",
        "Android: `valueAnimator.addUpdateListener { animation -> val value = animation.animatedValue as Float }`<br/>HarmonyOS: 状态自动更新,无需回调"
      ]
    ]
  },
  {
    "table_index": 36,
    "rows": [
      {
        "Android 功能": "`animator.start()`",
        "HarmonyOS 功能": "`animateTo()` 自动执行",
        "映射说明": "启动动画",
        "代码示例对比": "Android: `animator.start()`<br/>HarmonyOS: `animateTo({}, () => { /* 状态变化即启动 */ })`"
      },
      {
        "Android 功能": "`animator.cancel()`",
        "HarmonyOS 功能": "`AnimatorResult.cancel()`",
        "映射说明": "取消动画",
        "代码示例对比": "Android: `animator.cancel()`<br/>HarmonyOS: `animatorResult.cancel()`"
      },
      {
        "Android 功能": "`animator.pause()`",
        "HarmonyOS 功能": "无直接对应",
        "映射说明": "暂停动画",
        "代码示例对比": "HarmonyOS 需自定义实现"
      },
      {
        "Android 功能": "`animator.resume()`",
        "HarmonyOS 功能": "无直接对应",
        "映射说明": "恢复动画",
        "代码示例对比": "HarmonyOS 需自定义实现"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`animator.start()`",
        "`animateTo()` 自动执行",
        "启动动画",
        "Android: `animator.start()`<br/>HarmonyOS: `animateTo({}, () => { /* 状态变化即启动 */ })`"
      ],
      [
        "`animator.cancel()`",
        "`AnimatorResult.cancel()`",
        "取消动画",
        "Android: `animator.cancel()`<br/>HarmonyOS: `animatorResult.cancel()`"
      ],
      [
        "`animator.pause()`",
        "无直接对应",
        "暂停动画",
        "HarmonyOS 需自定义实现"
      ],
      [
        "`animator.resume()`",
        "无直接对应",
        "恢复动画",
        "HarmonyOS 需自定义实现"
      ]
    ]
  },
  {
    "table_index": 37,
    "rows": [
      {
        "Android 功能": "`View.startDragAndDrop()`",
        "HarmonyOS 功能": "`Drag` 装饰器",
        "映射说明": "拖拽启动",
        "代码示例对比": "Android: `view.startDragAndDrop(clipData, myShadow, null, 0)`<br/>HarmonyOS: `Component().gesture(Drag())`"
      },
      {
        "Android 功能": "`OnDragListener`",
        "HarmonyOS 功能": "`Drag` 回调",
        "映射说明": "拖拽监听",
        "代码示例对比": "Android: `view.setOnDragListener { _, event -> when (event.action) { DragEvent.ACTION_DROP -> } }`<br/>HarmonyOS: `Component().gesture(Drag().onActionStart(() => {}).onAction((event) => {}).onActionEnd(() => {}))`"
      },
      {
        "Android 功能": "`DragEvent.ACTION_DRAG_STARTED`",
        "HarmonyOS 功能": "`Drag` onActionStart",
        "映射说明": "拖拽开始",
        "代码示例对比": "`onActionStart(() => { /* 拖拽开始 */ })`"
      },
      {
        "Android 功能": "`DragEvent.ACTION_DRAG_LOCATION`",
        "HarmonyOS 功能": "`Drag` onAction",
        "映射说明": "拖拽进行中",
        "代码示例对比": "`onAction((event: GestureEvent) => { /* 拖拽位置 */ })`"
      },
      {
        "Android 功能": "`DragEvent.ACTION_DROP`",
        "HarmonyOS 功能": "`Drop` 装饰器",
        "映射说明": "放置",
        "代码示例对比": "`Component().gesture(Drop().onDrop((event) => { /* 处理放置 */ }))`"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`View.startDragAndDrop()`",
        "`Drag` 装饰器",
        "拖拽启动",
        "Android: `view.startDragAndDrop(clipData, myShadow, null, 0)`<br/>HarmonyOS: `Component().gesture(Drag())`"
      ],
      [
        "`OnDragListener`",
        "`Drag` 回调",
        "拖拽监听",
        "Android: `view.setOnDragListener { _, event -> when (event.action) { DragEvent.ACTION_DROP -> } }`<br/>HarmonyOS: `Component().gesture(Drag().onActionStart(() => {}).onAction((event) => {}).onActionEnd(() => {}))`"
      ],
      [
        "`DragEvent.ACTION_DRAG_STARTED`",
        "`Drag` onActionStart",
        "拖拽开始",
        "`onActionStart(() => { /* 拖拽开始 */ })`"
      ],
      [
        "`DragEvent.ACTION_DRAG_LOCATION`",
        "`Drag` onAction",
        "拖拽进行中",
        "`onAction((event: GestureEvent) => { /* 拖拽位置 */ })`"
      ],
      [
        "`DragEvent.ACTION_DROP`",
        "`Drop` 装饰器",
        "放置",
        "`Component().gesture(Drop().onDrop((event) => { /* 处理放置 */ }))`"
      ]
    ]
  },
  {
    "table_index": 38,
    "rows": [
      {
        "Android 功能": "`DragEvent.ACTION_DROP`",
        "HarmonyOS 功能": "`Drop` onDrop",
        "映射说明": "放置目标",
        "代码示例": "`DropContainer().gesture(Drop().onDrop((event) => { /* 处理数据放置 */ }))`"
      },
      {
        "Android 功能": "`ClipData` 传递",
        "HarmonyOS 功能": "`Drop` event 参数",
        "映射说明": "数据传递",
        "代码示例": "通过 gesture event 传递数据"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 功能",
        "映射说明",
        "代码示例"
      ],
      [
        "`DragEvent.ACTION_DROP`",
        "`Drop` onDrop",
        "放置目标",
        "`DropContainer().gesture(Drop().onDrop((event) => { /* 处理数据放置 */ }))`"
      ],
      [
        "`ClipData` 传递",
        "`Drop` event 参数",
        "数据传递",
        "通过 gesture event 传递数据"
      ]
    ]
  },
  {
    "table_index": 39,
    "rows": [
      {
        "Android 属性": "`setContentDescription(CharSequence)`",
        "HarmonyOS 属性": "`accessibilityText`",
        "映射说明": "无障碍文本",
        "代码示例对比": "Android: `view.setContentDescription(\"描述文本\")`<br/>HarmonyOS: `Component().accessibilityText(\"描述文本\")`"
      },
      {
        "Android 属性": "`setImportantForAccessibility(int)`",
        "HarmonyOS 属性": "`accessibilityLevel`",
        "映射说明": "无障碍重要性",
        "代码示例对比": "Android: `view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES)`<br/>HarmonyOS: `Component().accessibilityLevel(AccessibilityLevel.AUTO)`"
      },
      {
        "Android 属性": "`setAccessibilityDelegate()`",
        "HarmonyOS 属性": "无直接对应",
        "映射说明": "无障碍代理",
        "代码示例对比": "需自定义实现"
      },
      {
        "Android 属性": "`announceForAccessibility(CharSequence)`",
        "HarmonyOS 属性": "无直接对应",
        "映射说明": "公告通知",
        "代码示例对比": "需使用系统 API"
      }
    ],
    "raw_table": [
      [
        "Android 属性",
        "HarmonyOS 属性",
        "映射说明",
        "代码示例对比"
      ],
      [
        "`setContentDescription(CharSequence)`",
        "`accessibilityText`",
        "无障碍文本",
        "Android: `view.setContentDescription(\"描述文本\")`<br/>HarmonyOS: `Component().accessibilityText(\"描述文本\")`"
      ],
      [
        "`setImportantForAccessibility(int)`",
        "`accessibilityLevel`",
        "无障碍重要性",
        "Android: `view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES)`<br/>HarmonyOS: `Component().accessibilityLevel(AccessibilityLevel.AUTO)`"
      ],
      [
        "`setAccessibilityDelegate()`",
        "无直接对应",
        "无障碍代理",
        "需自定义实现"
      ],
      [
        "`announceForAccessibility(CharSequence)`",
        "无直接对应",
        "公告通知",
        "需使用系统 API"
      ]
    ]
  },
  {
    "table_index": 40,
    "rows": [
      {
        "Android 功能": "**拖放系统**",
        "HarmonyOS 替代方案": "",
        "难度等级": "",
        "说明": ""
      },
      {
        "Android 功能": "`ClipData` 系统拖放",
        "HarmonyOS 替代方案": "自定义拖拽",
        "难度等级": "困难",
        "说明": "HarmonyOS 没有 ClipData 系统,需自定义数据传递"
      },
      {
        "Android 功能": "`DragEvent.ACTION_DRAG_ENTERED/EXITED`",
        "HarmonyOS 替代方案": "自定义边界检测",
        "难度等级": "中等",
        "说明": "需手动判断拖拽进入/离开区域"
      },
      {
        "Android 功能": "**高级焦点功能**",
        "HarmonyOS 替代方案": "",
        "难度等级": "",
        "说明": ""
      },
      {
        "Android 功能": "`FocusFinder` 查找算法",
        "HarmonyOS 替代方案": "`focusControl` API",
        "难度等级": "中等",
        "说明": "系统自动处理,无手动查找需求"
      },
      {
        "Android 功能": "`setOnFocusChangeListener` 的精确时机",
        "HarmonyOS 替代方案": "`onFocus` / `onBlur`",
        "难度等级": "简单",
        "说明": "时机略有差异,需调整逻辑"
      },
      {
        "Android 功能": "**触摸事件细节**",
        "HarmonyOS 替代方案": "",
        "难度等级": "",
        "说明": ""
      },
      {
        "Android 功能": "`MotionEvent.getToolType()`",
        "HarmonyOS 替代方案": "`toolType` 属性",
        "难度等级": "简单",
        "说明": "部分支持,工具类型有限"
      },
      {
        "Android 功能": "`MotionEvent.getAxisValue()`",
        "HarmonyOS 替代方案": "无直接对应",
        "难度等级": "中等",
        "说明": "手柄、滚轮等高级输入暂不支持"
      },
      {
        "Android 功能": "`MotionEvent.getSource()`",
        "HarmonyOS 替代方案": "无直接对应",
        "难度等级": "中等",
        "说明": "输入源判断需自定义"
      },
      {
        "Android 功能": "**手势冲突高级处理**",
        "HarmonyOS 替代方案": "",
        "难度等级": "",
        "说明": ""
      },
      {
        "Android 功能": "`onInterceptTouchEvent()` 嵌套拦截",
        "HarmonyOS 替代方案": "`onTouchIntercept` 级联",
        "难度等级": "简单",
        "说明": "API 20/21 提供了更强大的拦截机制"
      },
      {
        "Android 功能": "**动画高级功能**",
        "HarmonyOS 替代方案": "",
        "难度等级": "",
        "说明": ""
      },
      {
        "Android 功能": "`Animator.pause()` / `resume()`",
        "HarmonyOS 替代方案": "自定义状态管理",
        "难度等级": "中等",
        "说明": "需要手动控制动画状态"
      },
      {
        "Android 功能": "`AnimatorListener.onAnimationRepeat()`",
        "HarmonyOS 替代方案": "自定义重复逻辑",
        "难度等级": "中等",
        "说明": "HarmonyOS 无重复回调,需手动实现"
      },
      {
        "Android 功能": "`LayoutTransition`",
        "HarmonyOS 替代方案": "自定义布局动画",
        "难度等级": "困难",
        "说明": "需要监听组件添加/删除"
      },
      {
        "Android 功能": "`ViewPropertyAnimator` 组合",
        "HarmonyOS 替代方案": "链式 `animateTo`",
        "难度等级": "简单",
        "说明": "语法不同,功能类似"
      },
      {
        "Android 功能": "**键盘事件细节**",
        "HarmonyOS 替代方案": "",
        "难度等级": "",
        "说明": ""
      },
      {
        "Android 功能": "`KeyEvent` 完整事件体系",
        "HarmonyOS 替代方案": "`KeyEvent` 简化版",
        "难度等级": "中等",
        "说明": "HarmonyOS 键盘事件较为简化"
      },
      {
        "Android 功能": "`dispatchKeyShortcutEvent()`",
        "HarmonyOS 替代方案": "无直接对应",
        "难度等级": "中等",
        "说明": "快捷键处理需自定义"
      },
      {
        "Android 功能": "`onKeyLongPress()`",
        "HarmonyOS 替代方案": "自定义延时判断",
        "难度等级": "简单",
        "说明": "需要计时逻辑"
      },
      {
        "Android 功能": "**多窗口交互**",
        "HarmonyOS 替代方案": "",
        "难度等级": "",
        "说明": ""
      },
      {
        "Android 功能": "`onMultiWindowModeChanged()`",
        "HarmonyOS 替代方案": "无直接对应",
        "难度等级": "不可行",
        "说明": "HarmonyOS 无多窗口模式"
      },
      {
        "Android 功能": "`onPictureInPictureModeChanged()`",
        "HarmonyOS 替代方案": "无直接对应",
        "难度等级": "不可行",
        "说明": "HarmonyOS 无画中画模式"
      }
    ],
    "raw_table": [
      [
        "Android 功能",
        "HarmonyOS 替代方案",
        "难度等级",
        "说明"
      ],
      [
        "**拖放系统**",
        "",
        "",
        ""
      ],
      [
        "`ClipData` 系统拖放",
        "自定义拖拽",
        "困难",
        "HarmonyOS 没有 ClipData 系统,需自定义数据传递"
      ],
      [
        "`DragEvent.ACTION_DRAG_ENTERED/EXITED`",
        "自定义边界检测",
        "中等",
        "需手动判断拖拽进入/离开区域"
      ],
      [
        "**高级焦点功能**",
        "",
        "",
        ""
      ],
      [
        "`FocusFinder` 查找算法",
        "`focusControl` API",
        "中等",
        "系统自动处理,无手动查找需求"
      ],
      [
        "`setOnFocusChangeListener` 的精确时机",
        "`onFocus` / `onBlur`",
        "简单",
        "时机略有差异,需调整逻辑"
      ],
      [
        "**触摸事件细节**",
        "",
        "",
        ""
      ],
      [
        "`MotionEvent.getToolType()`",
        "`toolType` 属性",
        "简单",
        "部分支持,工具类型有限"
      ],
      [
        "`MotionEvent.getAxisValue()`",
        "无直接对应",
        "中等",
        "手柄、滚轮等高级输入暂不支持"
      ],
      [
        "`MotionEvent.getSource()`",
        "无直接对应",
        "中等",
        "输入源判断需自定义"
      ],
      [
        "**手势冲突高级处理**",
        "",
        "",
        ""
      ],
      [
        "`onInterceptTouchEvent()` 嵌套拦截",
        "`onTouchIntercept` 级联",
        "简单",
        "API 20/21 提供了更强大的拦截机制"
      ],
      [
        "**动画高级功能**",
        "",
        "",
        ""
      ],
      [
        "`Animator.pause()` / `resume()`",
        "自定义状态管理",
        "中等",
        "需要手动控制动画状态"
      ],
      [
        "`AnimatorListener.onAnimationRepeat()`",
        "自定义重复逻辑",
        "中等",
        "HarmonyOS 无重复回调,需手动实现"
      ],
      [
        "`LayoutTransition`",
        "自定义布局动画",
        "困难",
        "需要监听组件添加/删除"
      ],
      [
        "`ViewPropertyAnimator` 组合",
        "链式 `animateTo`",
        "简单",
        "语法不同,功能类似"
      ],
      [
        "**键盘事件细节**",
        "",
        "",
        ""
      ],
      [
        "`KeyEvent` 完整事件体系",
        "`KeyEvent` 简化版",
        "中等",
        "HarmonyOS 键盘事件较为简化"
      ],
      [
        "`dispatchKeyShortcutEvent()`",
        "无直接对应",
        "中等",
        "快捷键处理需自定义"
      ],
      [
        "`onKeyLongPress()`",
        "自定义延时判断",
        "简单",
        "需要计时逻辑"
      ],
      [
        "**多窗口交互**",
        "",
        "",
        ""
      ],
      [
        "`onMultiWindowModeChanged()`",
        "无直接对应",
        "不可行",
        "HarmonyOS 无多窗口模式"
      ],
      [
        "`onPictureInPictureModeChanged()`",
        "无直接对应",
        "不可行",
        "HarmonyOS 无画中画模式"
      ]
    ]
  }
]