当前位置: 首页 > news >正文

OpenHarmony开发-连接开发板调试应用

在 OpenHarmony 开发过程中,连接开发板进行应用调试是一个关键步骤,只有在真实的硬件环境下,我们才能测试出应用更多的潜在问题,以便后续我们进行优化。本文详细介绍了连接开发板调试 OpenHarmony 应用的操作步骤。

首先,我们搭建了OpenHarmony的开发环境,安装 OpenHarmony SDK 和所需的驱动程序。接着,我们通过USB连接方式将开发板连接到开发机。在连接成功后,我们使用 DevEco-Studio 部署和启动应用。通过监控应用在开发板上的运行情况,我们可以利用日志输出进行问题诊断。 


一、搭建OpenHarmony开发环境

前面我们已经介绍了如何从零到一搭建HarmonyOS应用开发环境,这里只做简单回顾,详细流程参考我之前的文章:HarmonyOS应用开发-搭建开发环境

1、安装DevEco Studio

官网:HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者
下载 DevEco Studio 3.1.1 Release 最新版本。

下载完成后,点击安装,根据大家自己的喜好选择路径安装即可,需要 2GB 的存储空间。

记得勾选 “生成快捷方式” 和 “添加到path环境变量” 。

后面一直Next,直到安装完成。

安装完需要对电脑重启。 


2、安装 Node.js 和 ohpm

首次运行 DevEco Studio 会来到这个页面。
HarmonyOS 应用开发需要我们的电脑上安装 Node.js 和 ohpm (鸿蒙生态三方库的包管理工具)
这里华为官方提供了镜像,如果本机上之前没有装过,直接勾选 install 然后下一步即可。


3、安装HarmonyOS SDK

基础组件安装后,我们需要安装 HarmonyOS 的 SDK。HarmonyOS SDK 提供应用及服务开发所需的一系列系统开放能力,包括框架、Ability、分布式服务、安全、方舟编译器、HMS Core、基础软件服务、硬件服务等。

这里选择安装路径即可,我直接默认路径,点击下一步。

这个页面展示了所有需要安装的包,点击下一步安装。

几分钟后安装完成。


二、开发OpenHarmony应用

前面我们已经介绍了如何从零到一开发一款HarmonyOS应用,这里只做简单回顾,详细流程参考我之前的文章:HarmonyOS应用开发-使用低代码快速开发一个应用

1、创建Stage模式应用

创建时,我们需要选择模型,模型有两种,一种是FA模型,一种是Stage模型。API 8及以前的接口基于FA模型提供;从API 9开始,OpenHarmony主推Stage模型。这里我们使用Stage模式创建,并勾选低代码开发模式。

创建好之后,我们进入项目开发界面。


2、低代码开发应用

参考我之前文章的步骤,很快我们就可以使用低代码做出一个简单应用。

代码完成后,我们可以使用DevEco Studio自带的模拟器进行调试。

添加模拟设备,然后点击启动。 

 模拟器调试效果如下:

 确保我们的HarmonyOS应用在模拟器里可以运行,后面就可以直接在开发板上部署了。


三、开发板安装OpenHarmonyOS

先确认一下开发板是否已经预装OpenHarmony系统,如果没有,我们需要自行烧录OpenHarmony系统到开发板。

前面我们已经介绍了如何从零到一烧录OpenHarmony系统到开发板,这里只做简单回顾,详细流程参考我之前的文章:OpenHarmony开发-烧录OpenHarmony系统到开发板

本次我们演示使用的开发板是鸿诚志远 HCPAD-100 ,是基于瑞芯微 RK3568 设计的一款人工智能开发板,其他开发板,例如 RK3568 或者 HiHope DAYU200 都是可以的。

1、准备工作

硬件准备:

  • RK3568开发板(或HCPAD-100开发板、HiHope DAYU200开发板等)
  • 双USB口数据线
  • 电源适配器等。

软件准备:

  • 获取OpenHarmony的源代码。
  • 准备RK3568的烧录工具,例如RKDevTool。
  • 安装并配置开发环境,比如确保有适合的编译工具链。

