鸿蒙HarmonyOS实战开辟:调试的下令行工具-hdc

打印 上一主题 下一主题

主题 759|帖子 759|积分 2277

 鸿蒙NEXT开辟实战往期必看文章:
一分钟相识”纯血版!鸿蒙HarmonyOS Next应用开辟!
“非常具体的” 鸿蒙HarmonyOS Next应用开辟学习路线!(从零根本入门到精通)
HarmonyOS NEXT应用开辟案例实践总联合(一连更新......)
HarmonyOS NEXT应用开辟性能优化实践总结(一连更新......)

hdc(HarmonyOS Device Connector)是为开辟人员提供的用于调试的下令行工具,通过该工具可以在windows/linux/mac系统上与设备举行交互。
环境准备

hdc工具通过HarmonyOS SDK获取,存放于SDK的toolchains目次下,首次使用按照如下提示配置环境变量。
配置环境变量HDC_SERVER_PORT

Windows环境变量设置方法
此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量中,添加HDC端口变量名为:HDC_SERVER_PORT,变量值可设置为任意未被占用的端口,如7035。


环境变量配置完成后,关闭并重启DevEco Studio。
macOS环境变量设置方法

  • 打开终端工具,执行以下下令,根据输出结果分别执行差别下令。
    1. echo $SHELL
    复制代码

    • 如输出结果为/bin/bash,则执行以下下令,打开.bash_profile文件。
      1. vi ~/.bash_profile
      复制代码
    • 如输出结果为/bin/zsh,则执行以下下令,打开.zshrc文件。
      1. vi ~/.zshrc
      复制代码

  • 单击字母“i”,进入Insert模式。
  • 输入以下内容,在PATH路径下添加HDC_SERVER_PORT端口信息。
    1. HDC_SERVER_PORT=7035
    2. launchctl setenv HDC_SERVER_PORT $HDC_SERVER_PORT
    3. export HDC_SERVER_PORT
    复制代码
  • 编辑完成后,单击Esc键,退出编辑模式,然后输入“:wq”,单击Enter键生存。
  • 执行以下下令,使配置的环境变量生效。

    • 如果步调1时打开的是.bash_profile文件,请执行如下下令:
      1. source ~/.bash_profile
      复制代码
    • 如果步调1时打开的是.zshrc文件,请执行如下下令:
      1. source ~/.zshrc
      复制代码

  • 环境变量配置完成后,关闭并重启DevEco Studio。
(可选)配置全局环境变量

说明
如未配置全局环境变量,开辟者可通过下令行进入SDK的toolchains目次,在目次中执行hdc相关下令举行调试。
Windows环境变量设置方法
此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量 > 系统变量中,将SDK的toolchains完备路径添加到Path变量值中,具体路径信息以SDK实际配置路径为准。
以下图示内容以本地SDK的toolchains完备路径$DevEco Studio安装目次/sdk/default/openharmony/toolchains为例:




Linux/macOS环境变量设置方法

  • 打开终端工具,执行以下下令,根据输出结果分别执行差别下令。
    1. echo $SHELL
    复制代码

    • 如输出结果为/bin/bash,则执行以下下令,打开.bash_profile文件。
      1. vi ~/.bash_profile
      复制代码
    • 如输出结果为/bin/zsh,则执行以下下令,打开.zshrc文件。
      1. vi ~/.zshrc
      复制代码

  • 单击字母“i”,进入Insert模式。
  • 输入以下内容,在PATH路径下增加SDK路径信息,具体路径信息以SDK实际配置路径为准。
    以下内容以本地SDK的toolchains完备路径$DevEco Studio安装目次/sdk/default/openharmony/toolchains为例:
    1. HDC_SDK_PATH=/User/username/sdk/HarmonyOS/10/toolchains
    2. launchctl setenv HDC_SDK_PATH $HDC_SDK_PATH # 仅MacOS需要在此执行,Linux无须执行
    3. export PATH=$PATH:$HDC_SDK_PATH
    复制代码
  • 编辑完成后,单击Esc键,退出编辑模式,然后输入“:wq”,单击Enter键生存。
  • 执行以下下令,使配置的环境变量生效。

    • 如果步调1时打开的是.bash_profile文件,请执行如下下令:
      1. source ~/.bash_profile
      复制代码
    • 如果步调1时打开的是.zshrc文件,请执行如下下令:
      1. source ~/.zshrc
      复制代码

全局option相关下令

Option说明-h/help打印hdc帮助信息-v/version打印hdc版本信息-t [connect-key] [command]毗连指定的目标设备,connect-key可通过hdc list targets查询-l [level]指定运行时日记品级,默以为LOG_INFOwait等待设备正常毗连,用于检测设备是否毗连并准备好接收指令checkserver获取client-server版本

  • 显示hdc相关的帮助信息,下令格式如下:
    1. hdc -h/help
    复制代码
    返回值:
       返回值说明 HarmonyOS device connector(HDC) ...
    ---------------------------------global commands:----------------------------------
    -h/help [verbose] - Print hdc help, 'verbose' for more other cmds
    ...(此处省略具体帮助信息)
    hdc下令使用帮助信息使用方法:
    1. hdc -h 或 hdc help
    复制代码
  • 显示hdc的版本信息,下令格式如下:
    1. hdc -v/version
    复制代码
    返回值:
       返回值说明Ver: X.X.Xahdc(SDK)的版本信息使用方法:
    1. hdc -v 或 hdc version
    复制代码
  • 毗连单台设备时,执行下令无需指定设备标识符;毗连了多台设备时,每次执行下令时需要指定目标设备的标识符,下令格式如下:
    1. hdc -t [connect-key] [command]
    复制代码
    参数:
       参数名说明connect-key设备标识符commandhdc支持的下令
说明
connect-key为每个设备唯一的标识符。如果通过usb毗连,标识符为序列号;如果通过网络毗连设备,标识符为“IP地点:端标语”;
返回值:
返回值说明下令执行返回内容请参考对应下令的返回值[Fail]Not match target founded, check connect-key please没有找到与connect-key匹配的设备[Fail]Device not founded or connected设备未找到或尚未毗连[Fail]ExecuteCommand need connect-key? please confirm a device by help info多设备毗连时需要指定一个设备Unknown operation command...不支持的下令 使用方法
该方法需要与具体的操作下令搭配使用,下面以shell下令举例:
  1. hdc list targets // 查询已连接的所有目标设备的connect-key
  2. hdc -t [connect-key] shell // -t后面添加的connect-key需要替换为指定的设备标识符
复制代码

  • 指定运行时日记品级,默以为LOG_INFO,下令格式如下:
    1. hdc -l [level] [command]
    复制代码
    参数:
       参数说明[level] 指定运行时日记品级
    0:LOG_OFF
    1:LOG_FATAL
    2:LOG_WARN
    3:LOG_INFO
    4:LOG_DEBUG
    5:LOG_ALL
    commandhdc支持的下令返回值:
       返回值说明下令执行返回内容请参考对应下令的返回值LOG日记信息对应指定的运行时品级日记打印使用方法:
    1. hdc -l 5 shell ls
    复制代码
  • 等待设备正常毗连,下令格式如下:
    1. hdc wait // 等待设备正常连接
    2. hdc -t connect-key wait // 等待指定的设备正常连接,connect-key需要替换为指定的设备标识符
    复制代码
    返回值:
       返回值说明无hdc wait下令执行后,识别到正常毗连的设备后结束使用方法:
    1. hdc wait
    2. hdc -t connect-key wait
    复制代码
  • 获取client-server版本,下令格式如下:
    1. hdc checkserver
    复制代码
    返回值:
       返回值说明Client version: Ver: X.X.Xa, Server version: Ver: X.X.Xaclient-server版本号使用方法:
    1. hdc checkserver
    复制代码
查询设备列表相关下令

下令说明list targets [-v]查询已毗连的所有目标设备,添加-v选项,则会打印设备具体信息 显示所有已毗连的设备列表,下令格式如下:
  1. hdc list targets[-v]
复制代码
返回值:
返回值说明设备信息已毗连的设备列表信息[Empty]没有查询到设备信息 使用方法:
  1. hdc list targets
  2. hdc list targets -v
复制代码
服务历程相关下令

