- 告别串口卡顿调试🐸hdc增效大法🐸,工作环境主要是Linux,所以主要是介绍Linux环境下使用喔~
文章目录
- HDC
- 1.1 简单介绍
- 1.2 搭建环境
- 1.2.1 设备机
- 1.2.2 pc机
- 1.2.3 操作
Author | Date | Version | Description |
---|---|---|---|
陈梓归 | 2023-06-13 | V1.0 | 第一个版本 |
HDC
1.1 简单介绍
hdc(HarmonyOS Device Connector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与 真实设备或者模拟器进行交互。hdc工具通过HarmonyOS sdk获取,存放于sdk的toolchains目录下,使用前请将sdk的toolchains目录添加到环境变量,为防止端口占用,还应变更hdc的端口号
架构
hdc主要有三部分组成:
- hdc client部分:运行于开发机上的客户端,用户可以在开发机命令终端(windows cmd/linux shell)下请求执行相应的hdc命令,运行于开发机器,其它的终端调试IDE也包含hdc client。
- hdc server部分:作为后台进程也运行于开发机器,server管理client和设备端daemon之间通信包括连接的复用、数据通信包的收发,以及个别本地命令的直接处理。
- hdc daemon部分:daemon部署于OpenHarmony设备端作为守护进程来按需运行,负责处理来自client端的请求。
1.2 搭建环境
1.2.1 设备机
D2000为例,默认会安装命令到板子上:hdc
and hdcd
- 默认编译完输出在out/d2000/developtools/hdc目录
最重要的就是需要确认设备机器上面的hdc使用的版本,在设备机上使用命令hdcd -v
# hdcd -v
Ver: 1.2.0a
配置ip和port方便pc机连接上来:
# 设置ip
ifconfig eth0 10.31.94.242
# 查询hdc参数
param get | grep hdc
# 设置hdc参数
param set persist.hdc.mode tcp
param set persist.hdc.port 9527
# 启动hdcd服务
hdcd &
1.2.2 pc机
- 可以直接选择我打包好的,里面有不同的版本:https://github.com/fakeczg/penharmony-debug/tree/main/hdc/pc_hdc_v120a
根据设备机上面使用的鸿蒙版本,在dailybuild上自取:http://ci.openharmony.cn/dailys/dailybuilds
注意:项目选择Openharmony,分支选择对应的鸿蒙版本(OpenHarmony-3.2-Release
),形态组件选择ohos-sdk-full
进入ohos-sdk/linux,解压toolchains-linux-x64-3.2.13.5-Release.zip,进入ohos-sdk/linux/toolchains,里面有对应的hdc
命令
输入命令./hdc -v
来查看版本是否和设备端对应,按道理来说鸿蒙版本对应那么一般hdc版本就会对应:
❰fovt❙/data/bin/openharmony-debug/hdc/pc_hdc_v120a(git:main)❱✔≻ ./hdc -v
Ver: 1.2.0a
连接设备并操作
# 首先连接设备
tconn ip:port
hdc tconn 10.31.94.242:9527
❰fovt❙~❱✘≻ hdc tconn 10.31.94.242:9527
Connect OK
1.2.3 操作
- 可以很方便的查看打印并保存到本机,速度大大的增加~
# hilog
hdc hilog / hdc shell hilog
# 执行shell命令但是不进入shell
hdc shell [command]
# 启动shell
./hdc shell
# 文件接收发送
# 接受
hdc file recv [-a] remote local // -a:文件保留时间戳模式
hdc file recv -a /data/atomic_test ./
# 发送
hdc file send openharmony-debug/ /data/test
# 如果要传入东西到根分区,需要重新挂载/分区,将只读改成可写
hdc shell "mount -o remount,rw /"