首页 > 数据库 > 数据库开发技术 > OpenHarmony HDC工具详解
简介
HDC(OpenHarmony Device Connector) 是为开发人员提供的用于设备连接调试的命令行工具,pc端开发机使用命令行工具hdc_std(为方便起见,下文统称hdc),该工具需支持部署在Windows/Linux/Mac等系统上与OpenHarmony\HarmonyOS设备(或模拟器)进行连接调试通信。PC端hdc工具需要针对以上开发机操作系统平台分别发布相应的版本,设备端hdc daemon需跟随设备镜像发布包括对模拟器进行支持。
如果你熟悉Android开发,那么一定对Android Debug Bridge(Android 调试桥,adb)不会陌生。HDC可以简单理解为是鸿蒙生态上的“adb”。有关adb的内容,详见https://developer.huawei.com/consumer/cn/blog/topic/03739327605840321?focus=comments
下文将介绍hdc的常用命令及使用举例。
架构
hdc主要有三部分组成:
目录
/developtools
├── hdc_standard # hdc代码目录
│ └── src
│ ├── common # 设备端和host端公用的代码目录
│ ├── daemon # 设备端的代码目录
│ ├── host # host端的代码目录
│ └── test # 测试用例的代码目录
pc端编译说明
hdc pc端可执行文件编译步骤:
pc端获取说明
通过访问本社区网站下载dailybuilds或正式发布的sdk压缩包,从中根据自己平台到相应的目录toolchain下解压提取
编译请参考上面单独小节,本项目仓prebuilt目录下不再提供预制
linux版本建议ubuntu 18.04以上 64位,其他相近版本也可;libc++.so引用错误请使用ldd/readelf等命令检查库引用 windows版本建议windows10 64位,如果低版本windows winusb库缺失,请使用zadig更新库。
Linux端USB设备权限说明
在Linux下在非root权限下使用hdc会出现无法找到设备的情况,此问题原因为用户USB操作权限问题,解决方法如下:
sudo chmod -R 777 /dev/bus/usb/
编辑UDEV加载规则,用设备的"idVendor"和"idProduct"来替换默认值。MODE="0666"表示USB设备的权限 GROUP代表用户组,要确保此时登录的系统用户在该用户组中 可用 "usermod -a -G username groupname" 将用户添加到用户组中
sudo vim /etc/udev/rules.d/90-myusb.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="users", MODE="0666"
重启电脑或重新加载 udev 规则
sudo udevadm control --reload
sudo hdc_std list targets
命令帮助
hdc当前常用命令如下,未尽命令使用hdc -h或者hdc --help查看:
表 1 hdc常用命令列表
| Option | Description |
|---|---|
| -t key | 用于指定连接该指定设备识Key 举例:hdc -t *****(设备id) shell |
| -s socket | 用于指定服务监听的socket配置 举例:hdc -s ip:port |
| -h/help -v/version | 用于显示hdc相关的帮助、版本信息 |
| list targets[-v] | 显示所有已经连接的目标设备列表,-v选项显示详细信息 举例: hdc list targets |
| target mount | 以读写模式挂载/vendor、/data等分区,因为安全性问题,需要挂在根目录或者/system分区请单独使用'hdc_std shell mount -o rw,remount /'等命令 举例: hdc target mount |
| smode [off] | 授予后台服务进程root权限, 使用off参数取消授权 举例: hdc smode |
| kill [-r] | 终止hdc服务进程, -r选项会触发再次重启hdc server 举例: hdc kill |
| start [-r] | 启动hdc服务进程, -r选项会触发重启hdc server 举例: hdc start |
| 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 |
| tmode usb | 执行后设备端对应daemon进程重启,并首先选用usb连接方式 |
| tmode port port-number | 执行后设备端对应daemon进程重启,并优先使用网络方式连接设备,如果连接设备再选择usb连接 |
| file send local remote | 从host端发送文件至设备端 举例: hdc file send E:\a.txt /data/local/tmp/a.txt |
| file recv [-a] remote local | 从设备端拉出文件至本地host端 举例: hdc file recv /data/local/tmp/a.txt ./a.txt |
| install [-r/-d/-g] package | 安装OpenHarmony package 举例: hdc install E:\***.hap |
| uninstall [-k] package | 卸载OpenHarmony应用 |
| hilog | 支持查看抓取hilog调试信息 举例: hdc hilog |
| shell [command] | 远程执行命令或进入交互命令环境 举例: hdc shell |
以下是常用hdc命令示例,供开发者参考:
hdc list targets
hdc file send E:\a.txt /data/local/tmp/a.txt
hdc file recv /data/local/tmp/a.txt ./a.txt
hdc install E:\***.hap
hdc hilog
hdc shell
hdc tconn 192.168.0.100:10178
参考
原文作者:;如有侵权,请联系管理员删除。