下令说明target mount以读写模式挂载系统分区(user不可用)target boot [-bootloader|-recovery]重启目标设备,使用-bootloader参数重启后进入fastboot模式,使用-recovery参数重启后进入recovery模式target boot [MODE]重启目标设备,加参数重启后进入相应的模式,其中MODE为/bin/begetctl下令中reboot支持的参数smode [-r]授予设备端hdc后台服务历程root权限, 使用-r参数取消授权(user不可用)kill [-r]终止hdc服务历程,使用-r参数触发服务历程重新启动start [-r]启动hdc服务历程,使用-r参数触发服务历程重新启动

  • 以读写模式挂载系统分区,下令格式如下:
    1. hdc target mount
    复制代码
    返回值:
       返回值说明Mount finish挂载成功[Fail]Mount failed挂载失败使用方法:
    1. hdc target mount
    复制代码
  • 重启目标设备,下令格式如下:
    1. target boot [-bootloader|-recovery]
    2. target boot [MODE]
    复制代码
    参数:
       参数名说明不加参数重启设备-bootloader重启后进入fastboot模式-recovery重启后进入recovery模式MODE重启后进入MODE模式,MODE为/bin/begetctl下令中reboot支持的参数, 可通过hdc shell "/bin/begetctl -h | grep reboot"查看使用方法:
    1. hdc target boot -bootloader // 重启后进入fastboot模式
    2. hdc target boot -recovery // 重启后进入recovery模式
    3. hdc target boot shutdown // 关机
    复制代码
  • 授予设备端hdc后台服务历程root权限,下令格式如下:
    1. hdc smode [-r]
    复制代码
    返回值:
       返回值说明无返回值授予权限成功[Fail]具体失败信息授予权限失败使用方法:
    1. hdc smode
    2. hdc smode -r // 取消root权限
    复制代码
  • 终止hdc服务历程,下令格式如下:
    1. hdc kill [-r]
    复制代码
    返回值:
       返回值说明Kill server finish服务历程终止成功[Fail]具体失败信息服务历程终止失败使用方法:
    1. hdc kill
    2. hdc kill -r // 重启并终止服务进程
    复制代码
  • 启动hdc服务历程,下令格式如下:
    1. hdc start [-r]
    复制代码
    返回值:
       返回值说明无返回值服务历程启动成功[Fail]具体失败信息服务历程启动失败使用方法:
    1. hdc start
    2. hdc start -r // 服务进程启动状态下,触发服务进程重新启动
    复制代码
网络相关下令

