OpenHarmony实战:命令行工具hdc安装应用指南

一、工具概述

hdc(OpenHarmony Device Connector)是为开发人员提供的用于设备连接调试的命令行工具,该工具需支持部署在 Windows/Linux/Mac 等系统上与 OpenHarmony 设备(或模拟器)进行连接调试通信。
简言之,hdc 是 OpenHarmony 提供的用于开发人员调试硬件、应用的命令行工具,用在电脑与开发板之间的交互。
适用于 OpenHarmony 应用、硬件开发及测试人员,是每个开发人员的必备、入门工具。

二、环境准备

  1. 环境要求
    本文以 window10 电脑和 Rk3568 开发板为例进行说明。linux 版本建议 ubuntu 18.04 以上 64 位,其他相近版本也可;libc++.so 引用错误请使用 ldd/readelf 等命令检查库引用 windows 版本建议 windows10 64 位,如果低版本 windows winusb 库缺失,请使用 zadig 更新库。

  2. 安装 USB 设备驱动安装
    第一步,连接 PC 与开发板 USB 线 PC 与开发板通过 USB 调试线连接,开发板上运行开源系统主线版本。连接端口如蓝色线缆所示

    第二步,安装 USB 驱动 DriverAssitant 是 RK3568 开发板自带的 USB 驱动。双击 DriverInstall.exe,选择驱动安装。

    第三步,设备管理器查看驱动是否安装成功未连接 USB 先或者驱动未安装成功如图片左边所示,成功则如右边所示,会出现”hdc Device”。

  3. hdc 工具下载

    第一步,下载安装包

    链接:http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist 查找“流水线名称”名称为 ohos-sdk-full, 或者 ohos-sdk-public,点击‘下载链接’,选择‘全量包’

    第二步,解压缩任意一个选择红框中的文件第三步,拷贝至 D:\hdc_bin\目录下注意:无须双击安装

  4. hdc 路径环境配置
    hdc path 环境配置如图所示。我的电脑,右键选择属性,选择“高级系统设置”→ 高级 → 环境设置 → 系统环境变量中的 path→ 输入“D:\hdc_bin”→ 一路“确定”

  5. 至此,hdc 可以正常运行了
    打开 cmd 窗口,执行 hdc shell 就进入命令交互界面。

三、hdc 功能列表

序号命令功能描述成功输出
1hdc -v查看工具版本Ver: 1.1.2a
2hdc -h查看工具帮助OpenHarmony device connector(HDC) ...
3hdc list targets查看已连接设备7001005458323933328a250efe593900
4hdc list targets -v查看连接设备详细信息7001005458323933328a250efe593900 USB Connected localhost
5hdc shell进入命令行交互环境#
6hdc shell mount -o rw,remount挂在系统目录tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=990956k,nr_inodes=247739,mode=755)...
7hdc file send d:\test.txt /data/从 PC 拷入文件到开发板(往设备中推送文件)FileTransfer finish, Size:xxx time:26ms rate:xxxkB/s
8hdc file recv /data/test.txt c:\test.txt从开发板拷出文件到 PC(从设备中拉取文件)FileTransfer finish, Size:xxx time:51ms rate:xxxkB/s
9hdc install D:\test.hap安装 HAP 应用[Info]App install path:D:\test.hap, queuesize:0, msg:install bundle successfully.
AppMod finish
10hdc install -r test.hap重新安装 HAP 应用[Info]App install path:D:\test.hap, queuesize:0, msg:install bundle successfully.
AppMod finish
11hdc uninstall com.example.ohtest卸载已安装应用[Info]App uninstall path:, queuesize:0, msg:uninstall bundle successfully.
AppMod finish
12hdc shell aa start -a com.example.ohtest.MainAbility -b com.example.ohtest启动已安装应用
-a 后面是 Ability 的完整名字
-b 后面是 Bundle 的完整名字
start ability successfully.
13hdc hilog查看日志08-05 19:45:29.912...
14hdc target mount重新挂载/vendor 和/system 分区为可读写Mount finish
15hdc start -r重新启动 hdc 服务进程None
16hdc kill终止 hdc 服务进程Kill server finish
17hdc target boot重启设备None
18hdc shell hilog -w start开始保存日志到文件Persist task [jobid:1] start successfully
18hdc shell hilog -w stop开始保存日志到文件Persist task [jobid:1] stop successfully
19hdc tconn 192.168.0.27:10111TCP 网络连接None

