From 62e1e02036190e3e2e89b5adc27bd984344ff74e Mon Sep 17 00:00:00 2001 From: root Date: Sun, 13 Sep 2026 22:42:37 +0800 Subject: [PATCH] =?UTF-8?q?docs(ohos):=20README=20=E4=B8=A4=E5=A4=84?= =?UTF-8?q?=E4=BA=8B=E5=AE=9E=E4=BF=AE=E6=AD=A3=EF=BC=88=E4=BA=A7=E7=89=A9?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E5=89=8D=E7=BD=AE=E6=9D=A1=E4=BB=B6=E3=80=81?= =?UTF-8?q?=E2=89=A4400=20=E8=A1=8C=E7=BA=A6=E5=AE=9A=E7=9A=84=E8=BE=B9?= =?UTF-8?q?=E7=95=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. **安装小节的产物路径**:`entry/build/` 是纯构建产物、不入库,干净 clone 或清理过 工作区时该文件不存在。补明"必须先跑完第 2 步",并说明目录名随 `-p product=<名字>` 变化、同目录还有 unsigned 版(`hdc install` 要用 signed)。 本次实际构建校验过路径:`entry/build/default/outputs/default/entry-default-signed.hap`。 2. **≤400 行约定补边界**:不到 400 行的文件不要为了拆分而拆分 —— `@Component` 的 `build()` 只允许一个根节点,多节点 `@Builder` 改组件会多出一层 Column 包裹,布局等价是推理出来的、不是看出来的,每拆一次都要付一次 "未上机验证"的账。并记下 `pages/Index.ets`(396) 属于"不越线就不动"的一类。 无代码改动,纯文档。 --- cmd/ohos/README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cmd/ohos/README.md b/cmd/ohos/README.md index 4d857e8..85ed6dc 100644 --- a/cmd/ohos/README.md +++ b/cmd/ohos/README.md @@ -74,6 +74,14 @@ HomeAgent/ 约定:**单个 `.ets` 不超过 400 行**,页面只做页面壳(导航栈 + 数据编排), 可复用结构进 `components/`,无 UI 的逻辑进 `common/`。 +这条约定有一个边界,别用反了: + +> **不到 400 行的文件不要为了拆分而拆分。** `@Component` 的 `build()` 只允许一个根节点, +> 把原来多节点的 `@Builder` 改成组件时会多出一层 `Column` 包裹 —— 布局等价是**推理**出来的、 +> 不是看出来的,每拆一次都要付一次"未上机验证"的账。所以拆分只用来解决真实的可读性/维护性 +> 问题(超长文件、职责混杂),而不是凑行数。`pages/Index.ets` 目前 396 行就属于"不动"的一类: +> 没越线,余量本身也是有用的缓冲;等它真越线了再拆,并且优先看是不是又长出了大 `@Builder`。 + ## 编译 需要 DevEco Studio 或 [command-line-tools](https://developer.huawei.com/consumer/cn/deveco-studio/)。 @@ -111,12 +119,17 @@ HomeAgent/ 产物在 `entry/build/default/outputs/default/entry-default-signed.hap`。 -3. **安装到设备**: +3. **安装到设备**(`entry/build/` 是纯构建产物、不入库,所以**必须先跑完第 2 步**, + 否则下面这个路径不存在): ```bash hdc install entry/build/default/outputs/default/entry-default-signed.hap ``` + 路径里的目录名随构建模式而变:默认是 `default/`,若用 `-p product=<名字>` 则是该产品名。 + 拿不准就先 `find entry/build -name '*.hap'` 找一下。同目录还有 `entry-default-unsigned.hap`, + `hdc install` 要用带 `-signed` 的那个。 + ## 连接 homed 首次启动在「设置」里填: