一、工具概述
hdc(OpenHarmony Device Connector)是为开发人员提供的用于设备连接调试的命令行工具,该工具需支持部署在 Windows/Linux/Mac 等系统上与 OpenHarmony 设备(或模拟器)进行连接调试通信。
简言之,hdc 是 OpenHarmony 提供的用于开发人员调试硬件、应用的命令行工具,用在电脑与开发板之间的交互。
适用于 OpenHarmony 应用、硬件开发及测试人员,是每个开发人员的必备、入门工具。
二、环境准备
-
环境要求
本文以 window10 电脑和 Rk3568 开发板为例进行说明。linux 版本建议 ubuntu 18.04 以上 64 位,其他相近版本也可;libc++.so 引用错误请使用 ldd/readelf 等命令检查库引用 windows 版本建议 windows10 64 位,如果低版本 windows winusb 库缺失,请使用 zadig 更新库。
-
安装 USB 设备驱动安装
第一步,连接 PC 与开发板 USB 线 PC 与开发板通过 USB 调试线连接,开发板上运行开源系统主线版本。连接端口如蓝色线缆所示
第二步,安装 USB 驱动 DriverAssitant 是 RK3568 开发板自带的 USB 驱动。双击 DriverInstall.exe,选择驱动安装。
第三步,设备管理器查看驱动是否安装成功未连接 USB 先或者驱动未安装成功如图片左边所示,成功则如右边所示,会出现"hdc Device"。
-
hdc 工具下载
第一步,下载安装包
链接:http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist 查找"流水线名称"名称为 ohos-sdk-full, 或者 ohos-sdk-public,点击'下载链接',选择'全量包'
第二步,解压缩任意一个选择红框中的文件第三步,拷贝至 D:\hdc_bin\目录下注意:无须双击安装
-
hdc 路径环境配置
hdc path 环境配置如图所示。我的电脑,右键选择属性,选择"高级系统设置"→ 高级 → 环境设置 → 系统环境变量中的 path→ 输入"D:\hdc_bin"→ 一路"确定"
-
至此,hdc 可以正常运行了
打开 cmd 窗口,执行 hdc shell 就进入命令交互界面。
三、hdc 功能列表
序号 | 命令 | 功能描述 | 成功输出 |
---|---|---|---|
1 | hdc -v | 查看工具版本 | Ver: 1.1.2a |
2 | hdc -h | 查看工具帮助 | OpenHarmony device connector(HDC) ... |
3 | hdc list targets | 查看已连接设备 | 7001005458323933328a250efe593900 |
4 | hdc list targets -v | 查看连接设备详细信息 | 7001005458323933328a250efe593900 USB Connected localhost |
5 | hdc shell | 进入命令行交互环境 | # |
6 | hdc shell mount -o rw,remount | 挂在系统目录 | tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=990956k,nr_inodes=247739,mode=755)... |
7 | hdc file send d:\test.txt /data/ | 从 PC 拷入文件到开发板(往设备中推送文件) | FileTransfer finish, Size:xxx time:26ms rate:xxxkB/s |
8 | hdc file recv /data/test.txt c:\test.txt | 从开发板拷出文件到 PC(从设备中拉取文件) | FileTransfer finish, Size:xxx time:51ms rate:xxxkB/s |
9 | hdc install D:\test.hap | 安装 HAP 应用 | [Info]App install path:D:\test.hap, queuesize:0, msg:install bundle successfully. AppMod finish |
10 | hdc install -r test.hap | 重新安装 HAP 应用 | [Info]App install path:D:\test.hap, queuesize:0, msg:install bundle successfully. AppMod finish |
11 | hdc uninstall com.example.ohtest | 卸载已安装应用 | [Info]App uninstall path:, queuesize:0, msg:uninstall bundle successfully. AppMod finish |
12 | hdc shell aa start -a com.example.ohtest.MainAbility -b com.example.ohtest | 启动已安装应用 -a 后面是 Ability 的完整名字 -b 后面是 Bundle 的完整名字 | start ability successfully. |
13 | hdc hilog | 查看日志 | 08-05 19:45:29.912... |
14 | hdc target mount | 重新挂载/vendor 和/system 分区为可读写 | Mount finish |
15 | hdc start -r | 重新启动 hdc 服务进程 | None |
16 | hdc kill | 终止 hdc 服务进程 | Kill server finish |
17 | hdc target boot | 重启设备 | None |
18 | hdc shell hilog -w start | 开始保存日志到文件 | Persist task [jobid:1] start successfully |
18 | hdc shell hilog -w stop | 开始保存日志到文件 | Persist task [jobid:1] stop successfully |
19 | hdc tconn 192.168.0.27:10111 | TCP 网络连接 | None |
四、hdc 常用命令讲解,未尽命令使用 hdc -h 或者 hdc --help 查看
Sn | Option | Description | Example |
---|---|---|---|
1 | -t key | 用于指定连接该指定设备识 Key | hdc -t *****(设备 id) shell |
2 | -s socket | 用于指定服务监听的 socket 配置 | hdc -s ip:port |
3 | -h/help -v/version | 用于显示 hdc 相关的帮助、版本信息 | None |
4 | list targets[-v] | 显示所有已经连接的目标设备列表,-v 选项显示详细信息 | hdc list targets |
5 | target mount | 以读写模式挂载/vendor、/data 等分区,因为安全性问题,需要挂在根目录或者/system 分区请单独使用 'hdc_std shell mount -o rw,remount /'等命令 | hdc target mount |
6 | smode [off] | 授予后台服务进程 root 权限, 使用 off 参数取消授权 | hdc smode |
7 | kill [-r] | 终止 hdc 服务进程, -r 选项会触发再次重启 hdc server | hdc kill |
8 | start [-r] | 启动 hdc 服务进程, -r 选项会触发重启 hdc server | hdc start |
9 | tconn host[:port][-remove] | 通过【ip 地址:端口号】来指定连接的设备 使用 TCP 模式连接设备,需在 USB 模式工作下使用 tmode tcp 切换至 TCP 工作模式,或者在 系统属性值中设置 persist.hdc.mode 属性值为 tcp,如果需要监听固定 TCP 端口需要再设置 persist.hdc.port 的端口号,反之则 TCP 监听端口随机 | hdc tconn 192.168.0.100:10178 |
10 | tmode usb | 执行后设备端对应 daemon 进程重启,并首先选用 usb 连接方式 | None |
11 | tmode port port-number | 执行后设备端对应 daemon 进程重启,并优先使用网络方式连接设备,如果连接设备再选择 usb 连接 | None |
12 | file send local remote | 从 host 端发送文件至设备端 | hdc file send E:\a.txt /data/local/tmp/a.txt |
13 | file recv [-a] remote local | 从设备端拉出文件至本地 host 端 | hdc file recv /data/local/tmp/a.txt ./a.txt |
14 | install [-r/-d/-g] package | 安装 OpenHarmony package | hdc install E:\***.hap |
15 | uninstall [-k] package | 卸载 OpenHarmony 应用 | None |
16 | hilog | 支持查看抓取 hilog 调试信息 | hdc hilog |
17 | shell [command] | 远程执行命令或进入交互命令环境 | hdc shell |
五、常见问题处理
- hdc list targets 查找不到设备
第一步, 检查 PC 上设备管理器中 USB 驱动是否正常,如果没有正常显示,卸载之前安装的驱动,然后重装驱动,或者更换 USB 线;
第二步, 检查 PC 上的 hdc 工具版本是否为最新,版本 Ver: 1.1.2a 及以上;
第三步, 装完驱动后,重启 PC 和开发板;
第四步, 重启 PC 本地 hdc 服务:
hdc start -r
第五步,杀掉本地服务并重启 PC 侧 hdc 服务:
hdc kill -r
第六步,如果不行,更换开发板。
- 从 PC 拷贝文件到开发板失败
hdc file send d:\ohtest.hap /system/
[Fail]Error opening file: read-only file system, path:/system//ohtest.hap
第一步,重新挂在目标目录
hdc shell mount -o rw,remount
第二步,可能目标目录只读,更换其他可读写目录尝试一下
hdc file send d:\ohtest.hap /data/
FileTransfer finish, Size:xxx time:86ms rate:xxxkB/s
- 从开发板拷贝文件到 PC 失败
hdc file recv /data/tmp/entry-debug-standard-ark-signed.hap d:
[Fail]Error opening file: operation not permitted, path:d:\entry-debug-standard-ark-signed.hap
可能是磁盘根目录没有权限,建议建一个文件夹,然后拷贝到文件夹下
hdc file recv /data/tmp/entry-debug-standard-ark-signed.hap d:\recv
FileTransfer finish, Size:71030 time:60ms rate:1183.83kB/s
六、补充
源代码目录 .\developtools\hdc,非必要不用编译。文中涉及的 hdc 工具和 USB 驱动从附件下载。
hdc_bin: hdc 工具包
DriverAssitant: RK3568 配套的 USB 驱动
Cmder.exe: 代替系统 cmd 控制台程序,可以分割多个窗口同时监听、交互感兴趣的内容。十分好用,因为安装包较大建议自行下载。
七、总结
OpenHarmony 命令行工具 hdc 安装、应用指南详细阐述了 hdc 工具下载、安装、路径的环境配置和 USB 驱动安装。接下来完整给出了 19 条 hdc 命令用法及正确输出示意。最后列出典型的三种错误处理。
最后
有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了 (ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony **多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)**技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料****
鸿蒙(HarmonyOS NEXT)最新学习路线
- HarmonOS基础技能
- HarmonOS就业必备技能
- HarmonOS多媒体技术
- 鸿蒙NaPi组件进阶
- HarmonOS高级技能
- 初识HarmonOS内核
- 实战就业级设备开发
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页) 与鸿蒙(OpenHarmony )开发入门教学视频 ,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类...等知识点。
获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料****
《鸿蒙 (OpenHarmony)开发入门教学视频》
《鸿蒙生态应用开发V2.0白皮书》
《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建
《鸿蒙开发基础》
- ArkTS语言
- 安装DevEco Studio
- 运用你的第一个ArkTS应用
- ArkUI声明式UI开发
- .......
《鸿蒙开发进阶》
- Stage模型入门
- 网络管理
- 数据管理
- 电话服务
- 分布式应用开发
- 通知与窗口管理
- 多媒体技术
- 安全技能
- 任务管理
- WebGL
- 国际化开发
- 应用测试
- DFX面向未来设计
- 鸿蒙系统移植和裁剪定制
- ......
《鸿蒙进阶实战》
- ArkTS实践
- UIAbility应用
- 网络案例
- ......
获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料****
总结
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。