四、hdc 常用命令讲解,未尽命令使用 hdc -h 或者 hdc --help 查看

SnOptionDescriptionExample
1-t key用于指定连接该指定设备识 Keyhdc -t *****(设备 id) shell
2-s socket用于指定服务监听的 socket 配置hdc -s ip:port
3-h/help -v/version用于显示 hdc 相关的帮助、版本信息None
4list targets[-v]显示所有已经连接的目标设备列表,-v 选项显示详细信息hdc list targets
5target mount以读写模式挂载/vendor、/data 等分区,因为安全性问题,需要挂在根目录或者/system 分区请单独使用 'hdc_std shell mount -o rw,remount /'等命令hdc target mount
6smode [off]授予后台服务进程 root 权限, 使用 off 参数取消授权hdc smode
7kill [-r]终止 hdc 服务进程, -r 选项会触发再次重启 hdc serverhdc kill
8start [-r]启动 hdc 服务进程, -r 选项会触发重启 hdc serverhdc start
9tconn 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
10tmode usb执行后设备端对应 daemon 进程重启,并首先选用 usb 连接方式None
11tmode port port-number执行后设备端对应 daemon 进程重启,并优先使用网络方式连接设备,如果连接设备再选择 usb 连接None
12file send local remote从 host 端发送文件至设备端hdc file send E:\a.txt /data/local/tmp/a.txt
13file recv [-a] remote local从设备端拉出文件至本地 host 端hdc file recv /data/local/tmp/a.txt ./a.txt
14install [-r/-d/-g] package安装 OpenHarmony packagehdc install E:\***.hap
15uninstall [-k] package卸载 OpenHarmony 应用None
16hilog支持查看抓取 hilog 调试信息hdc hilog
17shell [command]远程执行命令或进入交互命令环境hdc shell

五、常见问题处理

  1. hdc list targets 查找不到设备
    第一步, 检查 PC 上设备管理器中 USB 驱动是否正常,如果没有正常显示,卸载之前安装的驱动,然后重装驱动,或者更换 USB 线;
    第二步, 检查 PC 上的 hdc 工具版本是否为最新,版本 Ver: 1.1.2a 及以上;
    第三步, 装完驱动后,重启 PC 和开发板;
    第四步, 重启 PC 本地 hdc 服务:

hdc start -r
第五步,杀掉本地服务并重启 PC 侧 hdc 服务:
hdc kill -r
第六步,如果不行,更换开发板。

  1. 从 PC 拷贝文件到开发板失败

hdc file send d:\ohtest.hap /system/
[Fail]Error opening file: read-only file system, path:/system//ohtest.hap
第一步,重新挂在目标目录
hdc shell mount -o rw,remount
第二步,可能目标目录只读,更换其他可读写目录尝试一下
hdc file send d:\ohtest.hap /data/
FileTransfer finish, Size:xxx time:86ms rate:xxxkB/s

  1. 从开发板拷贝文件到 PC 失败

hdc file recv /data/tmp/entry-debug-standard-ark-signed.hap d:
[Fail]Error opening file: operation not permitted, path:d:\entry-debug-standard-ark-signed.hap
可能是磁盘根目录没有权限,建议建一个文件夹,然后拷贝到文件夹下
hdc file recv /data/tmp/entry-debug-standard-ark-signed.hap d:\recv
FileTransfer finish, Size:71030 time:60ms rate:1183.83kB/s

六、补充

源代码目录 .\developtools\hdc,非必要不用编译。文中涉及的 hdc 工具和 USB 驱动从附件下载。
hdc_bin: hdc 工具包
DriverAssitant: RK3568 配套的 USB 驱动
Cmder.exe: 代替系统 cmd 控制台程序,可以分割多个窗口同时监听、交互感兴趣的内容。十分好用,因为安装包较大建议自行下载。

七、总结

