百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

hdc使用手册

nanshan 2025-01-12 17:27 31 浏览 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
②Nothing to do…

①设备不存在
②附加的命令不存在


  • 使用方法:
  • 该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选项,则会打印设备详细信息

返回值

返回值说明

①返回设备信息
②[Empty]

①已经连接的设备列表信息
②没有查询到设备信息

使用方法:

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坐标点)
point_y (必选参数,点击y坐标点)

hdc shell uitest uiInput click point_x point_y

doubleClick

模拟双击操作

point_x (必选参数,双击x坐标点)
point_y (必选参数,双击y坐标点)

hdc shell uitest uiInput doubleClick point_x point_y

longClick

模拟长按操作

point_x (必选参数,长按x坐标点)
point_y (必选参数,长按y坐标点)

hdc shell uitest uiInput longClick point_x point_y

fling

模拟快滑操作

from_x (必选参数,滑动起点x坐标)
from_y(必选参数,滑动起点y坐标)
to_x(必选参数,滑动终点x坐标)
to_y(必选参数,滑动终点y坐标)
swipeVelocityPps_ (可选参数,滑动速度,取值范围: 200-40000, 默认值: 600, 单位: px/s)
stepLength(可选参数,滑动步长,默认值:滑动距离/50, 单位: px)

hdc shell uitest uiInput fling from_x from_y to_x to_y swipeVelocityPps_ stepLength

swipe

模拟慢滑操作

from_x (必选参数,滑动起点x坐标)
from_y(必选参数,滑动起点y坐标)
to_x(必选参数,滑动终点x坐标)
to_y(必选参数,滑动终点y坐标)
swipeVelocityPps_ (可选参数,滑动速度,取值范围: 200-40000, 默认值: 600, 单位: px/s))

hdc shell uitest uiInput swipe from_x from_y to_x to_y swipeVelocityPps_

drag

模拟拖拽操作

from_x (必选参数,拖拽起点x坐标)
from_y(必选参数,拖拽起点y坐标)
to_x(必选参数,拖拽终点x坐标)
to_y(必选参数,拖拽终点y坐标)
swipeVelocityPps_ (可选参数,滑动速度,取值范围: 200-40000, 默认值: 600, 单位: px/s))

hdc shell uitest uiInput drag from_x from_y to_x to_y swipeVelocityPps_

dircFling

模拟指定方向滑动操作

direction (可选参数,滑动方向,可选值: [0,1,2,3], 滑动方向: [左,右,上,下],默认值: 0)
swipeVelocityPps_ (可选参数,滑动速度,取值范围: 200-40000, 默认值: 600, 单位: px/s)
stepLength(可选参数,滑动步长,默认值:滑动距离/50, 单位: px)

hdc shell uitest uiInput dircFling direction swipeVelocityPps_ stepLength

inputText

模拟输入框输入文本操作

point_x (必选参数,输入框x坐标点)
point_y (必选参数,输入框y坐标点)
input(输入文本)

hdc shell uitest uiInput inputText point_x point_y text

keyEvent

模拟实体按键事件(如:键盘,电源键,返回上一级,返回桌面等),以及组合按键操作

keyID (必选参数,实体按键对应ID)
keyID2 (可选参数,实体按键对应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

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: