hdc使用手册
nanshan 2025-01-12 17:27 28 浏览 0 评论
hdc(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具,通过该工具可以在Windows/Linux/MacOS等系统上与开发机或者模拟器进行交互。
下文将介绍hdc的环境准备和常用命令及使用举例。
环境准备
hdc 工具获取方式:
通过OpenHarmony sdk获取,hdc在sdk的toolchains目录下。
使用举例:
下面以linux侧使用方式举例:
获取linux的sdk,然后配置环境变量:
export HDC_SERVER_PORT=7035
export HDC_HOME=/app/software/command-line-tools/sdk/default/openharmony
export PATH=$PATH:$HDC_HOME/toolchains
注意事项
- 使用hdc,如果出现异常,可以尝试通过hdc kill命令杀掉hdc服务,或者通过hdc start -r命令重启服务进程进行解决。
- 如果出现hdc list targets获取不到设备信息,通过任务管理器查看是否有hdc进程存在,如果进程存在,可以通过杀掉该进程进行解决。
option相关的命令
option涉及以下命令:
- -h/help -v/version 用于显示hdc相关的帮助、版本信息。
- 表1 命令说明
- 返回值返回值说明返回对应信息帮助或者版本信息
- 使用方法:
- hdc -h / hdc help hdc -v / hdc version
- -l 0-5 用于指定运行时日志等级,默认为LOG_INFO。
- 命令说明
参数 | 参数说明 |
0 | LOG_OFF |
1 | LOG_FATAL |
2 | LOG_WARN |
3 | LOG_INFO |
4 | LOG_DEBUG |
5 | LOG_ALL |
- 使用方法:
- hdc -l5 start
- -t key 用于连接指定设备标识为key的设备。
命令说明
参数 | 参数说明 |
key | 为 IP地址:port 格式,或者USB序列号 |
返回值 | 返回值说明 |
①error: device ‘***’ not found | ①设备不存在 |
- 使用方法:
- 该option需要与具体的操作命令搭配使用,下面以shell命令举例:
- hdc list targets (获取设备信息)
- hdc -t key shell (-t后面添加的_key_ 需要替换为上面查询的设备信息)
- 说明: 一台开发机可支持多个设备连接,每个设备有其唯一的设备标识,如果通过网络与设备连接,其标识为IP地址:port格式,如果通过USB连接则标识为设备sn号。该命令需要跟随具体操作命令。
- checkserver 用于获取client-server版本。
命令说明
返回值 | 返回值说明 |
Client version: server version: | client-server版本号 |
使用方法:
hdc checkserver
查询设备列表的命令
查询设备列表涉及以下命令:
list targets[-v]
显示所有已经连接的目标设备列表
命令说明
参数 | 参数说明 |
-v | 添加-v选项,则会打印设备详细信息 |
返回值 | 返回值说明 |
①返回设备信息 | ①已经连接的设备列表信息 |
使用方法:
hdc list targets
hdc list targets -v
服务进程相关命令
服务进程涉及以下命令:
- target mount 以读写模式挂载系统分区。
命令说明
参数 | 参数说明 |
无 | 无 |
返回值 | 返回值说明 |
①Mount finish | ①成功情况下返回的信息 |
- 使用方法:
- hdc target mount
- target boot 设备重启。
- 使用方法:
- hdc target boot
- smode [-r] 授予后台服务进程root权限, 使用-r参数取消授权。
- 使用方法:
- hdc smode hdc smode -r
- kill [-r] 终止服务进程。
命令说明
参数 | 参数说明 |
-r | 触发服务重启 |
返回值 | 返回值说明 |
①Kill server finish | ①成功情况下返回的信息 |
- 使用方法:
- hdc kill
- start [-r] 启动服务进程。
命令说明
参数 | 参数说明 |
-r | 如果服务进程已经启动,-r选项会触发服务进程重新启动 |
返回值 | 返回值说明 |
无 | 无 |
- 使用方法:
- hdc start
网络相关的命令
网络部分涉及以下命令:
- tconn host[:port][-remove] 通过【ip地址:端口号】来指定连接的设备
命令说明
参数 | 参数说明 |
host[:port] | 为IP地址:port格式 |
-remove | 表示断开与指定设备的连接 |
返回值 | 返回值说明 |
①返回具体信息 | ①失败情况下的具体信息 |
- 使用方法(举例):
- hdc tconn 192.168.0.100:8710
- tmode usb 执行后设备端对应daemon进程重启,并首先选用USB连接方式。
命令说明
参数 | 参数说明 |
无 | 无 |
返回值 | 返回值说明 |
①返回具体信息 | ①失败情况下的具体信息 |
- 使用方法:
- hdc tmode usb
- tmode port port-number 执行后设备端对应daemon进程重启,并优先使用网络方式连接设备,如果连接设备失败,再选择USB连接。
命令说明
参数 | 参数说明 |
port-number | listen连接的网络端口号 |
返回值 | 返回值说明 |
①返回具体信息 | ①失败情况下的具体信息 |
- 使用方法:
- hdc tmode port 8710
- 说明: 执行完毕后,远端daemon将会退出并重启,默认启用TCP连接,如果不加上listen端口则listen随机端口。
- fport localnode remotenode 端口转发,指定 主机端口 转发数据到 设备侧端口。
- 使用方法:
- hdc fport tcp:1234 tcp:1080
- rport remotenode localnode 端口转发,指定 设备侧端口 转发数据到 主机端口。
- 使用方法:
- hdc rport tcp:2080 tcp:2345
- fport ls 列出全部转发端口转发任务。
命令说明
参数 | 参数说明 |
无 | 无 |
返回值 | 返回值说明 |
‘tcp:1234 tcp:1080’ [Forward] | 正向端口转发任务 |
‘tcp:2080 tcp:2345’ [Reverse] | 反向端口转发任务 |
- 使用方法:
- hdc fport ls
- fport rm 删除指定端口转发任务。
- 使用方法:
- hdc fport rm tcp:1234 tcp:1080
文件相关的命令
文件部分涉及以下命令:
- file send local remote 发送文件至远端设备。
命令说明
参数 | 参数说明 |
local | 本地待发送文件路径 |
remote | 远程待接收文件路径 |
返回值 | 返回值说明 |
①返回具体信息 | ①失败情况下的具体信息 |
- 使用方法(举例):
- hdc file send E:\a.txt /data/local/tmp/a.txt
- file recv [-a] remote local 从远端设备接收文件至本地。
命令说明
参数 | 参数说明 |
-a | 文件保留时间戳模式 |
local | 本地待接收文件路径 |
remote | 远程待发送文件路径 |
返回值 | 返回值说明 |
①返回具体信息 | ①失败情况下的具体信息 |
- 使用方法(举例):
- hdc file recv /data/local/tmp/a.txt ./a.txt
应用相关的命令
应用部分涉及以下命令:
- install [-r/-d/-g] package 安装OpenHarmony APP package。
命令说明
参数 | 参数说明 |
package | OpenHarmony应用安装包文件名 |
-r | 替换已存在应用 |
-d | 允许降级安装 |
-g | 应用动态授权 |
返回值 | 返回值说明 |
①返回具体信息 | ①失败情况下的具体信息 |
- 使用方法(举例):
- hdc install hwadmin.hap
- uninstall [-k] package 卸载OpenHarmony应用。
命令说明
参数 | 参数说明 |
package | OpenHarmony应用安装包 |
-k | 保留/data/cache |
返回值 | 返回值说明 |
①返回具体信息 | ①失败情况下的具体信息 |
- 使用方法(举例):
- hdc uninstall package
- 获取所有应用
- hdc shell bm dump -a
调试相关的命令
调试涉及以下命令:
- hilog 支持抓取log信息。
- 表17 命令说明
- 参数参数说明无无返回值返回值说明返回具体信息抓取的日志信息
- 抓取hilog日志:
- hdc hilog
- 清理hilog缓存日志:
- hdc shell "hilog -r"
- shell [command] 远程执行命令或进入交互命令环境。
- 表18 命令说明
- 参数参数说明command需要执行的单次命令返回值返回值说明返回具体信息shell后面执行命令的结果信息
- 使用方法:
- hdc shell
- jpid 获取可调试进程列表。
- 使用方法:
- hdc jpid
自动化相关命令
shell命令方式注入UI模拟操作
支持操作类型:点击 双击 长按 慢滑 快滑 拖拽 输入文字 KeyEvent。
配置参数名 | 配置参数含义 | 配置参数取值 | 示例 |
click | 模拟单击操作 | point_x (必选参数,点击x坐标点) | hdc shell uitest uiInput click point_x point_y |
doubleClick | 模拟双击操作 | point_x (必选参数,双击x坐标点) | hdc shell uitest uiInput doubleClick point_x point_y |
longClick | 模拟长按操作 | point_x (必选参数,长按x坐标点) | hdc shell uitest uiInput longClick point_x point_y |
fling | 模拟快滑操作 | from_x (必选参数,滑动起点x坐标) | hdc shell uitest uiInput fling from_x from_y to_x to_y swipeVelocityPps_ stepLength |
swipe | 模拟慢滑操作 | from_x (必选参数,滑动起点x坐标) | hdc shell uitest uiInput swipe from_x from_y to_x to_y swipeVelocityPps_ |
drag | 模拟拖拽操作 | from_x (必选参数,拖拽起点x坐标) | hdc shell uitest uiInput drag from_x from_y to_x to_y swipeVelocityPps_ |
dircFling | 模拟指定方向滑动操作 | direction (可选参数,滑动方向,可选值: [0,1,2,3], 滑动方向: [左,右,上,下],默认值: 0) | hdc shell uitest uiInput dircFling direction swipeVelocityPps_ stepLength |
inputText | 模拟输入框输入文本操作 | point_x (必选参数,输入框x坐标点) | hdc shell uitest uiInput inputText point_x point_y text |
keyEvent | 模拟实体按键事件(如:键盘,电源键,返回上一级,返回桌面等),以及组合按键操作 | keyID (必选参数,实体按键对应ID) | hdc shell uitest uiInput keyEvent keyID |
示例代码1:执行点击事件。
hdc shell uitest uiInput click 100 100
shell
示例代码2:执行双击事件。
hdc shell uitest uiInput doubleClick 100 100
shell
示例代码3:执行长按事件。
hdc shell uitest uiInput longClick 100 100
shell
示例代码4:执行快滑操作。
hdc shell uitest uiInput fling 10 10 200 200 500
shell
示例代码5:执行慢滑操作。
hdc shell uitest uiInput swipe 10 10 200 200 500
shell
示例代码6:执行拖拽操作。
hdc shell uitest uiInput drag 10 10 100 100 500
shell
示例代码7:执行向左滑动操作。
hdc shell uitest uiInput dircFling 0 500
shell
示例代码8:执行向右滑动操作。
hdc shell uitest uiInput dircFling 1 600
shell
示例代码9:执行向上滑动操作。
hdc shell uitest uiInput dircFling 2
shell
示例代码10:执行向下滑动操作。
hdc shell uitest uiInput dircFling 3
shell
示例代码11:执行输入框输入操作。
hdc shell uitest uiInput inputText 100 100 hello
shell
示例代码12:执行返回主页操作。
hdc shell uitest uiInput keyEvent Home
shell
示例代码13:执行返回上一步操作。
hdc shell uitest uiInput keyEvent Back
shell
示例代码14:执行组合键粘贴操作。
hdc shell uitest uiInput keyEvent 2072 2038
shell
常见问题
hdc连接不到设备
- 现象描述 执行 "hdc list targets"命令后结果为:[Empty]
- 解决方法
- 设备没有被识别: 在设备管理器中查看是否有hdc设备,在通用串行总线设备中会有“HDC Device”信息。如果没有,hdc无法连接。此时需要断开并重联PC和OpenHarmony设备之间的USB连接,或者烧写最新的镜像。
- hdc工作异常: 可以执行"hdc kill"或者"hdc start -r"杀掉hdc服务或者重启hdc服务,然后再执行hdc list targets查看是否已经可以获取设备信息。
- hdc与设备不匹配: 如果设备烧写的是最新镜像,hdc也需要使用最新版本。
hdc运行不了
- 现象描述 点击hdc.exe文件无法运行。
- 解决方法
- 运行环境异常: linux版本建议ubuntu 18.04以上 64位,其他相近版本也可;libc++.so引用错误请使用ldd/readelf等命令检查库引用 windows版本建议windows10 64位,如果低版本windows winusb库缺失,请使用zadig更新库。对于复合设备,需要使用zadig工具安装libusb-win32驱动。
- 如何运行hdc.exe: hdc.exe不需要安装,直接放到磁盘上就能使用,也可以添加到环境变量中。通过打开cmd执行hdc命令直接使用。
hdc client如何远程访问hdc server
- 使用场景
- 本地client指定远程server上的设备,执行hdc命令。
- 连接步骤
- 关闭本地sever:hdc kill
- -s [ip:]port -m 启动远程server:hdc -s severIP:8710 -m
- -s [ip:]port command 指定server执行指令:hdc -s severIP:8710 list targets
相关推荐
- Linux 的磁盘系统,和你了解的Windows差别很大
-
我的C盘去哪了?一个系统,如果没有存储,那么也就不能称之为系统。存储性是一个完整系统的重要组成部分。例如AWS最开始的服务就是S3(用来存储数据的云服务),足以见得存储对于一个应用平台是多么的重要。...
- 一文读懂 Linux 硬盘挂载:从问题到解决方案
-
各位互联网大厂的后端开发伙伴们!在咱们日常工作中,操作Linux系统是常有的事儿吧。你们有没有遇到过这样的场景:新添加了一块硬盘,满心欢喜准备用来存储重要数据或者部署新的应用服务,却突然发现不知道...
- 硬盘分区(硬盘分区格式)
-
磁盘(硬盘)分区,可以分C、D、E等分区,大家可能都会用,会根据自已的需要确定所需的空间,但分区是如何工作的呢,内容如下。Windows中有3类:MBR分区:MasterBootRecord,也...
- parted命令工具分区介绍(particle命令)
-
linux系统磁盘分区通常可以使用fdisk和parted命令,当分区大小小于2TB的时候,两种皆可以使用,当分区大于2TB的话,就需要用parted分区。以下介绍parted命令相关使用,以sdb为...
- Linux 服务器上查看磁盘类型的方法
-
方法1:使用lsblk命令lsblk输出说明:TYPE列显示设备类型,如disk(物理磁盘)、part(分区)、rom(只读存储)等。NAME列显示设备名称(如sda、nvme0n1)。TR...
- Linux分区命令fdisk和parted使用介绍
-
摘要:一般情况下,Linux分区都是选择fdisk工具,要求硬盘格式为MBR格式,能支持的最大分区空间为2T。但是目前在实际生产环境中使用的磁盘空间越来越大,呈TB级别增长;而常用的fdisk这个工具...
- linux 分区原理与名词解释(linux操作系统中的分区类型)
-
分区的意义将磁盘分成几份,每份挂在到文件系统的那个目录在linux里的文件系统Ext2:早期的格式,不支持日志功能Ext3:ext2改良版,增加了日志功能,是最基本且最常用的使用格式了Ext4:针对e...
- linux 分区合并(linux合理分区)
-
查看虚拟机当前磁盘挂载情况fdisk-l选择磁盘fdisk/dev/sda查看磁盘分区情况p重新选择分区n选择主分区p保存w创建物理卷pvcreate/dev/sda3查看物理卷信息pvdi...
- 如何在 Linux 系统中永久禁用交换分区 ?
-
Linux操作系统中的交换分区或交换文件充当硬盘上的临时存储区域,当物理内存(RAM)满时,系统使用该存储区域。它用于交换较少使用的内存页,这样系统就不会因为运行应用程序而耗尽物理内存。随着技术的发...
- Linux 如何知道硬盘已用多少空间、未用多少空间
-
刚出社会时,去了一家公司上班,老板为了省钱,买的服务器是低配的,硬盘大小只有40G,有一次网站突然不能访问了,排查半天才知道原来服务器的硬盘空间已用完,已无可用空间。第一步是查看硬盘的使用情况,第二步...
- 用Linux系统管理磁盘空间 就该这么来
-
要想充分有效的管理使用Linux系统中的存储空间,用户必须要做的就是双管齐下,一边扩充空间一边限制空间。不得不说的就是很多时候磁盘空间就像水资源,需节制水流。说到要如何实现限制空间就离不开使用LVM技...
- Windows 11 磁盘怎么分区?(windows11磁盘怎么分区)
-
Windows11磁盘分区技术解析与操作指南:构建高效存储体系一、磁盘分区的技术本质与系统价值磁盘分区作为存储系统的基础架构,通过逻辑划分实现数据隔离与管理优化。Windows11采用NTF...
- linux上创建多个文件分区,格式化为 ext2、ext3、ext4、XFS 文件
-
以下是在Linux系统上创建多个20GB文件分区并格式化为不同文件系统的分步指南:步骤1:创建基础文件(4个20GB文件)bash#创建4个20GB稀疏文件(实际占用空间随写入量增长)ddif=/...
- 救命的U盘低格哪家最强?(低格优盘)
-
周二时有位童鞋留言说U盘之前做过引导盘,现在格式化不了,用各种工具都不行,而且因为U盘厂商的关系,查不到U盘主控,无法量产恢复,特来求助。小编花了点时间特意弄坏一个U盘分区,终于试出方法了,特来分享一...
- Linux 查看硬件磁盘存储大小和磁盘阵列(RAID)的组合方式
-
一、查看硬件磁盘存储大小查看所有磁盘信息:#lsblk该命令会列出所有磁盘(如/dev/sda、/dev/nvme0n1)及其分区和挂载点。查看磁盘总容量:fdisk-l#或parted-...
你 发表评论:
欢迎- 一周热门
-
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
手机如何设置与显示准确时间的详细指南
-
NAS:DS video/DS file/DS photo等群晖移动端APP远程访问的教程
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
一加手机与电脑互传文件的便捷方法FileDash
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)