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

news2024/11/25 0:44:55

在 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 环境的部署、应用的开发、开发板烧录和生产设备联调的过程,希望本文可以对大家开发中遇到的困难进行答疑解惑。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3568---4G模块驱动实验

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

【攻防世界】wife_wife

原型链污染 源码 app.post(/register, (req, res) > {let user JSON.parse(req.body)if (!user.username || !user.password) {return res.json({ msg: empty username or password, err: true })}if (users.filter(u > u.username user.username).length) {return …

iOS App Store审核要求与Flutter应用的兼容性分析

本文探讨了使用Flutter开发的iOS应用能否上架,以及上架的具体流程。苹果提供了App Store作为正式上架渠道,同时也有TestFlight供开发者进行内测。合规并通过审核后,Flutter应用可以顺利上架。但上架过程可能存在一些挑战,因此可能…

网格矢量如何计算莫兰指数

网格矢量如何计算莫兰指数 引言 遇到一个问题,计算矢量网格的莫兰指数。 概念解释 莫兰指数 莫兰指数(Moran’s Index)是一种空间自相关指标,用于衡量空间数据的相似性和聚集程度。它可以用来描述一个区域与其邻近区域之间的属…

web攻防——js

1.php和js的区别 他只有这一行(所以它是解析形语言)而js写了什么,看源代码就显示什么 安装

性能分析-数据库与磁盘知识

数据库 数据库,其实是数据库管理系统dbms。 数据库管理系统, 常见: 关系型数据库: mysql、pg、 库的表,表与表之间有关联关系; 表二维表统一标准的SQL(不局限于CRUD)非关系型数据…

代码随想录day35 | 贪心算法P4 | ● 860 ● 406 ● 452

860.柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确…

共享云桌面和虚拟云桌面优劣势对比分析

随着云计算技术的不断发展,共享云桌面和虚拟云桌面成为了企业信息化建设的热门选择。共享云桌面和虚拟云桌面这两种技术各有优劣势,下面我们将对它们进行对比分析。 首先,我们来了解一下共享云桌面的优势。共享云桌面是指多个用户通过云平台…

软件测试面试入职了,背完这写轻松上岸

全网首发-涵盖16个技术栈 第一部分,测试理论(测试基础需求分析测试模型测试计划测试策略测试案例等等) 第二部分,Linux( Linux基础Linux练习题) 第三部分,MySQL(基础知识查询练习…

Pots(DFS BFS)

//新生训练 #include <iostream> #include <algorithm> #include <cstring> #include <queue> using namespace std; typedef pair<int, int> PII; const int N 205; int n, m; int l; int A, B, C; int dis[N][N];struct node {int px, py, op…

美团一面:说说synchronized的实现原理?问麻了。。。。

引言 在现代软件开发领域&#xff0c;多线程并发编程已经成为提高系统性能、提升用户体验的重要手段。然而&#xff0c;多线程环境下的数据同步与资源共享问题也随之而来&#xff0c;处理不当可能导致数据不一致、死锁等各种并发问题。为此&#xff0c;Java语言提供了一种内置…

揭秘ChatGPT的数据集构建

从Open AI发表的论文《Training language models to follow instructions with human feedback》&#xff0c;我们可以知道ChatGPT/InstructGPT&#xff08;两者技术原理基本一致&#xff0c;下面不再做区分&#xff09;的训练过程分为以下3步&#xff1a; SFT&#xff1a;根据…

私域电商客户要挨一刀的“订单发货管理”,微信:必须强制接入

文丨微三云营销总监胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 引言&#xff1a;超90%的私域运营商家都见到了或者说遇到了这个问题&#xff0c;如果没有读懂这个微信的模型机制&#xff0c;一定会懵逼&#xff0c;微三云营销总监胡佳…

C++11:function包装器

包装器&#xff0c;体现了C11中的封装性&#xff0c;包装器可以应用于&#xff1a;函数指针&#xff0c;仿函数&#xff0c;lambda 而包装器function的出现刚好也弥补了上述三种语法的不足之处 函数指针写起来较为复杂&#xff0c;而仿函数之间类型不同&#xff0c;lambda则在…

【Week Y5】yolo.py文件解读,插入C2模块到指定位置

插入C2模块到指定位置 一、common.py文件修改二、yolo.py文件修改三、yolov5s.yaml修改四、训练 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 模块结构如下&#xff1a;【同Y4】 【Y4…

Jackson 2.x 系列【15】序列化器 JsonSerializer

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 概述2. 方法2.1 构造2.2 序列化2.3 其他 3. 实现类3.1 StdSerializer3.1.1 源…

CSDN 广告太多,停更通知,转移到博客园

文章目录 前言新博客地址 前言 CSDN的广告实在是太多了&#xff0c;我是真的有点忍不了。直接把广告插在我的文章中间。而且我已经懒得找工作了&#xff0c;我当初写CSDN的目的就是为了找工作&#xff0c;有个博客排名。当时经济环境实在是太差了。我也没必要纠结这个2000粉丝…

Vue通过自定义指令实现元素平滑上升的动画效果。没一句废话

1、演示 2、介绍 这个指令不是原生自带的&#xff0c;需要手动去书写&#xff0c;但是这辈子只需要编写这一次就好了&#xff0c;后边可以反复利用。 用到的API&#xff1a;IntersectionObserver 这里有详细介绍 3、Vue文件代码 <template><div class"container&…

【计算机考研】408算法大题怎么练?

先说结论&#xff1a;基础阶段学好各个数据结构与&#xff0c;重点是数组、链表、树、图。然后强化阶段突破算法提 在基础阶段&#xff0c;并不需要过于专门地练习算法。相反&#xff0c;基础阶段的重点应该放在对各种数据结构原理的深入理解上。在我个人的经验中&#xff0c;…

【AcWing】蓝桥杯集训每日一题Day17|单调队列|求直方图中最大矩形|单调栈|模型转化|1413.矩形牛棚(C++)

1413.矩形牛棚 1413. 矩形牛棚 - AcWing题库难度&#xff1a;中等时/空限制&#xff1a;1s / 256MB总通过数&#xff1a;1914总尝试数&#xff1a;3823来源&#xff1a;usaco training 6.1算法标签单调栈 题目内容 作为一个资本家&#xff0c;农夫约翰希望通过购买更多的奶牛…