下令说明fport ls列出全部转发端口转发任务fport localnode remotenode设置正向端口转发任务:监听“主机端口”,接收哀求并举行转发, 转发到“设备端口”rport remotenode localnode设置反向端口转发任务:监听“设备端口”,接收哀求并举行转发,转发到“主机端口”fport rm taskstr删除指定的端口转发任务tmode usb该下令不会实际操作设备毗连通道,需要在设备设置界面通过USB调试开关举行设置tmode port [port-number]打开设备网络毗连通道:设备端daemon历程会重启,已建立的USB毗连会中断,需要重新毗连tmode port close关闭设备无线毗连通道:设备端daemon历程会重启,已建立的USB毗连会中断,需要重新毗连tconn [IP]:[port] [-remove]指定毗连设备:通过“IP地点:端标语”来指定毗连的设备,使用-remove参数断开毗连

  • 列出全部转发端口转发任务,下令格式如下:
    1. hdc fport ls
    复制代码
    返回值:
       返回值说明tcp:1234 tcp:1080 [Forward]正向端口转发任务tcp:2080 tcp:2345 [Reverse]反向端口转发任务[empty]无端口转发任务使用方法:
    1. hdc fport ls
    复制代码
  • 设置正向端口转发任务,执行后将设置指定的“主机端口”转发数据到“设备端口”转发任务,下令格式如下:
    1. hdc fport localnode remotenode
    复制代码
    返回值:
       返回值说明Forwardport result:OK端口转发任务设置正常[Fail]Incorrect forward command端口转发任务设置失败,端口转发参数错误[Fail]TCP Port listen failed at XXXX端口转发任务设置失败,本地转发端口被占用使用方法:
    1. hdc fport tcp:1234 tcp:1080
    复制代码
  • 设置反向端口转发任务,执行后将设置指定的“设备端口”转发数据到“主机端口”转发任务,下令格式如下:
    1. hdc rport remotenode localnode
    复制代码
    返回值:
       返回值说明Forwardport result:OK端口转发任务设置正常[Fail]Incorrect forward command端口转发任务设置失败,端口转发参数错误[Fail]TCP Port listen failed at XXXX端口转发任务设置失败,本地转发端口被占用使用方法:
    1. hdc rport tcp:1234 tcp:1080
    复制代码
  • 删除端口转发任务,执行后将指定的转发任务删除,下令格式如下:
    1. hdc fport rm taskstr
    复制代码
    参数:
       参数说明taskstr端口转发任务,形如 tcp:XXXX tcp:XXXX返回值:
       返回值说明Remove forward ruler success, ruler:tcp:XXXX tcp:XXXX端口转发任务删除正常[Fail]Remove forward ruler failed, ruler is not exist tcp:XXXX tcp:XXXX端口转发任务删除失败,不存在指定的转发任务使用方法:
    1. hdc fport rm tcp:1234 tcp:1080
    复制代码
  • 打开设备USB毗连通道,下令格式如下:
    1. hdc tmode usb
    复制代码
    使用方法:
    1. hdc tmode usb
    复制代码
    说明
    该下令不会实际操作设备毗连通道,需要在设备设置界面通过USB调试开关举行设置。
  • 打开设备网络毗连通道,下令格式如下:
    1. hdc tmode port [port-number]
    复制代码
    参数:
       参数参数说明port-number监听毗连的网络端标语,范围:1~65536返回值:
       返回值说明Set device run mode successful.打开成功[Fail]ExecuteCommand need connect-key打开失败,设备列表无设备,无法打开设备无线调试通道[Fail]Incorrect port range端标语超出可设置范围(1~65536)使用方法:
    1. hdc tmode port 1234
    复制代码
    注意
    切换前,请确保条件满足:远端设备与近端执行机处于同一网络,且执行机可ping通远端设备IP。
    如不满足以上条件请勿使用该下令举行切换。
    说明
    执行完毕后,远端daemon历程将会退出并重启,USB毗连将会断开,需要重新毗连。
  • 关闭设备无线毗连通道,下令格式如下:
    1. hdc tmode port close
    复制代码
    返回值:
       返回值说明[Fail]ExecuteCommand need connect-key设备列表无设备,无法执行下令使用方法:
    1. hdc tmode port close
    复制代码
    说明
    执行完毕后,远端daemon历程将会退出并重启,USB毗连将会断开,需要重新毗连。
  • 通过TCP毗连指定的设备,下令格式如下:
    1. hdc tconn [IP]:[port] [-remove]
    复制代码
    参数:
       参数参数说明[IP]:[port]设备的IP地点与端标语-remove【可选】断开指定设备的毗连返回值:
       返回值说明Connect OK毗连成功[Info]Target is connected, repeat opration设备当前已毗连[Fail]Connect failed毗连失败使用方法:
    1. hdc tconn 192.168.0.1:8888
    2. hdc tconn 192.168.0.1:8888 -remove // 断开指定网络设备连接
    复制代码
文件相关下令

下令说明file send localpath remotepath从本地发送文件至远端设备file recv remotepath localpath从远端设备发送文件至本地

  • 从本地发送文件至远端设备,下令格式如下:
    1. hdc file send localpath remotepath
    复制代码
    参数:
       参数名说明localpath本地待发送的文件路径remotepath长途待接收的文件路径返回值:
    文件发送成功,返回传输成功的结果信息。文件发送失败,返回传输失败的具体信息。
    使用方法:
    1. hdc file send E:\example.txt /data/local/tmp/example.txt
    复制代码
  • 从远端设备发送文件至本地,下令格式如下:
    1. hdc file recv remotepath localpath
    复制代码
    参数:
       参数名说明localpath本地待接收的文件路径remotepath长途待发送的文件路径返回值:
    文件接收获功,返回传输成功的结果信息。文件接收失败,返回传输失败的具体信息。
    使用方法:
    1. hdc file recv /data/local/tmp/a.txt ./a.txt
    复制代码
应用相关下令

下令说明install src安装指定的应用文件uninstall packageName卸载指定的应用包package包名

  • 安装APP package,下令格式如下:
    1. hdc install [-r|-s] src
    复制代码
    参数:
       参数名说明src应用安装包的文件名-r替换已存在应用(.hap)-s安装一个共享包(.hsp)返回值:
       返回值说明AppMod finish成功环境下返回安装信息和AppMod finish具体安装失败原因失败环境下返回具体安装失败信息使用方法:
    以安装example.hap包为例:
    1. hdc install E:\example.hap
    复制代码
  • 卸载应用,下令格式如下:
    1. hdc uninstall [-k|-s] packageName
    复制代码
    参数:
       参数名说明packageName应用安装包-k生存/data和/cache目次-s卸载共享包返回值:
       返回值说明AppMod finish成功环境下返回卸载信息和AppMod finish具体卸载失败原因失败环境下返回具体卸载失败信息使用方法:
    以卸载com.example.hello包为例:
    1. hdc uninstall com.example.hello
    复制代码
