docs: refine impact scope and traceability

This commit is contained in:
clz
2026-08-25 14:56:53 +08:00
parent b5d837cc45
commit 6cfad5fa82
10 changed files with 94 additions and 74 deletions
+32 -26
View File
@@ -15,8 +15,6 @@
| 交易 SDK | `harmony_futures_trade_sdk` `futures_trade_sdk`(原生 `lib-weituosdk`) | Native 锁规避、成交推送、市价缓存 |
| 画线 SDK | `hmdrawlinebasicsdk` | 绘制候选集去重 |
本仓库仅保存变更说明,不能直接构建或产出 HAP/HAR。
## 3. 功能需求
### FR-01 通信与解析异步化
@@ -44,37 +42,45 @@
2. WebView 总览页销毁时,必须停止三个行情请求并清空 client 与 JS bridge 的双向引用。
## 4. 影响面
本章仅描述应用层、ArkTS SDK 和画线 SDK 的业务影响,不包含 `ohos_mobile_lib_communication` 的 Worker、解压、曲线解析、队列索引及跨 Frame 缓冲等内部修改,也不包含 `futures_trade_sdk` 原生 `lib-weituosdk` 的 C++ 锁优化。
| 需求域 | 用户/业务入口 | 受影响组件 | 保持不变 | 重点回归 |
同一功能涉及上游 SDK 实现和应用 HAR 接入时,分别列入对应代码库。
### 4.1 `harmony-ths-futures`
| 类型 | 业务入口 | 应用层改动 | 保持不变 | 重点回归 |
| --- | --- | --- | --- | --- |
| 通信与解析 | 登录、验证码、行情包与 K 线加载 | XML Parser、通信 Worker、`QueueManagement` | 协议、回调结果、消息顺序 | 损坏 XML、大包、周期连续切换、跨 Frame 请求 |
| 行情与画线 | 行情列表刷新、合约详情、K 线绘制 | `TableRequestClient`、画线 SDK | 行情数据、线条样式、命中与层级 | 高频推送、分组切换、滚动、跨周期线合并 |
| 交易 | 前后台、账号切换、挂单/委托/成交页 | `TradePage``TradeApiManager`、交易 SDK | 下单/撤单、账户过滤、成交汇总与排序规则 | 断网重登、重复刷新、重复推送、真实账户切换 |
| 页面生命周期 | WebView 行情总览页退出 | `OverViewEvent`、请求 client、JS bridge | 总览请求参数、前后台恢复行为 | 反复进入/退出总览页、页面销毁后回调 |
| Freeze | 登录、验证码、手机号查询 | XML 解码与属性解析改为异步执行,主线程只处理结果 | 请求协议、回调接口、Cookie 与手机号存储规则 | Upass 登录、验证码成功/失败、手机号回填、用户切换、损坏 XML |
| Freeze | K 线详情与画线 | 接入画线去重优化 HAR,并通过 overrides 统一依赖版本 | 画线数据、样式、顺序、命中及编辑规则 | HAR 依赖唯一性、多画线滑动、周期切换、跨周期画线 |
| Freeze | 交易页前后台、断网重登、挂单刷新 | 在线状态改读应用缓存;同账号重登复用进行中任务;挂单请求合并并保留一次尾随刷新;套利开关按账号缓存 | 下单/撤单流程、查询结果、重登回调及条件单补查时机 | 前后台切换、断网恢复、账号切换、挂单/委托刷新、灰度配置更新 |
| Freeze | 成交查询与成交推送 | 接入成交推送去重与排序优化 HAR | 成交查询入口、账号过滤、成交量及盈亏展示 | HAR 接入、重复推送、账号切换及成交汇总 |
| OOM | 行情列表分组切换与实时刷新 | `TableRequestClient` 在切换或释放时清理订阅、请求缓冲和待通知数据;同一事件循环只保留最新通知 | 行情请求参数、解析结果与最终展示数据 | 高频推送、连续切换分组、离开行情页、Local Heap 稳态 |
| OOM | WebView 行情总览页退出 | 页面销毁时停止三个行情请求,并断开 request client 与 JS bridge 引用 | 请求参数、回调数据及前后台恢复行为 | 反复进入/退出、真实页面销毁、销毁后回调、堆快照与 OOM 日志 |
## 5. 非功能要求与边界
### 4.2 `harmony_futures_trade_sdk`
- 所有异步任务仅传递基础类型、`Uint8Array` 或其他可序列化数据;单个 Worker 消息受 16 MB 限制,接近上限时需分块设计。
- 不修改网络协议、公开接口、交易下单/撤单规则、行情数据模型或画线样式。
- 不将 SDK 对象迁移至 WorkerNative 锁的根治依赖交易 SDK 缩小锁粒度,应用侧仅减少进入锁域的次数。
- 临时 HAR 路径、压测代码、计数日志和 API SDK 替换不得进入正式提交。
| 类型 | 业务入口 | ArkTS SDK 改动 | 保持不变 | 重点回归 |
| --- | --- | --- | --- | --- |
| Freeze | 成交查询与成交推送 | 按成交标识去重;首次加载完成排序,后续成交使用稳定二分插入 | 成交量、盈亏汇总、账号过滤与既有排序规则 | 重复推送、乱序推送、夜盘边界、账号切换及成交汇总 |
| OOM | 交易市价缓存 | 对相同“合约 + 价格类型”更新既有节点,消费后正确删除 | 报价来源、缓存键与取价结果 | 重复更新、读取最新价格、删除后为空、长时间交易页运行 |
## 6. 验收标准
### 4.3 `hmdrawlinebasicsdk`
1. 在上游项目执行 `devecocli build --modules <module>@default` 或对应 HAP 构建成功,且 `devecocli check lint` 无新增问题。
2. 覆盖登录/断网重登、前后台、账号切换、挂单/委托/成交刷新、行情分组切换、K 线周期切换及 WebView 总览销毁;无 JS Crash、CppCrash、OOM 或 `APPFREEZE`
3. 成交去重、稳定排序、缓存删除和请求解绑须具备单元或白盒压力测试;测试后不存在旧订阅、旧缓冲、待通知数据或缓存节点残留。
4. 新包须在真机或模拟器重新采集冻屏采样。`QueueManagement``isArbitrageEnabled``TradeGuaDanListView.onForeground` 不应继续作为可归因的 TOP 耗时热点;分层采样不得重复相加作为性能收益。
| 类型 | 业务入口 | 画线 SDK 改动 | 保持不变 | 重点回归 |
| --- | --- | --- | --- | --- |
| Freeze | K 线详情与画线 | 画线候选集使用线性去重,避免画线较多时主线程反复遍历 | 画线样式、顺序、命中、编辑、删除及云端合并规则 | 多画线滑动、周期切换、跨周期画线及重复描边 |
## 7. 交付与追溯
每个交付项需提供:所属仓库/分支/commit、HAR 或 HAP 版本与校验值、修改文件清单、构建日志、测试设备与场景、前后指标、未覆盖项及回滚包。详细历史证据见 `harmony-ths-futures-freeze/doc/change-notes/``harmony-ths-futures-apm-oom/doc/change-notes/`
## 7. 附Change-notes 追溯
## 8. Change-notes 追溯
| 需求域 | 改动仓库 | 原始功能改动记录(括号内为改动仓库) |
| ------ | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 通信与解析 | `harmony-ths-futures`<br>`ohos_mobile_lib_communication` | <ul><li>[02-xml-taskpool-refactor.md](harmony-ths-futures-freeze/doc/change-notes/02-xml-taskpool-refactor.md)`harmony-ths-futures`</li><li>[03-communication-taskpool-decompression.md](harmony-ths-futures-freeze/doc/change-notes/03-communication-taskpool-decompression.md)`ohos_mobile_lib_communication``harmony-ths-futures`</li><li>[04-curve-parsing-taskpool.md](harmony-ths-futures-freeze/doc/change-notes/04-curve-parsing-taskpool.md)`ohos_mobile_lib_communication``harmony-ths-futures`</li><li>[14-communication-request-buffer-frame-cleanup.md](harmony-ths-futures-apm-oom/doc/change-notes/14-communication-request-buffer-frame-cleanup.md)`ohos_mobile_lib_communication``harmony-ths-futures`</li></ul> |
| 行情与画线 | `harmony-ths-futures`<br>`hmdrawlinebasicsdk` | <ul><li>[09-drawline-dedup-optimization.md](harmony-ths-futures-freeze/doc/change-notes/09-drawline-dedup-optimization.md)`hmdrawlinebasicsdk``harmony-ths-futures`</li><li>[10-table-request-client-subscription-cleanup.md](harmony-ths-futures-apm-oom/doc/change-notes/10-table-request-client-subscription-cleanup.md)`harmony-ths-futures`</li><li>[11-table-request-client-notification-coalescing.md](harmony-ths-futures-apm-oom/doc/change-notes/11-table-request-client-notification-coalescing.md)`harmony-ths-futures`</li></ul> |
| 交易 | `harmony-ths-futures`<br>`futures_trade_sdk`(原生 `lib-weituosdk`<br>`harmony_futures_trade_sdk` | <ul><li>[05-trade-sdk-native-lock-app-mitigation.md](harmony-ths-futures-freeze/doc/change-notes/05-trade-sdk-native-lock-app-mitigation.md)`harmony-ths-futures``futures_trade_sdk` 的原生 `lib-weituosdk`</li><li>[07-trade-sdk-match-push-optimization.md](harmony-ths-futures-freeze/doc/change-notes/07-trade-sdk-match-push-optimization.md)`harmony-ths-futures``harmony_futures_trade_sdk`</li><li>[08-trade-page-online-status-cache.md](harmony-ths-futures-freeze/doc/change-notes/08-trade-page-online-status-cache.md)`harmony-ths-futures`</li><li>[12-trade-sdk-market-price-cache-cleanup.md](harmony-ths-futures-apm-oom/doc/change-notes/12-trade-sdk-market-price-cache-cleanup.md)`harmony_futures_trade_sdk`</li></ul> |
| 页面生命周期 | `harmony-ths-futures` | <ul><li>[13-webview-overview-request-cleanup.md](harmony-ths-futures-apm-oom/doc/change-notes/13-webview-overview-request-cleanup.md)`harmony-ths-futures`</li></ul> |
| 需求域 | 改动仓库 | 原始功能改动记录(括号内为改动仓库) |
| ------ | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 通信与解析 | `harmony-ths-futures`<br>`ohos_mobile_lib_communication` | <ul><li>[02-xml-taskpool-refactor.md](harmony-ths-futures-freeze/doc/change-notes/02-xml-taskpool-refactor.md)`harmony-ths-futures`</li><li>[03-communication-taskpool-decompression.md](harmony-ths-futures-freeze/doc/change-notes/03-communication-taskpool-decompression.md)`ohos_mobile_lib_communication``harmony-ths-futures`</li><li>[04-curve-parsing-taskpool.md](harmony-ths-futures-freeze/doc/change-notes/04-curve-parsing-taskpool.md)`ohos_mobile_lib_communication``harmony-ths-futures`</li><li>[14-communication-request-buffer-frame-cleanup.md](harmony-ths-futures-apm-oom/doc/change-notes/14-communication-request-buffer-frame-cleanup.md)`ohos_mobile_lib_communication``harmony-ths-futures`</li></ul> |
| 行情与画线 | `harmony-ths-futures`<br>`hmdrawlinebasicsdk` | <ul><li>[09-drawline-dedup-optimization.md](harmony-ths-futures-freeze/doc/change-notes/09-drawline-dedup-optimization.md)`hmdrawlinebasicsdk``harmony-ths-futures`</li><li>[10-table-request-client-subscription-cleanup.md](harmony-ths-futures-apm-oom/doc/change-notes/10-table-request-client-subscription-cleanup.md)`harmony-ths-futures`</li><li>[11-table-request-client-notification-coalescing.md](harmony-ths-futures-apm-oom/doc/change-notes/11-table-request-client-notification-coalescing.md)`harmony-ths-futures`</li></ul> |
| 交易 | `harmony-ths-futures`<br>`futures_trade_sdk`(原生 `lib-weituosdk`<br>`harmony_futures_trade_sdk` | <ul><li>[05-trade-sdk-native-lock-app-mitigation.md](harmony-ths-futures-freeze/doc/change-notes/05-trade-sdk-native-lock-app-mitigation.md)`harmony-ths-futures``futures_trade_sdk` 的原生 `lib-weituosdk`</li><li>[07-trade-sdk-match-push-optimization.md](harmony-ths-futures-freeze/doc/change-notes/07-trade-sdk-match-push-optimization.md)`harmony-ths-futures``harmony_futures_trade_sdk`</li><li>[08-trade-page-online-status-cache.md](harmony-ths-futures-freeze/doc/change-notes/08-trade-page-online-status-cache.md)`harmony-ths-futures`</li><li>[11-top10-followup-fixes.md](harmony-ths-futures-freeze/doc/change-notes/11-top10-followup-fixes.md)`harmony-ths-futures`</li><li>[12-trade-sdk-market-price-cache-cleanup.md](harmony-ths-futures-apm-oom/doc/change-notes/12-trade-sdk-market-price-cache-cleanup.md)`harmony_futures_trade_sdk`</li></ul> |
| 页面生命周期 | `harmony-ths-futures` | <ul><li>[13-webview-overview-request-cleanup.md](harmony-ths-futures-apm-oom/doc/change-notes/13-webview-overview-request-cleanup.md)`harmony-ths-futures`</li></ul> |
1. app_freeze ohos_mobile_lib_communication wuwei 沟通
2. harmony_futures_trade_sdk cpp代码 锁 处理 看下三端是否都存在
3. 改动前后内存的线上真实收益。app_freeze改动前后