OpenHarmony之hdc

2024-01-10 18:28
文章标签 openharmony hdc

本文主要是介绍OpenHarmony之hdc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenHarmony之hdc

简介

hdc(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具,通过该工具可以在Windows/Linux/MacOS等系统上与开发机或者模拟器进行交互。

类似于Android的adb,和adb类似,使用hdc的前提是开发机器hdc工具已安装好,设备端hdc已安装且已配置好。

开发机HDC

开发机hdc工具通过OpenHarmony sdk获取,hdc在sdk的 toolchains目录下

这里我对应的是OpenHarmony-3.2-Release的 ohos-sdk-full

解压:

zdd@xxx-PC:~/WorkSpace/OHOS/ohos-sdk$ tree
.
├── linux
│   ├── ets-linux-x64-3.2.15.3-Release.zip
│   ├── js-linux-x64-3.2.15.3-Release.zip
│   ├── native-linux-x64-3.2.15.3-Release.zip
│   ├── previewer-linux-x64-3.2.15.3-Release.zip
│   └── toolchains-linux-x64-3.2.15.3-Release.zip
└── windows├── ets-windows-x64-3.2.15.3-Release.zip├── js-windows-x64-3.2.15.3-Release.zip├── native-windows-x64-3.2.15.3-Release.zip├── previewer-windows-x64-3.2.15.3-Release.zip└── toolchains-windows-x64-3.2.15.3-Release.zip

根据自己使用的系统,继续解压对应的 toolchains压缩包,hdc等工具就在 toolchains里面。

设备端HDC

设备端hdc工具一般会随编译构建打包进文件系统。

设备端配置分2种不同的通路:USB或网络

  • USB的话,主要保证USB能用能通(驱动OK),使能USB的 otg模式或 peripheral 模式,并通过configfs配置好usb相关的参数并启动对应服务,一般是用init的cfg文件来配,例如rk3588的为 init.rk3568.usb.cfg,这里不详细展开了
    {"jobs" : [{"name" : "boot","cmds" : ["mkdir /dev/usb-ffs 0770 shell shell","mkdir /dev/usb-ffs/hdc 0770 shell shell","mount configfs none /config","mkdir /config/usb_gadget/g1 0770 shell shell","write /config/usb_gadget/g1/idVendor 0x2207","write /config/usb_gadget/g1/idProduct 0x0018","write /config/usb_gadget/g1/os_desc/use 1","write /config/usb_gadget/g1/bcdDevice 0x0223","write /config/usb_gadget/g1/bcdUSB 0x0200","mkdir /config/usb_gadget/g1/strings/0x409 0770","copy /sys/block/mmcblk0/device/cid /config/usb_gadget/g1/strings/0x409/serialnumber","write /config/usb_gadget/g1/strings/0x409/manufacturer Rockchip","write /config/usb_gadget/g1/strings/0x409/product \"HDC Device\"","mkdir /config/usb_gadget/g1/functions/ffs.hdc","mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell","mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell","write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1","write /config/usb_gadget/g1/os_desc/qw_sign MSFT100","write /config/usb_gadget/g1/configs/b.1/MaxPower 500","symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1","mount functionfs hdc /dev/usb-ffs/hdc uid=2000,gid=2000","setparam sys.usb.configfs 1","setparam sys.usb.controller fcc00000.dwc3"]}, {"name" : "param:sys.usb.config=none && param:sys.usb.configfs=1","condition" : "sys.usb.config=none && sys.usb.configfs=1","cmds" : ["write /config/usb_gadget/g1/os_desc/use 0","setparam sys.usb.ffs.ready 0"]}, {"name" : "param:init.svc.hdcd=stopped","condition" : "init.svc.hdcd=stopped","cmds" : ["setparam sys.usb.ffs.ready 0"]}, {"name" : "param:sys.usb.config=hdc && param:sys.usb.configfs=1","condition" : "sys.usb.config=hdc && sys.usb.configfs=1","cmds" : ["write /config/usb_gadget/g1/idProduct 0x5000","write /config/usb_gadget/g1/os_desc/use 1"]}]
    }
  • 网络的话,主要保证网络能用能通(驱动OK),配置好网络IP等,设置hdc参数(主要是模式和端口),并启动hdcd服务,通过命令的方式如下,也可通过配置文件的方式:
    # 设置hdc参数
    param set persist.hdc.mode tcp
    param set persist.hdc.port xxxx
    # 启动hdcd服务
    hdcd &

    一些常用命令

    当两端都配置好之后就可以愉快地使用hdc工具了,下面列举了一些常用的命令,更多说明详见官方文档或help:

    #查询设备列表(-v 打印设备详细信息)
    hdc list targets[-v]#通过【ip地址:端口号】来连接指定的设备(-remove 断开与指定设备的连接)
    hdc tconn host[:port][-remove] 
    #设备端对应daemon进程重启,并首先选用USB连接方式
    hdc tmode usb#调试
    hdc shell
    hdc hilog#以读写模式挂载系统分区
    hdc target mount#设备重启
    hdc target boot#授予后台服务进程root权限, 使用-r参数取消授权
    hdc smode
    hdc smode -r#发送文件至远端设备
    hdc file send ./a.txt /data/local/tmp/a.txt
    #从远端设备接收文件至本地
    hdc file recv /data/local/tmp/a.txt ./a.txt#安装HAP(-r 替换已存在应用 -d 允许降级安装 -g 应用动态授权)
    hdc install [-r/-d/-g] package
    #卸载HAP -k 保留/data/cache
    hdc uninstall [-k] package

    总结

    以上的内容主要简单介绍了《OpenHarmony之hdc》的教程

    要想成为一名鸿蒙高级开发,以上知识点是必须要掌握的,除此之外,还需要掌握一些鸿蒙应用开发相关的一些技术,需要我们共同去探索。

    为了节省大家一些查找的时间,这边联合几位行业大佬,为大家准备了一份《Open Harmony4.0&Next》的学习导图从入门到进阶再到南北向开发实战的一整套完整体系,想要学习了解更多鸿蒙开发的相关知识可以借鉴:

    除了以上的知识内容,我还为大家整理了一份《鸿蒙 (Harmony OS)开发学习手册》都是整理成PDF文档方式,分享给大家参考学习:《做鸿蒙应用开发到底学习些啥?》

    《鸿蒙 (Harmony OS)开发学习手册》

    一、入门必看

    1. 应用开发导读(ArkTS)

    2. 应用开发导读(Java)

    3.......

    二、HarmonyOS 概念

    1. 系统定义

    2. 技术架构

    3. 技术特性

    4. 系统安全

    5......

    三、如何快速入门?《鸿蒙基础入门开发宝典!》

    1. 基本概念

    2. 构建第一个ArkTS应用

    3. 构建第一个JS应用

    4. ……

    四、开发基础知识

    1. 应用基础知识

    2. 配置文件

    3. 应用数据管理

    4. 应用安全管理

    5. 应用隐私保护

    6. 三方应用调用管控机制

    7. 资源分类与访问

    8. 学习ArkTS语言

    9. ……

    五、基于ArkTS 开发

    1. Ability开发

    2. UI开发

    3. 公共事件与通知

    4. 窗口管理

    5. 媒体

    6. 安全

    7. 网络与链接

    8. 电话服务

    9. 数据管理

    10. 后台任务(Background Task)管理

    11. 设备管理

    12. 设备使用信息统计

    13. DFX

    14. 国际化开发

    15. 折叠屏系列

    16. ……

    更多了解更多鸿蒙开发的相关知识可以参考:《鸿蒙开发学习指南》

这篇关于OpenHarmony之hdc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/591673

相关文章

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

Openharmony 图片自适应全屏显示

前言: Deveco_studio 4.1 release 版本 我们想要图片全屏显示,并且不出现黑白边,可以参考以下代码 这段代码会自适应你的容器大小,你的容器时全屏,图片就会全屏 @Entry@Componentstruct Index {@State message: string = 'Hello World';build() {Column() {}.width('100%'

OpenHarmony 主窗体和子窗体的关系

在鸿蒙(HarmonyOS)应用开发中,主窗体和子窗体之间的关系,以及它们与整个应用能力的关系,是层级性结构性的,可以从以下几个方面理解: Window: 当前窗口实例,窗口管理器管理的基本单元。WindowStage: 窗口管理器。管理各个基本窗口单元。 主窗体与子窗体的关系: 定义: 主窗体:应用启动时默认展示的界面,通常对应于应用的主能力。子窗体:在应用中可以被主窗体或其他子窗体打

OpenHarmony鸿蒙开发( Beta5.0)智能手表应用开发实践

样例简介 本项目是基于BearPi套件开发的智能儿童手表系统,该系统通过与GSM模块(型号:SIM808)的通信来实现通话和定位功能。 智能儿童手表系统可以通过云和手机建立连接,同步时间和获取天气信息,通过手机下达日程安排到儿童手表,并显示在儿童手表的屏幕端,还可以通过SIM808模块获取地理位置信息,接收和拨打电话等功能。 运行效果 当设备启动之后,操作效果如下: 样例原理 工

OpenHarmony鸿蒙开发( Beta5.0)智能窗帘应该开发实践案例

样例简介 智能窗帘设备不仅接收数字管家应用下发的指令来控制窗帘开启的时间,而且还可以加入到数字管家的日程管理中。通过日程可以设定窗帘开关的时间段,使其在特定的时间段内,窗帘自动打开或者关闭;通过日程管家还可以实现窗帘和其他的智能设备联动。 运行效果 当设备应用启动之后,操作效果如下: 样例原理 如上图所示,智能窗帘整体方案原理图可以大致分成:智能窗帘设备、数字管家应用、云平台三部

OpenHarmony持久化存储UI状态:PersistentStorage

前两个小节介绍的LocalStorage和AppStorage都是运行时的内存,但是在应用退出再次启动后,依然能保存选定的结果,是应用开发中十分常见的现象,这就需要用到PersistentStorage。 PersistentStorage是应用程序中的可选单例对象。此对象的作用是持久化存储选定的AppStorage属性,以确保这些属性在应用程序重新启动时的值与应用程序关闭时的值相同。 概述

CDC与HDC的区别

引文:微软喜欢将内核对象标识,称之为句柄。应该都是32位或64位 每一个C++设备环境对象都有与之相对应Windows设备环境 并且通过一个32位类型的HDC句柄来标识 HINSTANCE:进程实例或者句柄 HANDLE:    文件句柄 HWND:          窗口句柄,用来标识窗口对象 HPEN:    画笔句柄,用来标识画笔对象 HBITMAP:    位图句柄 CWn

openharmony历程一:安装ubuntu20.04

1.下载ubuntu20.04 官网下载 下拉选择 可使用镜像: 镜像 2.安装 本人使用vmware,其他的如virtualbox也差不多 选择自定义和下一步 我使用的是r5 5600H,只有12核。 由于后面用于鸿蒙安装,推荐内存16GB及以上,硬盘100GB及以上。然而非常不幸,我的电脑只能分到11个G.干脆选了10 先默认,后面不行再改也可以

【 OpenHarmony 4.1 Launcher 源码解析 】-- 初体验

前言 最近因为业务需要,需要做一款 UI 定制的鸿蒙 Launcher,于是就开始了「找到代码」、「研究代码」、「魔改代码」的套路流程,仅以此文章作为知识备份和技术探讨所用,也希望能给其他小伙伴提供一些源码的解析思路,方法大家各自魔改! 一、官方简介 Gitee codes:应用子系统/Launcher Launcher 作为系统人机交互的首要入口,提供应用图标的显示、点击启动、卸载应