调试相关下令

下令说明jpid显示设备上所有开启了JDWP调试协议的应用的PIDtrack-jpid [-a|-p]实时显示设备上开启了JDWP调试协议的应用的PID和应用名,不加参数只显示debug的应用的历程,使用-a参数显示debug和release应用的历程,使用-p参数不显示debug和release的标签hilog [options]打印设备端的日记信息,options表示hilog支持的参数,可通过hdc hilog -h查阅支持的参数列表shell [command]交互下令,command表示需要执行的单次下令,差别类型或版本的系统支持的command下令有所差别,可以通过hdc shell ls /system/bin查阅支持的下令列表

  • 抓取log信息,下令格式如下:
    1. hdc hilog [options]
    复制代码
    参数:
       参数说明[options]hilog支持的参数,可通过hdc hilog -h查阅支持的参数列表返回值:
       返回值说明返回具体信息抓取的日记信息使用方法:
    1. hdc hilog
    2. hdc shell "hilog -r" // 清理hilog缓存日志
    复制代码
  • 显示设备上所有开启了JDWP调试协议的历程的PID,下令格式如下:
    1. hdc jpid
    复制代码
    返回值:
       返回值说明历程号列表开启了JDWP调试协议的应用的PID[empty]无开启了JDWP调试协议的历程使用方法:
    1. hdc jpid
    复制代码
  • 实时显示设备上开启了JDWP调试协议的历程的PID和应用名,下令格式如下:
    1. track-jpid [-a|-p]
    复制代码
    参数:
       参数说明不加参数只显示debug的应用的历程号和包名/历程名-a显示debug和release应用的历程号和包名/历程名-p显示debug和release应用的历程号和包名/历程名,但不显示debug和release的标签返回值:
       返回值说明历程号和包名/历程名列表-[empty]不加参数时表示无开启了JDWP调试协议的debug应用的历程,使用-a或-p参数时表示无开启了JDWP调试协议的历程使用方法:
    1. hdc track-jpid
    复制代码
  • 交互下令,下令格式如下:
    1. hdc shell [command]
    复制代码
    参数:
       参数说明[command]调试下令行可用下令,具体可用下令help来获取全部下令提示返回值:
       返回值说明交互下令返回内容返回内容详情请拜见其他交互下令返回内容/bin/sh: XXX : inaccessible or not found不支持的交互下令使用方法:
    1. hdc shell ps -ef
    2. hdc shell help -a // 查询全部可用命令
    复制代码
安全相关下令

下令说明keygen FILE天生一个新的秘钥对,并将私钥和公钥分别生存到FILE和FILE.pub,其中文件名FILE可自定义

  • 天生一个新的秘钥对,下令格式如下:
    1. hdc keygen FILE
    复制代码
    参数:
       参数说明FILEFILE为自定义的文件名使用方法:
    1. hdc keygen key // 在当前目录下生成key和key.pub文件
    复制代码
常见场景

USB毗连场景

环境确认
确认项正常异常处置处罚USB调试选项开启设备的USB调试模式如无法自动开启,请实验重启设备USB数据毗连线使用USB数据毗连线毗连到调试PC的USB接口如使用低带宽、无数据通讯功能的USB毗连线可能导致无法识别HDC设备,建议更换官方USB数据毗连线USB接口主板直出USB接口(台式机为后面板的USB接口,笔记本为机身的USB接口)如使用转接头/拓展坞/台式机前面板USB接口,存在带宽低和USB同步异常等问题,会导致频繁断连,保举使用直连方式毗连PC和设备hdc环境变量终端下令行输入hdc -h有回显帮助信息内容拜见环境准备章节驱动毗连HDC设备后,设备管理器通用串行总线设备存在设备"HDC Device"或"HDC Interface"请安装驱动 毗连步调
  1. hdc shell //USB直连需要确认设备非处在tcp连接模式,直接连接即可。
复制代码
TCP毗连场景