2、下载RK驱动和烧录工具

下载RK驱动助手和AndroidTool烧录工具。
地址:Firefly | 让科技更简单,让生活更智能 (t-firefly.com)

下载完成后进行安装。

① 安装RK驱动助手

双击安装程序,选择驱动安装,安装完成后电脑连接开发板时才可以识别。

② 安装AndroidTool烧录工具

选择安装路径安装,安装完成后打开如下,在没有连接设备时显示 No Devices Found。


3、下载HDC命令工具

HDC (OpenHarmony Device Connector) 是为开发人员提供的用于设备连接调试的命令行工具,PC 端开发机使用命令行工具hdc_std进行调试,该工具支持部署在 Windows/Linux/Mac 等系统上与 OpenHarmony 设备(或模拟器)进行连接调试通信。

官方或者社区链接下载均可,压缩包里包含 Windows 和 Linux 两个版本。

下载链接①:
https://repo.huaweicloud.com/harmonyos/os/3.2-Release/ohos-sdk-windows_linux-public.tar.gz

下载链接②:
developtools_hdc_standard: Device debug connector that provides the device connection capability and a command line tool | 设备调试连接器,提供了连接设备的能力,并提供了对外的命令行工具

下载链接③:
访问:每日构建 | OpenHarmony CI ,在 CICD 的每日构建中找到 ohos_sdk,下载最新版本。

下载后解压,进入目录 ohos-sdk\windows,继续解压 toolchains-windows 开头的压缩包。

在解压后的 toolchains-windows 开头的文件夹 \toolchains 目录下,找到 hdc.exe。

配置环境变量,把 hdc.exe 的路径配置到 path 里。

验证下 HDC 是否安装成功,使用查看版本的命令

hdc -v

可以看到 HDC 安装成功了。


4、连接电脑和开发板

在开发板断电情况下按住烧录键,通过双USB数据线连接电脑和开发板,再给开发板通电,此时开发板进入烧录模式。


5、下载OpenHarmony镜像

访问:每日构建 | OpenHarmony CI ,在 CICD 的每日构建中找到 dayu200,下载最新版本。


6、烧录OpenHarmony系统

在镜像下载完成后,我们需要导入镜像配置到烧录工具中。右键 Loader 导入配置,选择解压的镜像包中的 config.cfg 文件。导入新配置后,misc、sys-prod、chip-prod三个分区不存在镜像,烧写时不能勾选。点击执行,出现下载完成,即表示烧录成功。

 

烧录完成后,我们给板子断电重插,板子开机进入OpenHarmony系统页面。

开机完成后,可以看到 OpenHarmony 自带的系统应用。 

到此,OpenHarmony 系统烧录到开发板的步骤完成。


四、连接开发板调试应用

1、下载OpenHarmony的SDK

DevEco-Studio 与 OpenHarmony 系统联调,需要下载 OpenHarmony 的 SDK。如果之前下载过的只需要导入路径就可以,没有下载过的可以在 DevEco Studio 里直接下载。

我们先打开 DevEco Studio 的设置。

给 OpenHarmony-SDK 添加路径,或者直接下载 OpenHarmony 的 SDK。

这里我是没安装过,所以直接下载。

大概两分钟,下载进度条走到头,我们的 OpenHarmony-SDK 就安装完成了。


2、连接开发设备与开发板

我们给开发板接好电源,连接显示器和鼠标,然后USB连接我们的电脑。

连接成功后,DevEco-Studio 上方可以看到我们的设备名,如果线没有插好,则还是显示 No Devices。


3、设置项目签名 

我们需要为项目设置签名,才可以和开发板进行联调。

连接设备,上方出现设备名后(图截早了,应该是显示设备名),点击右上角项目结构按钮。选择签名设置,进入签名设置页面。

签名设置里勾选,自动生成签名。

如果没有登录华为云开发者账号,会提示我们需要先登录。 

