鸿蒙设备连接器——HDC

星蔚星
发布于 2021-9-9 21:13
浏览
2收藏

HDC-鸿蒙设备连接器

  • 简介
  • 架构
  • 目录
    • pc端编译说明
    • 预制pc端下载说明
      • 1.通过git clone方式下载(建议)
      • 2.通过网页形式下载
      • 3.支持环境
    • 命令帮助
  • 使用问题自查说明
  • FAQ

简介

HDC(Harmony Device Connector) 是OpenHarmony为开发人员提供的用于设备连接调试的命令行工具,pc端开发机使用命令行工具hdc_std(为方便起见,下文统称hdc),该工具需支持部署在Windows/Linux/Mac等系统上与鸿蒙设备(或模拟器)进行连接调试通信。PC端hdc工具需要针对以上开发机操作系统平台分别发布相应的版本,设备端hdc daemon需跟随设备镜像发布包括对模拟器进行支持。下文将介绍hdc的常用命令及使用举例。

架构

hdc主要有三部分组成:

  1. hdc client部分:运行于开发机上的客户端,用户可以在开发机命令终端(windows cmd/linux shell)下请求执行相应的hdc命令,运行于开发机器,其它的终端调试IDE也包含hdc client。
  2. hdc server部分:作为后台进程也运行于开发机器,server管理client和设备端daemon之间通信包括连接的复用、数据通信包的收发,以及个别本地命令的直接处理。
  3. hdc daemon部分:daemon部署于鸿蒙设备端作为守护进程来按需运行,负责处理来自client端的请求。

目录

/developtools
├── hdc_standard      # hdc代码目录
│   └── src
│       ├── common    # 设备端和host端公用的代码目录
│       ├── daemon    # 设备端的代码目录 
│       ├── host      # host端的代码目录
│       ├── test      # 测试用例的代码目录 
│   └── prebuilt      # 预编译目录,存放预编译的二进制文件

pc端编译说明

hdc pc端可执行文件编译步骤:

  1. 工程准备:更新下载整个工程,使得工程包含https://gitee.com/openharmony/build/pulls/89 等必要的提交。
  2. 编译命令:调试编译命令 在整个工程编译命令的基础上增加 “–build-target build_ohos_sdk --gn-args build_ohos_sdk=true” 参数即可。
  3. 编译:在目标开发机上运行上面调整好的sdk编译命令, 正常编译hdc_std会输出到sdk平台相关目录下; 注意: ubuntu环境下只能编译windows/linux版本工具,mac版需要在macos开发机上编译。

预制pc端下载说明

1.通过git clone方式下载(建议)

下载命令格式:  git clone git@gitee.com:projectname/developtools_hdc_standard.git
git clone https://gitee.com/projectname/developtools_hdc_standard.git
其中 projectname为 本仓所在的开源社区项目英文名(譬如: openharmony)
完整命令示意:  git clone git@gitee.com:openharmony/developtools_hdc_standard.git
或     git clone https://gitee.com/openharmony/developtools_hdc_standard.git

2.通过网页形式下载 通过网页形式下载prebuilt,请使用类似如下URL打开网页: https://gitee.com/openharmony/developtools_hdc_standard/blob/master/prebuilt/windows/hdc-std.exe 点击中间下载方式进行下载,windows版本文件大小在5M左右,linux版本在2M左右,请勿使用右击另存为方式进行保存下载,下载后检查文件大小(说三遍)。

3.支持环境 linux版本建议ubuntu 16.04以上 64位,其他相近版本也可;libc++.so引用错误请使用ldd/readelf等命令检查库引用 windows版本建议windows10 64位,如果低版本windows winusb库缺失,请使用zadig更新库。

命令帮助

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 以读写模式挂载/system等分区举例: 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地址:端口号】来指定连接的设备举例: 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:8710
    

使用问题自查说明

工具使用过程中碰到问题,可以参考如下流程自助排查:

  • step1: 先检查pc(host)端hdc_std 和L2设备端hdcd版本是否一致(-v 查看版本):
    • step1a: 版本不一致请更新使用一致版本再验证;
    • step1b: 版本一致请继续下面排查step2步骤;
  • step2: 检查pc(host)端设备管理器设备信息是否正常(设备是否正常加载显示、驱动、id是否正常):
    • step2a: 设备管理器设备异常或无设备, 请结合板测试设备端串口下确认下usb部分设备枚举上报是否异常;
    • step2b: 设备管理器设备正常时, 1)list targets 是否正常;2)hdc_std kill 后重试是否正常;

注意:客户端和设备端版本保持一致(-v参数查看版本)!

注意:客户端和设备端版本保持一致(-v参数查看版本)!

注意:客户端和设备端版本保持一致(-v参数查看版本)!

FAQ

  1. list targets无设备: 请参考上面《使用问题自查说明》小节, 1)检查设备是否连接正常;2)host端设备管理器设备信息是否正常;3)两端工具版本是否一致;4)设备端hdcd是否启动正常;
  2. 同样版本windows下正常,linux下无设备:同问题1同样排查步骤,另外注意在root权限下执行;
  3. windows版本工具无法执行报错:1)确认git lfs正常并使用git clone下载本工具仓预制二进制文件;2)检查文件大小和版本; 3)友情提示:本工具是控制台命令行下执行即可,不需要安装,不要尝试双击运行;

分类
developtools_hdc_standard-master.zip 1.06M 343次下载
已于2021-9-9 21:13:48修改
3
收藏 2
回复
举报
4条回复
按时间正序
/
按时间倒序
愿世界美好环环相扣
愿世界美好环环相扣

L2设备端hdcd版本如何查看呢?

回复
2022-5-27 11:30:31
阡★之★陌
阡★之★陌

讲了一堆概念问题,就没有说下载压缩包后,怎么安装?怎么配,安卓的adb 安装使用都比这讲的清楚;

1
回复
2022-7-28 13:49:40
Juqiang666666
Juqiang666666

pc端编译说明,第2条编译命令,在整个工程编译命令的基础上增加 “–build-target build_ohos_sdk --gn-args build_ohos_sdk=true” 参数之后,编译失败,提示“[OHOS ERROR] ninja: error: unknow target 'build_ohos_sdk'”

1
回复
2022-8-11 16:58:02
Juqiang666666
Juqiang666666 回复了 Juqiang666666
pc端编译说明,第2条编译命令,在整个工程编译命令的基础上增加 “–build-target build_ohos_sdk --gn-args build_ohos_sdk=true” 参数之后,编译失败,提示“[OHOS ERROR] ninja: error: unknow target 'build_ohos_sdk'”

--product-name 为 ohos-sdk,--build-target 可以编译buils_ohos_sdk 

回复
2022-8-12 09:15:10
回复
    相关推荐