@deveco-test/deveco-cli 1.3.0-Test.100-tmp → 1.3.0-Test.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +583 -49
- package/SKILL.md +34 -22
- package/THIRD-PARTY-LICENSES +237 -1020
- package/dist/cli.js +106 -112
- package/dist/internal/doc-init-background.js +1 -65
- package/index.zip +0 -0
- package/package.json +9 -16
- package/scripts/postinstall.mjs +1 -22
- package/scripts/install-better-sqlite3.mjs +0 -51
- package/scripts/install-jieba-wasm.mjs +0 -47
- package/scripts/lib/better-sqlite3-vendor.mjs +0 -129
- package/scripts/lib/cli-data-dir.mjs +0 -44
- package/scripts/lib/doc-init-log-path.mjs +0 -15
- package/scripts/lib/jieba-wasm-vendor.mjs +0 -102
package/README.md
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
<a href="https://www.npmjs.com/package/@deveco/deveco-cli"><img src="https://img.shields.io/npm/v/@deveco/deveco-cli.svg" alt="NPM Version" /></a>
|
|
6
6
|
<a href="https://www.npmjs.com/package/@deveco/deveco-cli"><img src="https://img.shields.io/npm/dm/@deveco/deveco-cli.svg" alt="NPM Downloads" /></a>
|
|
7
7
|
<a href="https://nodejs.org/"><img src="https://img.shields.io/badge/Node.js-%3E%3D18-green.svg" alt="Node.js" /></a>
|
|
8
|
-
<img src="https://img.shields.io/badge/platform-macOS%20%7C%20Windows-blue.svg" alt="Platform" />
|
|
8
|
+
<img src="https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-blue.svg" alt="Platform" />
|
|
9
9
|
<a href="https://developer.huawei.com/consumer/cn/download/"><img src="https://img.shields.io/badge/DevEco%20Studio-%3E%3D6.1.0-orange.svg" alt="DevEco Studio" /></a>
|
|
10
|
+
<img src="https://img.shields.io/badge/Command%20Line%20Tools-%3E%3D26.0.0-orange.svg" alt="Command Line Tools" />
|
|
10
11
|
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License" /></a>
|
|
11
12
|
</p>
|
|
12
13
|
</div>
|
|
@@ -18,9 +19,9 @@
|
|
|
18
19
|
|
|
19
20
|
### 前置要求
|
|
20
21
|
|
|
21
|
-
- 操作系统为 `macOS`
|
|
22
|
+
- 操作系统为 `macOS` 、 `Windows` 或 `Linux`(需配置对应环境变量)
|
|
22
23
|
- Node.js >= 18,推荐使用22及以上版本
|
|
23
|
-
- [DevEco Studio](https://developer.huawei.com/consumer/cn/download/) >= 6.1.0
|
|
24
|
+
- [DevEco Studio](https://developer.huawei.com/consumer/cn/download/) >= 6.1.0 或 [Command Line Tools](https://developer.huawei.com/consumer/cn/download/) >= 26.0.0
|
|
24
25
|
- **macOS**:必须安装在 `~/Applications` 或 `/Applications` 目录下。
|
|
25
26
|
|
|
26
27
|
### 安装
|
|
@@ -53,6 +54,41 @@ devecocli docs read harmonyos-guides/application-models/arkts-page-start-overvie
|
|
|
53
54
|
|
|
54
55
|
更多命令和参数可通过 `devecocli --help` 或各子命令的 `--help` 查看。
|
|
55
56
|
|
|
57
|
+
## 环境变量
|
|
58
|
+
|
|
59
|
+
`devecocli` 当需要使用非默认安装路径、多版本并存时固定选型,Command Line Tools或在Linux下运行时,可通过以下环境变量显式指定工具链根:
|
|
60
|
+
|
|
61
|
+
| 名称 | 说明 |
|
|
62
|
+
| ------------------------ | ------------------------------------------------------ |
|
|
63
|
+
| `DEVECO_CLI_STUDIO_PATH` | 显式指定 DevEco Studio 安装根,优先级最高 |
|
|
64
|
+
| `DEVECO_CLI_CLT_PATH` | 显式指定 Command Line Tools 安装根 |
|
|
65
|
+
|
|
66
|
+
完整优先级链:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
DEVECO_CLI_STUDIO_PATH > DEVECO_CLI_CLT_PATH > Auto_Detect
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 平台与版本约束
|
|
73
|
+
|
|
74
|
+
| 平台 | DevEco Studio Auto_Detect | Command Line Tools | 最低版本 |
|
|
75
|
+
| ------- | --------------------------------------------- | ------------------ | ----------------------------- |
|
|
76
|
+
| Windows | 支持 | 可选 | Studio `6.1.0` / CLT `26.0.0` |
|
|
77
|
+
| macOS | 支持 | 可选 | 同上 |
|
|
78
|
+
| Linux | 不支持 | 必选 | CLT `26.0.0` |
|
|
79
|
+
|
|
80
|
+
### 使用示例
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# 设置 DevEco Studio
|
|
84
|
+
export DEVECO_CLI_STUDIO_PATH="/Applications/DevEco-Studio.app" (可带或不带尾部 Contents)
|
|
85
|
+
devecocli device list
|
|
86
|
+
|
|
87
|
+
# 设置 CLT
|
|
88
|
+
export DEVECO_CLI_CLT_PATH=/opt/command-line-tools
|
|
89
|
+
devecocli device list
|
|
90
|
+
```
|
|
91
|
+
|
|
56
92
|
## AI Agent 集成
|
|
57
93
|
|
|
58
94
|
`DevEco CLI` 支持通过命令行将自身技能添加到 `Agent` 中。下面以 `opencode` 为例展示最短流程:
|
|
@@ -91,11 +127,17 @@ devecocli init --path D:\work\ARKTS\NewData
|
|
|
91
127
|
| `devecocli run` | 安装并运行应用 |
|
|
92
128
|
| `devecocli device list` | 查看当前连接设备 |
|
|
93
129
|
| `devecocli emulator list` | 查看本地模拟器实例 |
|
|
130
|
+
| `devecocli ui layout` | 导出设备屏幕上的 UI 节点树(布局、坐标、节点 ID) |
|
|
131
|
+
| `devecocli ui window list` | 查看设备窗口列表(为 `ui layout` / `ui click` 等提供窗口 ID) |
|
|
94
132
|
| `devecocli ui screenshot` | 对真机或模拟器执行 UI 截图 |
|
|
133
|
+
| `devecocli ui click` | 点击指定坐标或节点 ID |
|
|
134
|
+
| `devecocli ui swipe` | 自定义滑动(指定起点、终点和速度) |
|
|
135
|
+
| `devecocli ui text` | 输入文本到焦点或指定位置 |
|
|
95
136
|
| `devecocli log` | 查看 `hilog` 或崩溃日志 |
|
|
96
137
|
| `devecocli docs search` | 搜索本地 HarmonyOS 文档 |
|
|
97
138
|
| `devecocli init` | 安装内置技能或配置 `MCP` |
|
|
98
139
|
| `devecocli skills` | 管理 HarmonyOS 技能市场中的技能 |
|
|
140
|
+
| `devecocli signature generate` | 自动生成调试签名材料并配置到项目 |
|
|
99
141
|
| `devecocli check compat` | 扫描源代码在两个 `SDK` 版本之间的 `API` 变更 |
|
|
100
142
|
|
|
101
143
|
## 命令集
|
|
@@ -126,6 +168,7 @@ Commands:
|
|
|
126
168
|
update Update deveco-cli to the latest version
|
|
127
169
|
device Manage connected devices
|
|
128
170
|
emulator Manage emulator instances
|
|
171
|
+
auth Authentication commands (login, logout, status, team)
|
|
129
172
|
ui Inspect and interact with UI on a connected device
|
|
130
173
|
skills Manage HarmonyOS skills
|
|
131
174
|
log [options] Obtain device application logs
|
|
@@ -134,6 +177,7 @@ Commands:
|
|
|
134
177
|
serve Host bundled auxiliary protocol servers
|
|
135
178
|
docs [options] Search and read HarmonyOS documentation from local docs directory
|
|
136
179
|
check Run DevEco project checks
|
|
180
|
+
signature Generate application signature
|
|
137
181
|
help [command] display help for command
|
|
138
182
|
```
|
|
139
183
|
|
|
@@ -272,6 +316,56 @@ devecocli create --project-path ./MyApp --app-name MyApp --bundle-name com.acme.
|
|
|
272
316
|
devecocli create --app-name MyApp
|
|
273
317
|
```
|
|
274
318
|
|
|
319
|
+
### `auth login`
|
|
320
|
+
|
|
321
|
+
登录华为开发者账号,打开浏览器完成授权。
|
|
322
|
+
|
|
323
|
+
**命令格式:**
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
devecocli auth login
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**说明:**
|
|
330
|
+
|
|
331
|
+
- 海外账户暂不支持
|
|
332
|
+
|
|
333
|
+
### `auth logout`
|
|
334
|
+
|
|
335
|
+
登出并清除本地存储的凭据
|
|
336
|
+
|
|
337
|
+
**命令格式:**
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
devecocli auth logout
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### `auth status`
|
|
344
|
+
|
|
345
|
+
显示当前登录的用户
|
|
346
|
+
|
|
347
|
+
**命令格式:**
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
devecocli auth status
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### `auth team list`
|
|
354
|
+
|
|
355
|
+
列出当前用户已加入的团队
|
|
356
|
+
|
|
357
|
+
**命令格式:**
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
devecocli auth team list
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
**示例:**
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
devecocli auth team list
|
|
367
|
+
```
|
|
368
|
+
|
|
275
369
|
### `build`
|
|
276
370
|
|
|
277
371
|
编译并打包 HarmonyOS 工程或工程中的模块
|
|
@@ -344,8 +438,21 @@ devecocli check lint [path]
|
|
|
344
438
|
|
|
345
439
|
**命令格式:**
|
|
346
440
|
|
|
441
|
+
```bash
|
|
442
|
+
devecocli emulator list [--format <table|json>]
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
**参数:**
|
|
446
|
+
|
|
447
|
+
| 参数名 | 说明 |
|
|
448
|
+
| --- | --- |
|
|
449
|
+
| `--format` | 可选,控制终端输出格式,取值为 `table` 或 `json`,默认为 `table` |
|
|
450
|
+
|
|
451
|
+
**示例:**
|
|
452
|
+
|
|
347
453
|
```bash
|
|
348
454
|
devecocli emulator list
|
|
455
|
+
devecocli emulator list --format json
|
|
349
456
|
```
|
|
350
457
|
|
|
351
458
|
### `emulator start`
|
|
@@ -420,7 +527,7 @@ devecocli emulator sensor --target Phone --heartrate 80
|
|
|
420
527
|
**说明:**
|
|
421
528
|
|
|
422
529
|
- `--target` 支持模拟器名称或 `127.0.0.1:<port>` 序列号。
|
|
423
|
-
- `battery --level`
|
|
530
|
+
- `battery --level` 会自动查询模拟器当前充电状态:充电时取值范围为整数 `[0, 100]`,未充电时为 `[1, 100]`。
|
|
424
531
|
- `battery --status` 取值为 `charging` 或 `discharging`。
|
|
425
532
|
- `geolocation` 支持 `--longitude`、`--latitude`、`--altitude`、`--direction`。
|
|
426
533
|
- `scene` 取值为 `outdoorRunning`、`outdoorCycling`、`drivingNavigation`。
|
|
@@ -436,40 +543,6 @@ devecocli emulator sensor --target Phone --heartrate 80
|
|
|
436
543
|
校验以目标模拟器实际返回的 `deviceType` 为准。非上述三种设备类型以及不属于目标设备类型的状态会在命令下发前被拒绝。校验通过后,底层映射为 `Emulator -instance <name> -foldedState <state>`。
|
|
437
544
|
- 设置 `DEVECO_CLI_DEBUG=1` 可查看底层命令映射,例如 `Emulator -instance <name> -shake`。
|
|
438
545
|
|
|
439
|
-
### `ui screenshot`
|
|
440
|
-
|
|
441
|
-
对真机或模拟器执行 UI 截图。`devecocli ui` 当前只交付截图能力。
|
|
442
|
-
|
|
443
|
-
**命令格式:**
|
|
444
|
-
|
|
445
|
-
```bash
|
|
446
|
-
devecocli ui screenshot [--device <name|serial>] [--path <path>]
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
**参数:**
|
|
450
|
-
|
|
451
|
-
| 参数 | 说明 | 默认值 |
|
|
452
|
-
| ------------------------ | ------------------------ | ---------- |
|
|
453
|
-
| --device \<name\|serial> | 真机或模拟器名称/序列号;多设备时必填 | 单设备自动选择 |
|
|
454
|
-
| --display \<displayId> | 目标屏幕 ID,可选 | 默认屏幕 |
|
|
455
|
-
| --path \<path> | 截图输出路径,可选;目录或父目录必须已存在 | `./screenshot-<timestamp>.png` |
|
|
456
|
-
|
|
457
|
-
**示例:**
|
|
458
|
-
|
|
459
|
-
```bash
|
|
460
|
-
devecocli ui screenshot --device Phone
|
|
461
|
-
mkdir -p screenshots
|
|
462
|
-
devecocli ui screenshot --device Phone --path ./screenshots/phone.png
|
|
463
|
-
devecocli ui screenshot --device Phone --display 0 --path ./screenshots/phone.png
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
**说明:**
|
|
467
|
-
|
|
468
|
-
- `ui screenshot` 支持真机和模拟器。
|
|
469
|
-
- 仅有一个可用设备时可省略 `--device`,多个设备同时连接时必须指定。
|
|
470
|
-
- 截图能力统一通过 `ui screenshot` 提供,不放在模拟器场景操作命令中。
|
|
471
|
-
- 截图统一使用 `hdc shell snapshot_display` 和 `hdc file recv` 实现;设置 `DEVECO_CLI_DEBUG=1` 可查看实际执行命令。
|
|
472
|
-
|
|
473
546
|
### `emulator create`
|
|
474
547
|
|
|
475
548
|
创建模拟器
|
|
@@ -659,6 +732,336 @@ devecocli device view --target 127.0.0.1:5555
|
|
|
659
732
|
devecocli device view -t "My Device Name"
|
|
660
733
|
```
|
|
661
734
|
|
|
735
|
+
### `ui screenshot`
|
|
736
|
+
|
|
737
|
+
对真机或模拟器执行 UI 截图。
|
|
738
|
+
|
|
739
|
+
**命令格式:**
|
|
740
|
+
|
|
741
|
+
```bash
|
|
742
|
+
devecocli ui screenshot --device <name|serial> --display <displayId> --path <path>
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
**参数:**
|
|
746
|
+
|
|
747
|
+
| 参数 | 说明 | 默认值 |
|
|
748
|
+
| ------------------------ | ------------------------ | ---------- |
|
|
749
|
+
| --device \<name\|serial> | 真机或模拟器名称/序列号;多设备时必填 | 单设备自动选择 |
|
|
750
|
+
| --display \<displayId> | 目标屏幕 ID,可选 | 默认屏幕 |
|
|
751
|
+
| --path \<path> | 必填,文件夹路径或 PNG 文件路径;支持相对于当前目录的路径,目录必须存在且可写,目标文件不能已存在 | 无 |
|
|
752
|
+
|
|
753
|
+
**示例:**
|
|
754
|
+
|
|
755
|
+
```bash
|
|
756
|
+
mkdir -p screenshots
|
|
757
|
+
devecocli ui screenshot --device Phone --path ./screenshots
|
|
758
|
+
devecocli ui screenshot --device Phone --display 0 --path ./screenshots/phone.png
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
**说明:**
|
|
762
|
+
|
|
763
|
+
- `ui screenshot` 支持真机和模拟器。
|
|
764
|
+
- 仅有一个可用设备时可省略 `--device`,多个设备同时连接时必须指定。
|
|
765
|
+
- `--path` 可以使用相对于当前目录的路径。可以指定已存在的文件夹并自动生成 PNG 文件名,也可以指定完整的 PNG 文件路径;不会自动创建目录或覆盖已有文件。
|
|
766
|
+
- 截图能力统一通过 `ui screenshot` 提供,不放在模拟器场景操作命令中。
|
|
767
|
+
- 截图统一使用 `hdc shell snapshot_display` 和 `hdc file recv` 实现;设置 `DEVECO_CLI_DEBUG=1` 可查看实际执行命令。
|
|
768
|
+
|
|
769
|
+
### `ui click`
|
|
770
|
+
|
|
771
|
+
点击指定坐标或节点 ID 的中心位置。
|
|
772
|
+
|
|
773
|
+
**命令格式:**
|
|
774
|
+
|
|
775
|
+
```bash
|
|
776
|
+
devecocli ui click [x] [y] --device <name|serial> --id <id> --window <windowId>
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
**参数:**
|
|
780
|
+
|
|
781
|
+
| 参数 | 说明 |
|
|
782
|
+
| --- | --- |
|
|
783
|
+
| `[x] [y]` | 可选,目标坐标。缺省时需配合 `--id` 使用 |
|
|
784
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
785
|
+
| --id \<id> | 节点 ID,自动解析为中心坐标。不可与 `[x] [y]` 同时使用 |
|
|
786
|
+
| --window \<windowId> | 目标窗口 ID,需与 `--id` 配合使用 |
|
|
787
|
+
|
|
788
|
+
**示例:**
|
|
789
|
+
|
|
790
|
+
```bash
|
|
791
|
+
devecocli ui click 100 200
|
|
792
|
+
devecocli ui click 100 200 --device Phone
|
|
793
|
+
devecocli ui click --id submit_button
|
|
794
|
+
devecocli ui click --id submit_button --window main_window
|
|
795
|
+
```
|
|
796
|
+
|
|
797
|
+
### `ui doubleclick`
|
|
798
|
+
|
|
799
|
+
双击指定坐标或节点 ID 的中心位置。
|
|
800
|
+
|
|
801
|
+
**命令格式:**
|
|
802
|
+
|
|
803
|
+
```bash
|
|
804
|
+
devecocli ui doubleclick [x] [y] --device <name|serial> --id <id> --window <windowId>
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
**参数:**
|
|
808
|
+
|
|
809
|
+
| 参数 | 说明 |
|
|
810
|
+
| --- | --- |
|
|
811
|
+
| `[x] [y]` | 可选,目标坐标。缺省时需配合 `--id` 使用 |
|
|
812
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
813
|
+
| --id \<id> | 节点 ID,自动解析为中心坐标。不可与 `[x] [y]` 同时使用 |
|
|
814
|
+
| --window \<windowId> | 目标窗口 ID,需与 `--id` 配合使用 |
|
|
815
|
+
|
|
816
|
+
**示例:**
|
|
817
|
+
|
|
818
|
+
```bash
|
|
819
|
+
devecocli ui doubleclick 100 200
|
|
820
|
+
devecocli ui doubleclick 100 200 --device Phone
|
|
821
|
+
devecocli ui doubleclick --id photo_thumb
|
|
822
|
+
devecocli ui doubleclick --id photo_thumb --window main_window
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
### `ui longclick`
|
|
826
|
+
|
|
827
|
+
长按指定坐标或节点 ID 的中心位置。
|
|
828
|
+
|
|
829
|
+
**命令格式:**
|
|
830
|
+
|
|
831
|
+
```bash
|
|
832
|
+
devecocli ui longclick [x] [y] --device <name|serial> --id <id> --window <windowId>
|
|
833
|
+
```
|
|
834
|
+
|
|
835
|
+
**参数:**
|
|
836
|
+
|
|
837
|
+
| 参数 | 说明 |
|
|
838
|
+
| --- | --- |
|
|
839
|
+
| `[x] [y]` | 可选,目标坐标。缺省时需配合 `--id` 使用 |
|
|
840
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
841
|
+
| --id \<id> | 节点 ID,自动解析为中心坐标。不可与 `[x] [y]` 同时使用 |
|
|
842
|
+
| --window \<windowId> | 目标窗口 ID,需与 `--id` 配合使用 |
|
|
843
|
+
|
|
844
|
+
**示例:**
|
|
845
|
+
|
|
846
|
+
```bash
|
|
847
|
+
devecocli ui longclick 100 200
|
|
848
|
+
devecocli ui longclick 100 200 --device Phone
|
|
849
|
+
devecocli ui longclick --id menu_item
|
|
850
|
+
devecocli ui longclick --id menu_item --window main_window
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
### `ui swipe`
|
|
854
|
+
|
|
855
|
+
自定义滑动(指定起点、终点和速度)。
|
|
856
|
+
|
|
857
|
+
**命令格式:**
|
|
858
|
+
|
|
859
|
+
```bash
|
|
860
|
+
devecocli ui swipe <x1> <y1> <x2> <y2> --device <name|serial> --speed <n>
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
**参数:**
|
|
864
|
+
|
|
865
|
+
| 参数 | 说明 |
|
|
866
|
+
| --- | --- |
|
|
867
|
+
| `<x1> <y1> <x2> <y2>` | 必选,起点和终点坐标 |
|
|
868
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
869
|
+
| --speed \<n> | 可选,滑动速度(像素/秒),范围 `200` ~ `40000` |
|
|
870
|
+
|
|
871
|
+
**示例:**
|
|
872
|
+
|
|
873
|
+
```bash
|
|
874
|
+
devecocli ui swipe 100 500 100 200
|
|
875
|
+
devecocli ui swipe 100 500 100 200 --device Phone
|
|
876
|
+
devecocli ui swipe 100 500 100 200 --speed 1000
|
|
877
|
+
```
|
|
878
|
+
|
|
879
|
+
### `ui fling`
|
|
880
|
+
|
|
881
|
+
快速滑动(Fling)。
|
|
882
|
+
|
|
883
|
+
**命令格式:**
|
|
884
|
+
|
|
885
|
+
```bash
|
|
886
|
+
devecocli ui fling <x1> <y1> <x2> <y2> --device <name|serial> --speed <n>
|
|
887
|
+
```
|
|
888
|
+
|
|
889
|
+
**参数:**
|
|
890
|
+
|
|
891
|
+
| 参数 | 说明 |
|
|
892
|
+
| --- | --- |
|
|
893
|
+
| `<x1> <y1> <x2> <y2>` | 必选,起点和终点坐标 |
|
|
894
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
895
|
+
| --speed \<n> | 可选,滑动速度(像素/秒),范围 `200` ~ `40000` |
|
|
896
|
+
|
|
897
|
+
**示例:**
|
|
898
|
+
|
|
899
|
+
```bash
|
|
900
|
+
devecocli ui fling 100 800 100 200
|
|
901
|
+
devecocli ui fling 100 800 100 200 --device Phone
|
|
902
|
+
devecocli ui fling 100 800 100 200 --speed 3000
|
|
903
|
+
```
|
|
904
|
+
|
|
905
|
+
### `ui drag`
|
|
906
|
+
|
|
907
|
+
拖拽操作。
|
|
908
|
+
|
|
909
|
+
**命令格式:**
|
|
910
|
+
|
|
911
|
+
```bash
|
|
912
|
+
devecocli ui drag <x1> <y1> <x2> <y2> --device <name|serial> --speed <n>
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
**参数:**
|
|
916
|
+
|
|
917
|
+
| 参数 | 说明 |
|
|
918
|
+
| --- | --- |
|
|
919
|
+
| `<x1> <y1> <x2> <y2>` | 必选,起点和终点坐标 |
|
|
920
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
921
|
+
| --speed \<n> | 可选,滑动速度(像素/秒),范围 `200` ~ `40000` |
|
|
922
|
+
|
|
923
|
+
**示例:**
|
|
924
|
+
|
|
925
|
+
```bash
|
|
926
|
+
# 拖拽操作
|
|
927
|
+
devecocli ui drag 100 500 100 200
|
|
928
|
+
devecocli ui drag 100 500 100 200 --device Phone
|
|
929
|
+
devecocli ui drag 100 500 100 200 --speed 1500
|
|
930
|
+
```
|
|
931
|
+
|
|
932
|
+
### `ui dircfling`
|
|
933
|
+
|
|
934
|
+
向指定方向快速滑动。
|
|
935
|
+
|
|
936
|
+
**命令格式:**
|
|
937
|
+
|
|
938
|
+
```bash
|
|
939
|
+
devecocli ui dircfling <direction> --device <name|serial>
|
|
940
|
+
```
|
|
941
|
+
|
|
942
|
+
**参数:**
|
|
943
|
+
|
|
944
|
+
| 参数 | 说明 |
|
|
945
|
+
| --- | --- |
|
|
946
|
+
| `<direction>` | 必选,方向,取值为 `up`, `down`, `left`, `right` |
|
|
947
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
948
|
+
|
|
949
|
+
**示例:**
|
|
950
|
+
|
|
951
|
+
```bash
|
|
952
|
+
devecocli ui dircfling up
|
|
953
|
+
devecocli ui dircfling down --device Phone
|
|
954
|
+
devecocli ui dircfling left
|
|
955
|
+
devecocli ui dircfling right
|
|
956
|
+
```
|
|
957
|
+
|
|
958
|
+
**与 `ui swipe` 的区别:**
|
|
959
|
+
|
|
960
|
+
- `ui swipe` 需要指定精确的起点和终点坐标,支持自定义速度,适用于特定区域滑动。
|
|
961
|
+
- `ui dircfling` 仅需指定方向,使用系统默认速度,适用于页面滚动或列表快速滑动。
|
|
962
|
+
|
|
963
|
+
### `ui text`
|
|
964
|
+
|
|
965
|
+
输入文本到当前焦点、指定坐标或指定节点位置。
|
|
966
|
+
|
|
967
|
+
**命令格式:**
|
|
968
|
+
|
|
969
|
+
```bash
|
|
970
|
+
devecocli ui text <text> [x] [y] --device <name|serial> --id <id> --window <windowId>
|
|
971
|
+
```
|
|
972
|
+
|
|
973
|
+
**参数:**
|
|
974
|
+
|
|
975
|
+
| 参数 | 说明 |
|
|
976
|
+
| --- | --- |
|
|
977
|
+
| `<text>` | 必选,待输入的文本 |
|
|
978
|
+
| `[x] [y]` | 可选,目标坐标 |
|
|
979
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
980
|
+
| --id \<id> | 节点 ID,自动解析为中心坐标。不可与 `[x] [y]`同时使用 |
|
|
981
|
+
| --window \<windowId> | 目标窗口 ID,需与 `--id` 配合使用 |
|
|
982
|
+
|
|
983
|
+
**示例:**
|
|
984
|
+
|
|
985
|
+
```bash
|
|
986
|
+
devecocli ui text "Hello World"
|
|
987
|
+
devecocli ui text "Hello World" --device Phone
|
|
988
|
+
devecocli ui text "Hello World" 100 200
|
|
989
|
+
devecocli ui text "Hello World" --id search_box
|
|
990
|
+
devecocli ui text "Hello World" --id search_box --window main_window
|
|
991
|
+
```
|
|
992
|
+
|
|
993
|
+
### `ui layout`
|
|
994
|
+
|
|
995
|
+
导出设备屏幕上的 UI 节点树,输出每个节点的类型、节点 ID、坐标边界 `[left,top,right,bottom]`、文本及可交互标志(`clickable` / `longClickable` / `scrollable` / `checkable`)。
|
|
996
|
+
|
|
997
|
+
**命令格式:**
|
|
998
|
+
|
|
999
|
+
```bash
|
|
1000
|
+
devecocli ui layout --device <name|serial> --id <id> --window <windowId> --all-windows --depth <n> --format <fmt> --mode <full|simplified>
|
|
1001
|
+
```
|
|
1002
|
+
|
|
1003
|
+
**参数:**
|
|
1004
|
+
|
|
1005
|
+
| 参数名 | 说明 |
|
|
1006
|
+
| --- | --- |
|
|
1007
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
1008
|
+
| --id \<id> | 节点 ID,筛选树中匹配节点(仅输出匹配节点,不带子节点,强制 JSON)。不可与未筛选的全树输出同时视为列表查询 |
|
|
1009
|
+
| --window \<windowId> | 目标窗口 ID,与 `--all-windows` 互斥 |
|
|
1010
|
+
| --all-windows | 包含所有窗口,与 `--window` 互斥 |
|
|
1011
|
+
| --depth \<n> | 树深度限制,`0`=不限制(默认),`1`=仅根,`2`=根+子节点 |
|
|
1012
|
+
| --format | 输出格式,`default` 或 `json`,默认 `default` |
|
|
1013
|
+
| --mode | 输出模式:`full`=完整原始树;`simplified`(默认)=折叠无 ID、无文本、无可交互标志的包装节点 |
|
|
1014
|
+
|
|
1015
|
+
**示例:**
|
|
1016
|
+
|
|
1017
|
+
```bash
|
|
1018
|
+
devecocli ui layout
|
|
1019
|
+
devecocli ui layout --device Phone
|
|
1020
|
+
devecocli ui layout --device Phone --format json
|
|
1021
|
+
devecocli ui layout --mode full --depth 2
|
|
1022
|
+
devecocli ui layout --id submit_button
|
|
1023
|
+
devecocli ui layout --window 15 --format json
|
|
1024
|
+
```
|
|
1025
|
+
|
|
1026
|
+
**说明:**
|
|
1027
|
+
|
|
1028
|
+
- `--mode simplified`(默认)会折叠无 `id`、无 `text`、无任何可交互标志的包装节点,使输出聚焦于有意义的可操作节点;根节点始终保留。`--depth` 在折叠后截断。
|
|
1029
|
+
- `--id` 用于按节点 ID 查询,返回所有匹配节点(`children` 置空),常配合 `ui click --id` / `ui text --id` 定位坐标。
|
|
1030
|
+
- 节点 `bounds` 为 `[left, top, right, bottom]`,`ui click --id` 等交互命令据此取中心坐标点击。
|
|
1031
|
+
- `--window` 的窗口 ID 可通过 `devecocli ui window list` 获取。
|
|
1032
|
+
|
|
1033
|
+
### `ui window list`
|
|
1034
|
+
|
|
1035
|
+
查看设备上的窗口列表,输出窗口 ID、名称、PID、所属屏幕 ID 及是否聚焦。为 `ui layout --window`、`ui click --window` 等命令提供窗口 ID。
|
|
1036
|
+
|
|
1037
|
+
**命令格式:**
|
|
1038
|
+
|
|
1039
|
+
```bash
|
|
1040
|
+
devecocli ui window list --device <name|serial> --format <fmt> --all
|
|
1041
|
+
```
|
|
1042
|
+
|
|
1043
|
+
**参数:**
|
|
1044
|
+
|
|
1045
|
+
| 参数名 | 说明 |
|
|
1046
|
+
| --- | --- |
|
|
1047
|
+
| --device \<name\|serial> | 目标设备,多设备时必填 |
|
|
1048
|
+
| --format | 输出格式,`default` 或 `json`,默认 `default` |
|
|
1049
|
+
| --all | 显示包含系统窗口在内的所有窗口;缺省时仅显示应用窗口(`type === 1`) |
|
|
1050
|
+
|
|
1051
|
+
**示例:**
|
|
1052
|
+
|
|
1053
|
+
```bash
|
|
1054
|
+
devecocli ui window list
|
|
1055
|
+
devecocli ui window list --device Phone
|
|
1056
|
+
devecocli ui window list --format json
|
|
1057
|
+
devecocli ui window list --all
|
|
1058
|
+
```
|
|
1059
|
+
|
|
1060
|
+
**说明:**
|
|
1061
|
+
|
|
1062
|
+
- 聚焦窗口在 `default` 格式下高亮显示。
|
|
1063
|
+
- 缺省时仅列出应用窗口;加 `--all` 可查看系统窗口,用于排查多窗口场景。
|
|
1064
|
+
|
|
662
1065
|
### `run`
|
|
663
1066
|
|
|
664
1067
|
构建应用后,将应用安装到真机设备或模拟器上,并启动执行
|
|
@@ -671,16 +1074,18 @@ devecocli run --module <module> --device <device> --product <product> --build-mo
|
|
|
671
1074
|
|
|
672
1075
|
**参数:**
|
|
673
1076
|
|
|
674
|
-
| 参数名 | 说明
|
|
675
|
-
| ------------
|
|
676
|
-
| --module | 可选,模块名称。如需指定模块的 `target` 信息,使用 `module@target` 形式。当工程中只有一个可运行模块( `entry` / `feature` / `shared` )时,可缺省
|
|
677
|
-
| --device | 设备名称或设备序列号,单设备时可选,多设备时必选
|
|
678
|
-
| --product | 可选,产品的名称,默认为 `default`
|
|
679
|
-
| --build-mode | 可选,构建模式名称,默认为 `debug`
|
|
680
|
-
| --ability | 可选,待启动的 `Ability` ,默认:模块 `module.json5` 中的`mainElement`
|
|
681
|
-
| --uninstall | 可选,安装前先卸载已有应用
|
|
682
|
-
| --skip-build | 可选,跳过构建操作,直接安装应用 。\*\*说明:\*\*使用该参数时,需确保对应模块已有构建产物
|
|
683
|
-
| --apply \<fileName\> | 可选,**快速增量部署**:仅重编改动文件 → signed hqf → `bm quickfix -a -f -o` 安装 → 重启,比全量 `run` 快。`<fileName>` 是工程 `.hvigor/` 目录下的**纯文件名**(调用方把清单写到此目录,文件名做安全校验防穿越);内容为本轮改动的源文件路径清单(每行一个相对工程根路径;`#`/空行忽略;`.ets`/`.ts`/`.cpp`/资源文件;changeFileList 增量累积,只需列本轮改的,历史文件自动保留)。模块从清单路径自动识别(无需 `--module`)。**前提**:DevEco Studio ≥6.1.1(hvigor `assembleDevHqf` 支持,低于拒绝并提示升级);先 `devecocli run` 全量构建部署一次(生成 buildConfig.json 缓存);**没生效排查**:检查 `<module>/build/config/buildConfig.json` 有无内容(空/无 = 没跑过 `devecocli run`);**失败兜底**:直接 `devecocli run`
|
|
1077
|
+
| 参数名 | 说明 |
|
|
1078
|
+
| ------------ |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
1079
|
+
| --module | 可选,模块名称。如需指定模块的 `target` 信息,使用 `module@target` 形式。当工程中只有一个可运行模块( `entry` / `feature` / `shared` )时,可缺省 |
|
|
1080
|
+
| --device | 设备名称或设备序列号,单设备时可选,多设备时必选 |
|
|
1081
|
+
| --product | 可选,产品的名称,默认为 `default` |
|
|
1082
|
+
| --build-mode | 可选,构建模式名称,默认为 `debug` |
|
|
1083
|
+
| --ability | 可选,待启动的 `Ability` ,默认:模块 `module.json5` 中的`mainElement` |
|
|
1084
|
+
| --uninstall | 可选,安装前先卸载已有应用 |
|
|
1085
|
+
| --skip-build | 可选,跳过构建操作,直接安装应用 。\*\*说明:\*\*使用该参数时,需确保对应模块已有构建产物 |
|
|
1086
|
+
| --apply \<fileName\> | 可选,**快速增量部署**:仅重编改动文件 → signed hqf → `bm quickfix -a -f -o` 安装 → 重启,比全量 `run` 快。`<fileName>` 是工程 `.hvigor/` 目录下的**纯文件名**(调用方把清单写到此目录,文件名做安全校验防穿越);内容为本轮改动的源文件路径清单(每行一个相对工程根路径;`#`/空行忽略;`.ets`/`.ts`/`.cpp`/资源文件;changeFileList 增量累积,只需列本轮改的,历史文件自动保留)。模块从清单路径自动识别(无需 `--module`)。**前提**:DevEco Studio ≥6.1.1(hvigor `assembleDevHqf` 支持,低于拒绝并提示升级);先 `devecocli run` 全量构建部署一次(生成 buildConfig.json 缓存);**没生效排查**:检查 `<module>/build/config/buildConfig.json` 有无内容(空/无 = 没跑过 `devecocli run`);**失败兜底**:直接 `devecocli run` |
|
|
1087
|
+
| --hotreload [action] | 可选,**热重载 watch 会话**(须作为**后台进程**启动,该进程持久持有到 hvigor daemon 的 socket):以热重载模式构建 hap(`hotReload=true debuggable=true`)、部署+拉起应用,然后进程自身连 socket 到 daemon 发 `CommonBuild assembleHap --hot-reload-build --watch` 并**保持连接**,保活 daemon 的 watch worker(rollup watch)供 `--hotreload-apply` 复用。进程常驻(onBuildOutput 流式到其 stdout)。**热重载调试结束必须 kill 此后台进程**(否则 watch worker/daemon 泄漏);`stop` 同时关闭 hvigor daemon。用法:后台起 `devecocli run --module <m> --hotreload`,等 `.hotreload-mode` marker(或 stdout 出现 "watch session active")即就绪,再跑 `--hotreload-apply`;结束 kill 后台进程 + `--hotreload stop` |
|
|
1088
|
+
| --hotreload-apply \<fileName\> | 可选,**热重载(不重启应用)**:读取 `.hvigor/<fileName>` 改动清单(格式与 `--apply` 相同),开**短连接** socket 到 daemon(由后台 `--hotreload` 进程保活),发 `CommonBuild assembleDevHqf --hot-compile` → watch worker 增量 hot 编译改动 `.ets`/`.ts` 为 abc(HotReloadArkTS;输出/报错经 WatchLog 实时流式),再**手搓** pack+sign:`app_packing_tool.jar` 打包 + `hap-sign-tool.jar` 签名(DevEco material 密码经 `DecipherUtil` 解密),最后 `bm quickfix -a -f -o` 安装,**应用不重启即生效**。**前提**:后台 `--hotreload` 进程在跑(持有 watch 会话);超时即 watch 会话没活,重启后台 `--hotreload`。**范围(重要)**:热重载目标是**单个模块**(`--module` 必填,目标可为 entry/hsp/feature;`har` 依赖并入、OK);**`feature`/`hsp` 依赖模块**(非目标)的改动不支持热重载(检测并 warn,需全量 `devecocli run` 重部署);资源/native 改动需全量 run。编译报错经 WatchLog 路由到后台 `--hotreload` 进程、落盘 **`.hvigor/hotreload-watch.log`**(+其 stdout),apply 失败时读该文件把报错打出来(~15s 超时快速失败)。**`.hvigor/` 产物**:`.hvigor/<fileName>`=改动清单(入参)、`.hvigor/hotreload-watch.log`=watch 会话的 onBuildOutput/编译报错(后台进程写,可读/可删)。 |
|
|
684
1089
|
|
|
685
1090
|
**示例:**
|
|
686
1091
|
|
|
@@ -692,6 +1097,9 @@ devecocli run --product oversea --module entry --ability EntryAbility
|
|
|
692
1097
|
devecocli run --build-mode release
|
|
693
1098
|
devecocli run --uninstall
|
|
694
1099
|
devecocli run --apply changes.txt
|
|
1100
|
+
devecocli run --hotreload
|
|
1101
|
+
devecocli run --hotreload stop
|
|
1102
|
+
devecocli run --hotreload-apply changes.txt
|
|
695
1103
|
```
|
|
696
1104
|
|
|
697
1105
|
### `log`
|
|
@@ -831,7 +1239,7 @@ devecocli skills remove --skill skillname --agent agentname # skillname需替
|
|
|
831
1239
|
|
|
832
1240
|
### `serve mcp`
|
|
833
1241
|
|
|
834
|
-
启动本地 `MCP` 服务。智能体配置 `MCP` 服务后,可通过 `MCP`
|
|
1242
|
+
启动本地 `MCP` 服务。智能体配置 `MCP` 服务后,可通过 `MCP` 协议调用下方列出的代码分析与语言特性工具。不同智能体平台配置 `MCP` 服务的界面不一样,一个智能体平台的配置示例如下。
|
|
835
1243
|
推荐通过 `devecocli init --mcp` 自动配置
|
|
836
1244
|
|
|
837
1245
|
```bash
|
|
@@ -855,6 +1263,88 @@ devecocli skills remove --skill skillname --agent agentname # skillname需替
|
|
|
855
1263
|
}
|
|
856
1264
|
```
|
|
857
1265
|
|
|
1266
|
+
#### MCP 工具
|
|
1267
|
+
|
|
1268
|
+
`deveco-mcp` 服务遵循 [MCP](https://modelcontextprotocol.io) 规范,通过 `tools/list` 暴露工具、由模型经 `tools/call` 调用。每个工具由**名称**、**描述**和 **JSON Schema 入参**定义;返回值为 `content` 文本数组,`isError: true` 表示执行错误。
|
|
1269
|
+
|
|
1270
|
+
**工具总览:**
|
|
1271
|
+
|
|
1272
|
+
| 工具名 | 用途 | 支持语言 |
|
|
1273
|
+
| --- | --- | --- |
|
|
1274
|
+
| `check` | 静态语法分析,返回结构化诊断信息 | ArkTS、C/C++ |
|
|
1275
|
+
| `hover` | 获取指定位置的悬浮信息(类型、文档) | ArkTS、C/C++ |
|
|
1276
|
+
| `definition` | 查找符号定义位置 | ArkTS、C/C++ |
|
|
1277
|
+
| `declaration` | 查找符号声明位置(ArkTS 中可能与定义不同) | ArkTS、C/C++ |
|
|
1278
|
+
| `references` | 查找符号在全工程中的所有引用 | ArkTS、C/C++ |
|
|
1279
|
+
| `implementation` | 查找符号的实现(如接口实现) | ArkTS、C/C++ |
|
|
1280
|
+
| `workspaceSymbol` | 按名称在全工程搜索符号 | ArkTS、C/C++ |
|
|
1281
|
+
| `documentSymbol` | 获取单文件的符号树(函数、类、变量及范围) | ArkTS、C/C++ |
|
|
1282
|
+
| `callHierarchy` | 查询函数调用关系(incoming=调用方,outgoing=被调用方) | ArkTS 双向、C/C++ 仅 incoming |
|
|
1283
|
+
| `restart` | 原地重启(重置状态 + 重新 sync/init),不杀进程、客户端不断开;ERROR 态可用 | ArkTS、C/C++(可按 target 单选) |
|
|
1284
|
+
|
|
1285
|
+
**可用性说明:**
|
|
1286
|
+
|
|
1287
|
+
- `check` 与 `restart` 始终注册;其余 7 个语言特性工具仅在 DevEco Studio 附带标准 LSP 服务入口(`standardIndex/index.js`)时注册,老版本将不暴露这些工具。
|
|
1288
|
+
- 所有语言特性工具需项目进入 `READY` 状态(`ohpm install` + `hvigor sync` + LSP 初始化完成)后才可用;未就绪时返回 `please retry in N seconds`,模型可稍后重试。`restart` 例外:它正是用于把 server 从 `ERROR` 态拉回,调用后返回"约 10 秒后重试",后台异步重置并重新 sync/init。
|
|
1289
|
+
- C/C++ 工具需要工程包含 C++ 模块;无 C++ 代码时返回 `No C++ code`。
|
|
1290
|
+
- 支持的文件扩展名:ArkTS 为 `.ets`;C/C++ 为 `.c` `.cc` `.cpp` `.cxx` `.c++` `.h` `.hh` `.hpp` `.hxx` `.h++` `.ipp` `.ixx` `.inl` `.inc` `.tpp`。
|
|
1291
|
+
- 不属于当前工程的路径会被拒绝。
|
|
1292
|
+
|
|
1293
|
+
**入参定义:**
|
|
1294
|
+
|
|
1295
|
+
##### `check`
|
|
1296
|
+
|
|
1297
|
+
对传入的源文件进行静态语法分析并返回诊断信息,支持 ArkTS 与 C/C++ 在同一次调用中混合传入。
|
|
1298
|
+
|
|
1299
|
+
| 参数 | 类型 | 必选 | 说明 |
|
|
1300
|
+
| --- | --- | --- | --- |
|
|
1301
|
+
| `files` | string[] | 是 | 待检查的源文件路径列表,相对工程根目录,至少 1 个 |
|
|
1302
|
+
|
|
1303
|
+
##### `hover` / `definition` / `declaration` / `references` / `implementation`
|
|
1304
|
+
|
|
1305
|
+
位置类语言特性,共享同一入参结构。返回该位置符号的类型/文档信息、定义/声明位置、引用列表或实现列表。
|
|
1306
|
+
|
|
1307
|
+
| 参数 | 类型 | 必选 | 说明 |
|
|
1308
|
+
| --- | --- | --- | --- |
|
|
1309
|
+
| `file` | string | 是 | 源文件路径,相对工程根目录,支持 `.ets` 与 C/C++ 扩展名 |
|
|
1310
|
+
| `line` | number | 是 | 行号,0-based |
|
|
1311
|
+
| `character` | number | 是 | 列号(字符偏移),0-based |
|
|
1312
|
+
|
|
1313
|
+
##### `workspaceSymbol`
|
|
1314
|
+
|
|
1315
|
+
按名称在全工程搜索符号,无需打开具体文件。
|
|
1316
|
+
|
|
1317
|
+
| 参数 | 类型 | 必选 | 说明 |
|
|
1318
|
+
| --- | --- | --- | --- |
|
|
1319
|
+
| `query` | string | 是 | 符号名称或片段,非空 |
|
|
1320
|
+
|
|
1321
|
+
##### `documentSymbol`
|
|
1322
|
+
|
|
1323
|
+
获取单个文件的符号树,适合文件概览、结构化拆解和大文件切片。
|
|
1324
|
+
|
|
1325
|
+
| 参数 | 类型 | 必选 | 说明 |
|
|
1326
|
+
| --- | --- | --- | --- |
|
|
1327
|
+
| `file` | string | 是 | 源文件路径,相对工程根目录,支持 `.ets` 与 C/C++ 扩展名 |
|
|
1328
|
+
|
|
1329
|
+
##### `callHierarchy`
|
|
1330
|
+
|
|
1331
|
+
查询某位置函数的调用关系。
|
|
1332
|
+
|
|
1333
|
+
| 参数 | 类型 | 必选 | 说明 |
|
|
1334
|
+
| --- | --- | --- | --- |
|
|
1335
|
+
| `file` | string | 是 | 源文件路径,相对工程根目录,支持 `.ets` 与 C/C++ 扩展名 |
|
|
1336
|
+
| `line` | number | 是 | 行号,0-based |
|
|
1337
|
+
| `character` | number | 是 | 列号(字符偏移),0-based |
|
|
1338
|
+
| `direction` | enum | 是 | `incoming`=谁调用了该函数;`outgoing`=该函数调用了谁。ArkTS 支持双向,C/C++(clangd)仅 `incoming` |
|
|
1339
|
+
|
|
1340
|
+
##### `restart`
|
|
1341
|
+
|
|
1342
|
+
原地重启 MCP server:重置双侧状态并重新 sync/init(ohpm install + hvigor sync + compileNative + LSP 握手),不杀进程、客户端连接保持。用于 sync/init 失败导致 server 停在 `ERROR` 态时(免去退出并重开 agent)。fire-and-forget:立即返回"约 10 秒后重试",重置在后台异步进行。**注意:`restart` 仅在修复根因后用于恢复,不能修复错误的工程配置。若重启后再次失败,说明是持久性配置问题(oh-package.json5/build-profile.json5 无效、ohpm install 或 hvigor sync 失败、SDK 版本不符等),不要循环调用 `restart`,应请用户排查并修复工程后再重试。**
|
|
1343
|
+
|
|
1344
|
+
| 参数 | 类型 | 必选 | 说明 |
|
|
1345
|
+
| --- | --- | --- | --- |
|
|
1346
|
+
| `target` | enum | 否 | 重启哪一侧:`arkts`(ArkTS ace-server)、`cpp`(C++ clangd)、`all`(双侧,默认)。省略等同 `all` |
|
|
1347
|
+
|
|
858
1348
|
### `serve lsp`
|
|
859
1349
|
|
|
860
1350
|
启动本地 `LSP` 语言服务。智能体配置 `LSP` 服务后,可通过 `LSP` 协议获取代码补全、跳转定义、悬浮提示、引用查找、诊断等语言特性。当前支持 `ArkTS`和 `clangd`。
|
|
@@ -904,6 +1394,44 @@ devecocli skills remove --skill skillname --agent agentname # skillname需替
|
|
|
904
1394
|
| `--project-path <path>` | 可选,工程根路径,默认为当前工作目录 |
|
|
905
1395
|
| `--auto-detect` | 可选,当前目录向下查找工程根(检查当前目录自身及其子目录,最多 3 层子目录);适用于 `--arkts` 和 `--cpp`;指定了 `--project-path` 则忽略 |
|
|
906
1396
|
|
|
1397
|
+
### `signature generate`
|
|
1398
|
+
|
|
1399
|
+
自动生成调试签名材料(包括p12密钥库、csr证书请求文件、p7b配置文件、cer证书文件),并将签名配置写入项目的 `build-profile.json5` 中。
|
|
1400
|
+
|
|
1401
|
+
**命令格式:**
|
|
1402
|
+
|
|
1403
|
+
```bash
|
|
1404
|
+
devecocli signature generate --product <product> --team-id <team-id> --force --help
|
|
1405
|
+
```
|
|
1406
|
+
|
|
1407
|
+
**参数:**
|
|
1408
|
+
|
|
1409
|
+
| 参数名 | 说明 |
|
|
1410
|
+
|-----------------------|-----------------------------------------|
|
|
1411
|
+
| --product \<product\> | 可选,指定product生成签名,默认为 `default` |
|
|
1412
|
+
| --team-id \<team-id\> | 可选,指定生效的team-id,默认使用自身作为团队信息 |
|
|
1413
|
+
| --force | 可选,强制覆盖已存在的证书文件 |
|
|
1414
|
+
| --help,--h | 可选,查看帮助信息 |
|
|
1415
|
+
|
|
1416
|
+
**示例:**
|
|
1417
|
+
|
|
1418
|
+
```bash
|
|
1419
|
+
# 自动生成签名并写入工程配置
|
|
1420
|
+
devecocli signature generate
|
|
1421
|
+
|
|
1422
|
+
# 指定product
|
|
1423
|
+
devecocli signature generate --product default
|
|
1424
|
+
|
|
1425
|
+
# 指定team-id
|
|
1426
|
+
devecocli signature generate --team-id 1222
|
|
1427
|
+
|
|
1428
|
+
# 强制覆盖已存在的证书文件
|
|
1429
|
+
devecocli signature generate --force
|
|
1430
|
+
|
|
1431
|
+
# 查询帮助信息
|
|
1432
|
+
devecocli signature generate --help
|
|
1433
|
+
```
|
|
1434
|
+
|
|
907
1435
|
### `check compat`
|
|
908
1436
|
|
|
909
1437
|
基于 `DevEco Studio` 自带的 `apkanalyzer-apiscan` 插件,扫描源代码在两个 `SDK` 版本之间的 `API` 变更情况。
|
|
@@ -939,6 +1467,12 @@ devecocli check compat [files...] --source-version <ver> --target-version <ver>
|
|
|
939
1467
|
- 可用版本可通过 `devecocli check compat versions` 查看
|
|
940
1468
|
- `zsh` 环境下版本号需用引号包裹(包含括号),例如 `"<source_version>"`、`"<target_version>"`
|
|
941
1469
|
|
|
1470
|
+
**`compat versions` 参数:**
|
|
1471
|
+
|
|
1472
|
+
| 参数名 | 说明 |
|
|
1473
|
+
| --- | --- |
|
|
1474
|
+
| `--format` | 可选,输出格式。`default` 或 `json`。默认 `default`(文本输出,每行一个版本号) |
|
|
1475
|
+
|
|
942
1476
|
**格式与输出组合:**
|
|
943
1477
|
|
|
944
1478
|
| 场景 | 允许的 `--format` | 行为 |
|