环境确认
确认项正常异常处置处罚网络毗连PC、手机设备处于同一网络毗连同一WiFi或手机开启热点网络状态telnet IP:port正常,网速稳定请选择稳定的网络毗连方式hdc环境变量终端下令行输入hdc有回显帮助信息拜见环境准备章节 毗连步调

  • PC通过USB毗连设备。
  • 将设备通过USB模式切换至tcp模式,执行以下下令:
    1. hdc tmode port 8710 //port 后加指定端口号(可自行设置)
    复制代码
  • 通过tcp毗连设备(需要事先知道设备IP),执行以下下令:
    1. hdc tconn IP:8710
    复制代码
    IP可在手机查看设备侧的IP地点,端标语为上一步指定的,默认值为8710。
  • 查看已毗连设备,执行以下下令:
    1. hdc list targets
    复制代码
    返回值为IP:port情势即为毗连成功。
  • (可选)TCP模式切换回USB模式,在已毗连TCP模式状态下,执行以下下令:
    1. hdc tmode usb
    复制代码
    切换后将恢复USB模式。
长途毗连场景

长途毗连布局如图所示:


服务端配置
服务端通过USB毗连到对应的HDC设备后执行以下下令:
  1. hdc kill // 关闭本地hdc服务
  2. hdc -s IP:8710 -m // 启动网络转发的hdc服务
  3. // 其中IP为服务端自身的IP,windows可通过ipconfig查询,unix系统可通过ifconfig查询
  4. // 8710为默认端口号,也可设置为其他端口号如:18710
  5. // 启动后服务端将打印日志
复制代码
客户端毗连
客户端毗连需要确保可以连通服务端IP地点,满足前述条件后执行以下下令:
  1. hdc -s IP:8710 [command] // 其中IP为服务端IP,
  2. // command可以为任意hdc可用命令,例如list targets
复制代码
日记获取场景

server端日记
执行以下下令开启日记获取:
  1. hdc kill ​
  2. hdc -l5 start
复制代码
网络到的完备日记存放路径:
平台路径备注Windows%temp%\hdc.log 实际路径参考,实际使用请替换用户名变量
C:\Users\用户名\AppData\Local\Temp\hdc.log
Linux/tmp/hdc.log-MacOS$TMPDIR/hdc.log- 设备端日记
开启hilog日记工具,获取对应日记,下令如下:
  1. hdc shell hilog -w start // 开启hilog日志落盘
  2. hdc shell ls /data/log/hilog // 查看已落盘hilog日志
  3. hdc file recv /data/log/hilog // 获取hilog已落盘日志(包含内核日志)
复制代码
常见问题

设备无法识别