OpenHarmony 命令行工具 hdc 安装、应用指南详细阐述了 hdc 工具下载、安装、路径的环境配置和 USB 驱动安装。接下来完整给出了 19 条 hdc 命令用法及正确输出示意。最后列出典型的三种错误处理。

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(HarmonyOS NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/585669.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 应用开发之featureAbility接口切换particleAbility接口切换

featureAbility接口切换 FA模型接口Stage模型接口对应d.ts文件Stage模型对应接口getWant(callback: AsyncCallback<Want>): void; getWant(): Promise<Want>;ohos.app.ability.UIAbility.d.tslaunchWant: Want;startAbility(parameter: StartAbilityParameter, c…

JVM—类加载子系统

JVM—类加载子系统 JVM的类加载是通过ClassLoader及其子类来完成的。 有哪些类加载器 类加载器如下&#xff1a; 启动类加载器&#xff08;BootStrap ClassLoader&#xff09;&#xff1a;负责加载JAVA_HOME\lib目录或通过-Xbootclasspath参数指定路径中的且被虚拟机认可&am…

深入探究Shiro反序列化漏洞

Shiro反序列化漏洞 什么是shiro反序列化漏洞环境搭建漏洞判断rememberMe解密流程代码分析第一层解密第二层解密2.1层解密2.2层解密 exp 什么是shiro反序列化漏洞 Shiro是Apache的一个强大且易用的Java安全框架,用于执行身份验证、授权、密码和会话管理。使用 Shiro 易于理解的…

Vue项目登录页实现获取短信验证码的功能

之前我们写过不需要调后端接口就获取验证码的方法,具体看《无需后端接口,用原生js轻松实现验证码》这个文章。现在我们管理后台有个需求,就是登录页面需要获取验证码,用户可以输入验证码后进行登录。效果如下,当我点击获取验证码后能获取短信验证码: 这里在用户点击获取…

手搓Docker-Image-Creator(DIC)工具(03):实现alpine+jre的镜像

此篇博客将介绍如何使用 Docker 创建一个alpine3.10-jre1.8.0_401 的 Docker 镜像&#xff0c;并使用 Docker 运行起来。将用到 Dockerfile 的 COPY 命令、RUN 命令、ENV 命令&#xff0c;最终实现基于单一应用的 Dockerfile 构建镜像和运行。 紧急修改&#xff1a;代码我是在m…

【机器学习300问】60、图像分类任务中,训练数据不足会带来什么问题?如何缓解图像数据不足带来的问题?

在机器学习中&#xff0c;绝大部分模型都需要大量的数据进行训练和学习&#xff08;包括有监督学习和无监督学习&#xff09;&#xff0c;然而在实际应用中经常会遇到训练数据不足的问题。就比如图像分类这样的计算机视觉任务&#xff0c;确实依赖于大规模且多样化的训练数据以…

【前缀和差分】详细使用方法

前缀和 前缀和的作用&#xff1a; 快速求出元素组中某段区间的和 为什么下标要从1 开始&#xff1a;为了方便后面的计算&#xff0c;避免下标转换&#xff0c;设为零&#xff0c;不影响结果 定义两个数组&#xff0c;第一个为原始数组(a[])&#xff0c;第二个为前缀和数组(s[…

如何编辑PDF文件?分享一个好用的PDF编辑器

如何编辑PDF文件呢?大家在日常中经常会使用PDF文件,难免在使用的过程中会发现文件出现的错误,更正错误地方最简单有效的方法就是直接在PDF文件上进行编辑,但大家都知道PDF文件不易改动,该如何编辑呢? 在这里推荐给大家一个好用的PDF编辑器 PDFPatcher是一款开源免费的多…

基于arkTS开发鸿蒙app应用案例——通讯录案例

1.项目所用技术栈 arkTS node.js express mongoDB 2.效果图 3.源码 Index.ets&#xff08;登录页&#xff09; 登陆时让前端访问数据库中已经存好的账号密码&#xff0c;如果可以查询到数据库中的数据&#xff0c;则账号密码正确&#xff0c;登录成功&#xff0c;否则登录…

美食分享(源码+文档)

美食分享系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端主页注册界面美食详细及教程界面搜索菜谱分类美食制作上传我的资料登录界面 管理端登录界面关键词管理用户管理分类管理历史管理菜谱管理 文件包含内容 1、搭建…

LINUX笔记温习

目录 DAY1 DAY2 day3&#xff1a; day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14 day15 20day DAY1 1、多层级文件夹创建要带-p&#xff1b; 2、创建多文件&#xff0c;要先到该目录下才能创建(第一个目录必须存在才能有效建立)&#xff1b; D…

【Leetcode每日一题】模拟 - 替换所有的问号(难度⭐⭐)(48)

1. 题目解析 题目链接&#xff1a;6. Z 字形变换 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 想要画出N字形&#xff0c;我们首先要观察并找出其中的规律。假设我们用“row”来代表行数&#xff0c;当row等于4时&…