点击登录,会自动弹出浏览器,用华为账号登录即可。

登录完成,返回我们的 DevEco Studio 客户端。


4、启动DevEco-Studio项目

点击运行按钮即可。

可以看到我们的开发板自动安装并运行了刚刚开发好的 HarmonyOS 应用。

APP在首页上也有显示。 

至此,我成功完成了 OpenHarmony 环境的部署、应用的开发、开发板烧录和生产设备联调的过程,希望本文可以对大家开发中遇到的困难进行答疑解惑。

相关文章:

OpenHarmony开发-连接开发板调试应用

在 OpenHarmony 开发过程中,连接开发板进行应用调试是一个关键步骤,只有在真实的硬件环境下,我们才能测试出应用更多的潜在问题,以便后续我们进行优化。本文详细介绍了连接开发板调试 OpenHarmony 应用的操作步骤。 首先&#xf…...

RabbitMQ如何保证消息的幂等性???

在RabbitMQ中,保证消费者的幂等性主要依赖于业务设计和实现,而非RabbitMQ本身提供的一种直接功能。 在基于Spring Boot整合RabbitMQ的场景下,要保证消费者的幂等性,通常需要结合业务逻辑设计以及额外的技术手段来实现。以下是一个…...

【QT】Qt Charts的实际使用中的一些小细节完善如:resetZoom、fitInView

在Qt中&#xff0c; 使用 Qt Charts来创建和操作图表&#xff0c;重置图表缩放状态的功能可以通过调整图表视图的缩放比例来实现。Qt Charts中的QChartView提供了相关的方法来控制图表的缩放和平移。 示例代码&#xff0c;以及如何对此功能进行扩展&#xff1a; #include <…...

上位机图像处理和嵌入式模块部署(qmacvisual缺失的颜色检测)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 在图像处理当中&#xff0c;对颜色的处理是非常重要的。当然&#xff0c;这要建立在拍摄图片是彩色图片的基础之上。工业上面&#xff0c;虽然是黑…...

macOS制作C/C++ app

C/C制作macOS .app 一、 .app APP其实是一个文件夹结构&#xff0c;只不过mac的界面中让它看起来像一个单独的文件。 在shell终端或者右键查看包结构即可看到APP的目录结构。 通常的app目录结构如下&#xff1a; _CodeSignature, CodeResources 一般为Mac APP Store上架程序…...

学习笔记——C语言基本概念链表——(12)

在介绍链表之前先介绍一下数据结构的分类&#xff1a; 线性结构&#xff1a;数组&#xff0c;链表&#xff0c;栈&#xff0c;队列 顺序结构&#xff1a;数组 链式结构&#xff1a;链表 非线性结构&#xff1a;树&#xff0c;二叉树 1、链表 特点&#xff1a;利用碎片化空…...

开发环境解决跨域问题

