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 应用的操作步骤。 首先…...
RabbitMQ如何保证消息的幂等性???
在RabbitMQ中,保证消费者的幂等性主要依赖于业务设计和实现,而非RabbitMQ本身提供的一种直接功能。 在基于Spring Boot整合RabbitMQ的场景下,要保证消费者的幂等性,通常需要结合业务逻辑设计以及额外的技术手段来实现。以下是一个…...
【QT】Qt Charts的实际使用中的一些小细节完善如:resetZoom、fitInView
在Qt中, 使用 Qt Charts来创建和操作图表,重置图表缩放状态的功能可以通过调整图表视图的缩放比例来实现。Qt Charts中的QChartView提供了相关的方法来控制图表的缩放和平移。 示例代码,以及如何对此功能进行扩展: #include <…...
上位机图像处理和嵌入式模块部署(qmacvisual缺失的颜色检测)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在图像处理当中,对颜色的处理是非常重要的。当然,这要建立在拍摄图片是彩色图片的基础之上。工业上面,虽然是黑…...
macOS制作C/C++ app
C/C制作macOS .app 一、 .app APP其实是一个文件夹结构,只不过mac的界面中让它看起来像一个单独的文件。 在shell终端或者右键查看包结构即可看到APP的目录结构。 通常的app目录结构如下: _CodeSignature, CodeResources 一般为Mac APP Store上架程序…...
学习笔记——C语言基本概念链表——(12)
在介绍链表之前先介绍一下数据结构的分类: 线性结构:数组,链表,栈,队列 顺序结构:数组 链式结构:链表 非线性结构:树,二叉树 1、链表 特点:利用碎片化空…...
开发环境解决跨域问题
跨域 为什么? 浏览器的同源策略(协议,域名,端口必须相等) http://localhost:9528/ (前端页面) ---------------------》后端接口(https://heimahr.itheima.net/api) 后端没有开启CORS 在后端没有开启CO…...
物理服务器与云服务器的租用对比
物理服务器:每个基于 Web 的应用程序都依赖于一个服务器,该服务器提供网络中的数据存储,并可根据请求提供给客户端。例如,用户使用浏览器访问 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接口进行本地抓包
前言: 本人一名敲代码的程序员,突然领导安排研究gRPC接口,并且抓包分析, 抓包工具试了Charles、mitmproxy都不行,浪费很多时间,最后使用Wireshark工具对本地启动的gRPC接口成功抓包,关于安装W…...
科技动态人工智能应用太空探索生物科技
根据最新的科技资讯,以下是一些值得关注的科技动态: 人工智能领域 智能体热潮 :随着大模型的研发热潮,AI智能体的发展迅速,它们被用作认知核心,具备强大的学习和迁移能力。智能体的架构和交互方式也在不断进…...
如何让MacOS「终端」走代理
在 MacOS 操作系统中,默认情况下,终端命令行不会通过代理进行网络连接。这导致在应用软件研发过程中,许多需要通过命令行下载安装的软件或依赖包无法成功安装。经常出现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解压图片的步骤: libjpeg的使…...
PHP自带的密码加密函数Password_verify 和password_hash
Password_verify 和password_hash 这两个函数都是PHP自带的密码加密函数,通过底层实现,无法查看源代码 password_hash函数用于对用户输入的密码进行加密 Password_verify验证用户输入的密码是否正确 Tips:看到密码验证用的Password_verify&a…...
UVA1596 Bug Hunt 找Bug 解题报告
题目链接 https://vjudge.net/problem/UVA-1596 题目大意 输入并模拟执行一段程序,输出第一个bug所在的行。每行程序有两种可能: 数组定义,格式为arr[size]。例如a[10]或者b[5],可用下标分别是0~9和0~4…...
Java编程题 | 提取整数的特定位数
大家可以关注一下专栏,方便大家需要的时候直接查找,专栏将持续更新~ 题目描述 编写一个Java程序,用于接收一个整数作为输入,然后从该整数的右端开始提取第4到第7位数字。 程序需要接收一个整数作为输入,然后输…...
设置你的第一个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数字证书产品提供商主要来自于国外,尤其是美国,原理和使用操作系统一样,区别在于SSL数字证书目前无法替代性,要想达到兼容性99%的机构目前全球才3-4家,目前国内的主流网站主要使用的是国际证书,除了考虑…...
番茄 abogus rpc调用
声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章…...
AI辅助开发:模仿PS创意效果,用快马生成智能艺术风格迁移应用代码
最近在做一个艺术风格迁移的小项目,正好用到了InsCode(快马)平台的AI辅助开发功能,整个过程特别顺畅。这个项目的灵感来源于PS的创意效果,但想用更智能的方式来实现类似功能。下面分享一下我的实现思路和经验。 项目构思 最初是想做一个能让普…...
让你的调试日志五彩斑斓:J-Link RTT高级封装技巧(支持中文、浮点数、十六进制)
让你的调试日志五彩斑斓:J-Link RTT高级封装技巧(支持中文、浮点数、十六进制) 调试是嵌入式开发中不可或缺的一环,而高效的调试工具能显著提升开发效率。J-Link RTT(Real Time Transfer)作为一种无需额外硬…...
Kubernetes 环境下 SkyWalking 的高效部署与性能调优
1. Kubernetes 环境下的 SkyWalking 部署实战 第一次在 Kubernetes 上部署 SkyWalking 时,我踩了不少坑。记得当时为了调试一个存储配置问题,整整熬了两个通宵。现在回想起来,如果当时有人能给我一份详细的实战指南,至少能节省 80…...
别再只用Wireshark了!用Cain Abel在Windows上5分钟复现ARP欺骗攻击(附实战截图)
从Wireshark到Cain & Abel:用经典工具5分钟掌握ARP欺骗核心原理 如果你已经能用Wireshark分析网络流量,却对ARP欺骗的原理一知半解,那么这款诞生于2002年的老牌工具Cain & Abel会让你眼前一亮。不同于现代抓包工具的被动观察…...
PNAS|收入不足对婴儿早期脑发育的影响
本文揭示了逆境在出生后最早期脑发育阶段中的关键作用。基于 Baby Steps 研究(一项正在进行的纵向研究;在一所服务于贫困与压力发生率较高家庭的初级保健门诊中采集婴儿脑电(EEG)与社会经济地位相关数据)的数据表明&am…...
Java Web新手必看:EDUCODER头哥MVC用户登录实战(含JDBC连接避坑指南)
Java Web新手实战:EDUCODER平台MVC用户登录全流程解析 第一次接触Java Web开发时,最让人兴奋的莫过于亲手实现一个完整的用户登录系统。这不仅是对MVC架构的直观理解,更是打通前后端数据流的关键里程碑。在EDUCODER这样的实训平台上ÿ…...
忍者像素绘卷微信小程序开发:生成图水印添加与版权保护机制实现
忍者像素绘卷微信小程序开发:生成图水印添加与版权保护机制实现 1. 项目背景与需求分析 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站,它融合了忍者文化与16-Bit复古游戏美学,为用户提供独特的创作体验。随着用户生成内容…...
Fay框架监控告警系统设计:异常实时通知
Fay框架监控告警系统设计:异常实时通知 【免费下载链接】Fay fay是一个帮助数字人(2.5d、3d、移动、pc、网页)或大语言模型(openai兼容、deepseek)连通业务系统的agent框架。 项目地址: https://gitcode.com/GitHub_…...
【Java边缘运行时部署终极指南】:20年专家亲授5大避坑法则与3步极速上线实战
第一章:Java边缘运行时部署全景认知与演进脉络Java在边缘计算场景中的运行时部署正经历从传统云中心化架构向轻量、自治、低延迟方向的深刻演进。早期Java应用依赖完整JDK和重量级容器(如Tomcat)部署于虚拟机或Kubernetes集群,难以…...
ngx_http_init_static_location_trees
1 定义 ngx_http_init_static_location_trees 函数 定义在 ./nginx-1.24.0/src/http/ngx_http.cstatic ngx_int_t ngx_http_init_static_location_trees(ngx_conf_t *cf,ngx_http_core_loc_conf_t *pclcf) {ngx_queue_t *q, *locations;ngx_http_core_loc_conf_…...