征象描述
下令行执行hdc list targets下令后,返回结果为[empty]。
可通过以下方式排查。


  • 环境一:查看设备管理是否显示HDC设备。
    Windows环境:
    在设备管理器>通用串行总线设备中是否显示HDC Device(单一端口设备)或HDC Interface(复合端口设备)。
    Linux环境:
    在下令行执行lsusb,在返回的内容中查看是否有HDC Device(单一端口设备)或HDC Interface(复合端口设备)。
    MacOS环境:
    使用系统信息或系统概述来查看USB设备,步调如下:

    • 按住键盘上的Option键,点按菜单。
    • 选取系统信息或系统概述。
    • 在随后出现的窗口中,选择左边的USB。
    • 在随后显示的设备树查看是否有HDC Device(单一端口设备)或HDC Interface(复合端口设备)。
    可采取的解决方法
    以上环境如没有显示HDC设备,则说明无法识别设备,可以根据实际场景实验以下方法:
       

    • 使用其他USB物理接口。
    • 更换USB数据毗连线。
    • 使用其他盘算机调试。
    • 设备开启USB调试模式。
    • 设备出现弹窗点击允许调试。
    • 如可通过TCP模式毗连,可执行

      hdc tmode usb下令恢复USB毗连。
    • 设备恢复出厂设置。

  • 环境二:存在USB设备,但是驱动破坏,显示"HDC Device"⚠警告图标。
    征象描述:该问题常见于Windows环境,征象为设备管理器>通用串行总线设备中,HDC Device显示为黄标警告,且描述信息为该设备无法正常工作。可实验重新安装驱动解决,如重新安装驱动无法解决,可以实验更换USB毗连数据线/拓展坞/USB接口。
    重新安装驱动的方法

    • 打开设备管理器,右键点击存在警告图标的HDC Device;
    • 出现的菜单中点击更新驱动程序;
    • 出现的提示窗口(第1/3个)中,选取欣赏我的电脑以查找驱动程序;
    • 出现的提示窗口(第2/3个)中,选取让我从盘算机上的可用驱动程序列表中选取;
    • 出现的提示窗口(第3/3个)中,取消勾选显示兼容硬件,选择厂商:WinUSB设备,选择型号:WinUSB设备,选择完成后点击下一步按钮。

  • 环境三:毗连设备时出现[Fail]Failed to communicate with daemon。
    征象描述:下令行执行hdc相关下令,执行失败返回[Fail]Failed to communicate with daemon。
    可能存在以下原因,可参考排查:

    • hdc或SDK版本与设备不匹配: 如果设备更新到最新版本,可更新hdc或SDK工具至最新版本。
    • 端口被占用:
      常见于hdc和hdc_std使用同一端口,同时运行时HDC_SERVER_PORT设置的端口相互辩论(未设置则使用默认端口8710,仍旧会辩论),注意只运行其中一个。其他软件占用hdc默认端口也会导致该问题发生。

  • 环境四:毗连设备时出现Connect server failed。
    出现该征象,可能有如下原因:

    • 端口抢占
      解决方法如下:

      • 排查自带hdc的软件历程。
        包罗自带hdc的软件(DevEco Studio、DevEco Testing),如存在请关闭这些软件后再执行hdc相关下令。
      • 查询HDC端口环境。
        以设置的HDC_SERVER_PORT为8710端口为例,在差别平台查询下令如下:
        Unix:
        1. netstat -an |grep 8710
        复制代码
        Windows:
        1. netstat -an |findstr 8710
        复制代码
        如存在抢占的软件,可以关闭该软件历程大概更换HDC_SERVER_PORT环境变量为其他端标语。
      • 排查未关闭的其他版本hdc server
        Windows:
        使用任务管理器>具体信息查询hdc.exe历程,右键打开文件所在位置,核对位置是否为配置的环境变量中的hdc文件位置,如果不同等,可实验结束hdc.exe历程(hdc kill大概任务管理器直接结束历程)并重新执行hdc下令。(关闭hdc server后执行hdc下令会重新启动hdc server)
        Unix:
        使用ps -ef |grep hdc查询hdc后台server历程,核对历程启动位置是否为配置的环境变量中的hdc文件位置,如果不同等,可实验结束hdc历程(hdc kill大概kill -9 hdc历程的PID)并重新执行hdc下令。(关闭hdc server后执行hdc下令会重新启动hdc server)

    • 注册表异常
      解决方法:清理注册表,步调如下:

      • 同时按下Win+R键,启动运行工具,输入栏输入regedit打开注册表。
      • 注册表地点栏输入以下内容并按下回车,即可进入USB类设备驱动程序的注册表。
        1. 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{88bae032-5a81-49f0-bc3d-a4ff138216d6}
        复制代码
      • 找到UpperFilters键,右键修改编辑,备份并清空其中数值数据内容(如清空后无法解决问题可依照备份恢复)。
      • 刷新设备管理器/插拔USB接口/重启盘算机。


hdc无法运行

征象描述
使用下令行执行hdc.exe/hdc 二进制文件无法运行。
可能原因&解决方法


  • 运行环境异常
    Linux运行环境:建议使用Ubuntu18.04及以上64版本,如发送libc++.so引用错误请使用ldd/readelf等下令检查库引用。
    MacOS运行环境:建议使用MacOS 11及以上版本。
    Windows运行环境:建议使用Windows10/Windows11 64位版本,如低版本缺失WinUSB库/驱动,请使用Zadig工具更新。对于符合设备,需要使用Zadig工具安装libusb-win32驱动。详情请见:Zadig链接。
  • 运行方式不当:请使用下令行依照精确下令运行hdc工具,而非鼠标双击文件。
其他问题排查常用步调


  • 下令行执行hdc list targets查看返回值。
  • 查看设备管理是否有HDC Device。
  • 执行hdc kill关闭server后,执行hdc -l5 start网络日记(hdc.log位于执行端TEMP目次,差别平台目次位置存在差别,可参考日记获取场景)。
  • 通过hdc.log日记定位相关问题。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表