跨域 为什么? 浏览器的同源策略(协议&#xff0c;域名&#xff0c;端口必须相等) http://localhost:9528/ &#xff08;前端页面&#xff09; ---------------------》后端接口&#xff08;https://heimahr.itheima.net/api&#xff09; 后端没有开启CORS 在后端没有开启CO…...

物理服务器与云服务器的租用对比

​ 物理服务器&#xff1a;每个基于 Web 的应用程序都依赖于一个服务器&#xff0c;该服务器提供网络中的数据存储&#xff0c;并可根据请求提供给客户端。例如&#xff0c;用户使用浏览器访问 Web 应用程序。服务器可确保托管客户端可以使用该硬件组件。与其他托管可能性相比&…...

Ubuntu Desktop Server - Resource temporarily unavailable

Ubuntu Desktop Server - Resource temporarily unavailable 1. 问题2. 解决方案References 1. 问题 foreverstrongubuntu:~$ sudo apt-get install libatlas-base-dev [sudo] password for foreverstrong: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource t…...

用Wireshark工具对gRPC接口进行本地抓包

前言&#xff1a; 本人一名敲代码的程序员&#xff0c;突然领导安排研究gRPC接口&#xff0c;并且抓包分析&#xff0c; 抓包工具试了Charles、mitmproxy都不行&#xff0c;浪费很多时间&#xff0c;最后使用Wireshark工具对本地启动的gRPC接口成功抓包&#xff0c;关于安装W…...

科技动态人工智能应用太空探索生物科技

根据最新的科技资讯&#xff0c;以下是一些值得关注的科技动态&#xff1a; 人工智能领域 智能体热潮 &#xff1a;随着大模型的研发热潮&#xff0c;AI智能体的发展迅速&#xff0c;它们被用作认知核心&#xff0c;具备强大的学习和迁移能力。智能体的架构和交互方式也在不断进…...

如何让MacOS「终端」走代理

在 MacOS 操作系统中&#xff0c;默认情况下&#xff0c;终端命令行不会通过代理进行网络连接。这导致在应用软件研发过程中&#xff0c;许多需要通过命令行下载安装的软件或依赖包无法成功安装。经常出现Failed to connect to xxx port 443 after 75329 ms: Couldnt connect t…...

数码相框-显示JPG图片

LCD控制器会将LCD上的屏幕数据映射在相应的显存位置上。 通过libjpeg把jpg图片解压出来RGB原始数据。 libjpeg是使用c语言实现的读写jpeg文件的库。 使用libjpeg的应用程序是以"scanline"为单位进行图像处理的。 libjpeg解压图片的步骤&#xff1a; libjpeg的使…...

PHP自带的密码加密函数Password_verify 和password_hash

Password_verify 和password_hash 这两个函数都是PHP自带的密码加密函数&#xff0c;通过底层实现&#xff0c;无法查看源代码 password_hash函数用于对用户输入的密码进行加密 Password_verify验证用户输入的密码是否正确 Tips&#xff1a;看到密码验证用的Password_verify&a…...

UVA1596 Bug Hunt 找Bug 解题报告

题目链接 https://vjudge.net/problem/UVA-1596 题目大意 输入并模拟执行一段程序&#xff0c;输出第一个bug所在的行。每行程序有两种可能&#xff1a; 数组定义&#xff0c;格式为arr[size]。例如a[10]或者b[5]&#xff0c;可用下标分别是0&#xff5e;9和0&#xff5e;4…...

Java编程题 | 提取整数的特定位数

大家可以关注一下专栏&#xff0c;方便大家需要的时候直接查找&#xff0c;专栏将持续更新~ 题目描述 编写一个Java程序&#xff0c;用于接收一个整数作为输入&#xff0c;然后从该整数的右端开始提取第4到第7位数字。 程序需要接收一个整数作为输入&#xff0c;然后输…...

设置你的第一个React应用

目录 一、React入门 1.1 你好React 1.2 创建React 1.3 应用结构 二、总结 2.1 定义组件 2.2 组件源码 三、组件详解 注意事项 3.1 组件三部曲 3.2 组件通信 —— props 3.3 对象数组迭代 —— map() 3.4 事件处理 3.5 钩子函数 —— useState() 初次学习最终效果…...

【黑马头条】-day07APP端文章搜索-ES-mongoDB

文章目录 今日内容1 搭建es环境1.1 拉取es镜像1.2 创建容器1.3 配置中文分词器ik1.4 测试 2 app文章搜索2.1 需求说明2.2 思路分析2.3 创建索引和映射2.3.1 PUT请求添加映射2.3.2 其他操作 2.4 初始化索引库数据2.4.1 导入es-init2.4.2 es-init配置2.4.3 导入数据2.4.4 查询已导…...

SSL数字证书

SSL数字证书产品提供商主要来自于国外&#xff0c;尤其是美国&#xff0c;原理和使用操作系统一样&#xff0c;区别在于SSL数字证书目前无法替代性&#xff0c;要想达到兼容性99%的机构目前全球才3-4家&#xff0c;目前国内的主流网站主要使用的是国际证书&#xff0c;除了考虑…...

番茄 abogus rpc调用

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...