subsys-toolchain-hdc-guide.md 9.7 KB
Newer Older
D
duangavin123 已提交
1
# hdc_std使用指导
M
mamingshuai 已提交
2

D
duangavin123 已提交
3

D
duangavin123 已提交
4
hdc_std(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具,通过该工具可以在Windows/Linux/MacOS等系统上与开发机或者模拟器进行交互。
M
mamingshuai 已提交
5 6


D
duangavin123 已提交
7
下文将介绍hdc_std的环境准备和常用命令及使用举例。
M
mamingshuai 已提交
8 9


D
duangavin123 已提交
10 11 12
## 环境准备

**hdc_std 工具获取方式:**
M
mamingshuai 已提交
13

14
通过OpenHarmony sdk获取,hdc_std在sdk的toolchains目录下。
15

M
mamingshuai 已提交
16 17 18 19
**使用举例:**

下面以windows侧使用方式举例:

20
获取windows的sdk,将hdc_std.exe放到磁盘某个位置即可使用。
M
mamingshuai 已提交
21 22


D
duangavin123 已提交
23 24 25 26 27 28
## 注意事项

- 使用hdc_std,如果出现异常,可以尝试通过hdc_std kill命令杀掉hdc_std服务,或者通过hdc_std start -r命令重启服务进程进行解决。

- 如果出现hdc_std list targets获取不到设备信息,通过任务管理器查看是否有hdc_std进程存在,如果进程存在,可以通过杀掉该进程进行解决。

M
mamingshuai 已提交
29

D
duangavin123 已提交
30
## option相关的命令
M
mamingshuai 已提交
31

D
duangavin123 已提交
32
option涉及以下命令:
M
mamingshuai 已提交
33 34


D
duangavin123 已提交
35 36
- **-h/help -v/version**
  用于显示hdc相关的帮助、版本信息。
M
mamingshuai 已提交
37

D
duangavin123 已提交
38 39
    **表1** 命令说明
  
40
  | 返回值 | 返回值说明| 
D
duangavin123 已提交
41 42
  | -------- | -------- |
  | 返回对应信息 | 帮助或者版本信息 | 
M
mamingshuai 已提交
43

D
duangavin123 已提交
44
  使用方法:
M
mamingshuai 已提交
45

D
duangavin123 已提交
46 47 48 49
    
  ```
  hdc_std -h / hdc_std help
  ```
M
mamingshuai 已提交
50

D
duangavin123 已提交
51 52 53 54
    
  ```
  hdc_std -v / hdc_std version
  ```
M
mamingshuai 已提交
55

D
duangavin123 已提交
56 57 58 59 60
- **-t key**
  用于连接指定设备标识为key的设备。

    **表2** 命令说明
  
61
  | 参数 | 参数说明 | 
D
duangavin123 已提交
62 63 64 65 66 67
  | -------- | -------- |
  | key | 为 IP地址:port 格式,或者USB序列号 | 
  | **返回值** | **返回值说明** | 
  | ①error:&nbsp;device&nbsp;'\*\*\*'&nbsp;not&nbsp;found<br/>②Nothing&nbsp;to&nbsp;do... | ①设备不存在<br/>②附加的命令不存在 | 

  使用方法:
M
mamingshuai 已提交
68

D
duangavin123 已提交
69
  该option需要与具体的操作命令搭配使用,下面以shell命令举例:
M
mamingshuai 已提交
70

D
duangavin123 已提交
71
  hdc_std list targets  (获取设备信息)
M
mamingshuai 已提交
72

D
duangavin123 已提交
73
  hdc_std  -t  _key_  shell  (-t后面添加的_key_ 需要替换为上面查询的设备信息)
M
mamingshuai 已提交
74

D
duangavin123 已提交
75 76
  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
  > 一台开发机可支持多个设备连接,每个设备有其唯一的设备标识,如果通过网络与设备连接,其标识为IP地址:port格式,如果通过usb连接则标识为设备sn号。该命令需要跟随具体操作命令。
M
mamingshuai 已提交
77

D
duangavin123 已提交
78 79

## 查询设备列表的命令
M
mamingshuai 已提交
80 81 82

查询设备列表涉及以下命令:

D
duangavin123 已提交
83 84 85 86 87
  
```
list targets[-v]
```

M
mamingshuai 已提交
88 89 90

显示所有已经连接的目标设备列表

D
duangavin123 已提交
91 92 93

  **表3** 命令说明

94
| 参数 | 参数说明| 
D
duangavin123 已提交
95 96 97 98 99
| -------- | -------- |
| -v | 添加-v选项,则会打印设备详细信息 | 
| **返回值** | **返回值说明** | 
| ①返回设备信息<br/>②[Empty] | ①已经连接的设备列表信息<br/>②没有查询到设备信息 | 

M
mamingshuai 已提交
100 101 102 103

使用方法:


D
duangavin123 已提交
104 105 106 107 108 109 110 111 112 113
  
```
hdc_std list targets
```


  
```
hdc_std list targets -v
```
M
mamingshuai 已提交
114

D
duangavin123 已提交
115 116

## 服务进程相关命令
M
mamingshuai 已提交
117 118 119 120

服务进程涉及以下命令:


D
duangavin123 已提交
121 122
- **target mount**
  以读写模式挂载系统分区。
M
mamingshuai 已提交
123

D
duangavin123 已提交
124 125
    **表4** 命令说明
  
126
  | 参数 | 参数说明 | 
D
duangavin123 已提交
127 128 129 130
  | -------- | -------- |
  | 无 | 无 | 
  | **返回值** | **返回值说明** | 
  | ①Mount&nbsp;finish<br/>②返回具体信息 | ①成功情况下返回的信息<br/>②失败情况下的具体信息 | 
M
mamingshuai 已提交
131

D
duangavin123 已提交
132
  使用方法:
M
mamingshuai 已提交
133

D
duangavin123 已提交
134 135 136 137
    
  ```
  hdc_std target mount
  ```
M
mamingshuai 已提交
138

D
duangavin123 已提交
139 140
- **smode [off]**
  授予后台服务进程root权限, 使用off参数取消授权。
M
mamingshuai 已提交
141

D
duangavin123 已提交
142
  使用方法:
M
mamingshuai 已提交
143

D
duangavin123 已提交
144 145 146 147
    
  ```
  hdc_std smode
  ```
M
mamingshuai 已提交
148

D
duangavin123 已提交
149 150 151 152
    
  ```
  hdc_std smode off
  ```
M
mamingshuai 已提交
153

D
duangavin123 已提交
154 155 156 157 158
- **kill [-r]**
  终止服务进程。

    **表5** 命令说明
  
159
  | 参数 | 参数说明 | 
D
duangavin123 已提交
160 161 162 163 164 165 166 167 168 169
  | -------- | -------- |
  | -r | 触发服务重启 | 
  | **返回值** | **返回值说明** | 
  | ①Kill&nbsp;server&nbsp;finish<br/>②返回具体信息 | ①成功情况下返回的信息<br/>②失败情况下的具体信息 | 

    使用方法:
    
  ```
  hdc_std kill
  ```
M
mamingshuai 已提交
170

D
duangavin123 已提交
171 172
- **start [-r]**
  启动服务进程。
M
mamingshuai 已提交
173

D
duangavin123 已提交
174 175
    **表6** 命令说明
  
176
  | 参数 | 参数说明 |
D
duangavin123 已提交
177 178 179 180 181 182 183 184 185 186 187 188 189
  | -------- | -------- |
  | -r | 如果服务进程已经启动,-r选项会触发服务进程重新启动 | 
  | **返回值** | **返回值说明** | 
  | 无 | 无 | 

    使用方法:
    
  ```
  hdc_std start
  ```


## 网络相关的命令
M
mamingshuai 已提交
190 191 192 193

网络部分涉及以下命令:


D
duangavin123 已提交
194 195
- **tconn host[:port][-remove]**
  通过【ip地址:端口号】来指定连接的设备
M
mamingshuai 已提交
196

D
duangavin123 已提交
197 198
    **表7** 命令说明
  
199
  | 参数 | 参数说明 | 
D
duangavin123 已提交
200 201 202 203 204
  | -------- | -------- |
  | host[:port] | 为IP地址:port格式 | 
  | -remove | 表示断开与指定设备的连接 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 
M
mamingshuai 已提交
205

D
duangavin123 已提交
206 207 208 209 210 211 212 213 214
  使用方法(举例):

    
  ```
  hdc_std tconn 192.168.0.100:8710
  ```

- **tmode usb**
  执行后设备端对应daemon进程重启,并首先选用usb连接方式。
M
mamingshuai 已提交
215

D
duangavin123 已提交
216 217
    **表8** 命令说明
  
218
  | 参数 | 参数说明 | 
D
duangavin123 已提交
219 220 221 222
  | -------- | -------- |
  | 无 | 无 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 
M
mamingshuai 已提交
223

D
duangavin123 已提交
224
  使用方法:
M
mamingshuai 已提交
225

D
duangavin123 已提交
226 227 228 229 230 231 232 233 234 235
    
  ```
  hdc_std tmode usb
  ```

- **tmode port port-number**
  执行后设备端对应daemon进程重启,并优先使用网络方式连接设备,如果连接设备失败,再选择usb连接。

    **表9** 命令说明
  
236 237
  | 参数 | 参数说明 |
  | -------- | -------- | 
D
duangavin123 已提交
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
  | port-number | listen连接的网络端口号 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 

  使用方法:

    
  ```
  hdc_std tmode port 8710
  ```

  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
  > 执行完毕后,远端daemon将会退出并重启,默认启用TCP连接,如果不加上listen端口则listen随机端口。


## 文件相关的命令
M
mamingshuai 已提交
254 255 256

文件部分涉及以下命令:

D
duangavin123 已提交
257 258 259 260 261 262

- **file send local remote**
  发送文件至远端设备。

    **表10** 命令说明
  
263
  | 参数 | 参数说明 | 
D
duangavin123 已提交
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281
  | -------- | -------- |
  | local | 本地待发送文件路径 | 
  | remote | 远程待接收文件路径 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②返回传输结果 | ①失败情况下的具体信息<br/>②成功传输的结果信息 | 

  使用方法(举例):

    
  ```
  hdc_std file send E:\a.txt   /data/local/tmp/a.txt
  ```

- **file recv [-a] remote local**
  从远端设备接收文件至本地。

    **表11** 命令说明
  
282
  | 参数 | 参数说明 | 
D
duangavin123 已提交
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298
  | -------- | -------- |
  | -a | 文件保留时间戳模式 | 
  | local | 本地待接收文件路径 | 
  | remote | 远程待发送文件路径 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 

  使用方法(举例):

    
  ```
  hdc_std file recv  /data/local/tmp/a.txt   ./a.txt
  ```


## 应用相关的命令
M
mamingshuai 已提交
299 300 301 302

应用部分涉及以下命令:


D
duangavin123 已提交
303 304
- **install [-r/-d/-g] _package_**
  安装OpenHarmony APP package。
M
mamingshuai 已提交
305

D
duangavin123 已提交
306 307
    **表12** 命令说明
  
308
  | 参数 | 参数说明 | 
D
duangavin123 已提交
309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328
  | -------- | -------- |
  | package | OpenHarmony应用安装包文件名 | 
  | -r | 替换已存在应用 | 
  | -d | 允许降级安装 | 
  | -g | 应用动态授权 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 

  使用方法(举例):

    
  ```
  hdc_std install hwadmin.hap
  ```

- **uninstall [-k] package**
  卸载OpenHarmony应用。

    **表13** 命令说明
  
329
  | 参数 | 参数说明 | 
D
duangavin123 已提交
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346
  | -------- | -------- |
  | package | OpenHarmony应用安装包 | 
  | -k | 保留/data/cache | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 

  使用方法(举例):

    
  ```
  hdc_std uninstall package
  ```


## 调试相关的命令

调试涉及以下命令:
M
mamingshuai 已提交
347 348


D
duangavin123 已提交
349 350
- **hilog**
  支持抓取log信息。
M
mamingshuai 已提交
351

D
duangavin123 已提交
352 353
    **表14** 命令说明
  
354
  | 参数 | 参数说明 | 
D
duangavin123 已提交
355 356 357 358
  | -------- | -------- |
  | 无 | 无 | 
  | **返回值** | **返回值说明** | 
  | 返回具体信息 | 抓取的日志信息 | 
D
duangavin123 已提交
359

D
duangavin123 已提交
360
  抓取hilog日志:
D
duangavin123 已提交
361

D
duangavin123 已提交
362 363 364 365
    
  ```
  hdc_std hilog
  ```
D
duangavin123 已提交
366

D
duangavin123 已提交
367
  清理hilog缓存日志:
D
duangavin123 已提交
368

D
duangavin123 已提交
369 370 371 372
    
  ```
  hdc_std shell "hilog -r"
  ```
D
duangavin123 已提交
373

D
duangavin123 已提交
374 375
- **shell [_command_]**
  远程执行命令或进入交互命令环境。
D
duangavin123 已提交
376

D
duangavin123 已提交
377 378
    **表15** 命令说明
  
379 380
  | 参数 | 参数说明 |
  | -------- | -------- |  
D
duangavin123 已提交
381 382 383
  | command | 需要执行的单次命令 | 
  | **返回值** | **返回值说明** | 
  | 返回具体信息 | shell后面执行命令的结果信息 | 
D
duangavin123 已提交
384

D
duangavin123 已提交
385
  使用方法:
D
duangavin123 已提交
386

D
duangavin123 已提交
387 388 389 390
    
  ```
  hdc_std shell
  ```
D
duangavin123 已提交
391 392


D
duangavin123 已提交
393
## 常见问题
D
duangavin123 已提交
394 395


D
duangavin123 已提交
396
### hdc_std连接不到设备
D
duangavin123 已提交
397

D
duangavin123 已提交
398 399
- **现象描述**
  执行 "hdc_std list targets"命令后结果为:[Empty]
D
duangavin123 已提交
400

D
duangavin123 已提交
401 402 403 404 405 406 407
- **解决方法**
  1. 设备没有被识别:
      在设备管理器中查看是否有hdc设备,在通用串行总线设备中会有“HDC Device”信息。如果没有,hdc无法连接。此时需要断开并重联PC和OpenHarmony设备之间的USB连接,或者烧写最新的镜像。
  2. hdc_std工作异常:
      可以执行"hdc kill"或者"hdc start -r"杀掉hdc服务或者重启hdc服务,然后再执行hdc list targets查看是否已经可以获取设备信息。
  3. hdc_std与设备不匹配:
      如果设备烧写的是最新镜像,hdc_std也需要使用最新版本。
D
duangavin123 已提交
408 409


D
duangavin123 已提交
410
### hdc_std运行不了
D
duangavin123 已提交
411

D
duangavin123 已提交
412 413
- **现象描述**
  点击hdc_std.exe文件无法运行。
D
duangavin123 已提交
414

D
duangavin123 已提交
415 416
- **解决方法**
  hdc_std.exe不需要安装,直接放到磁盘上就能使用,也可以添加到环境变量中。通过打开cmd执行hdc_std命令直接使用。