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

1.openharmony环境搭建

原文链接:https://kashima19960.github.io/2025/03/21/openharmony/1.openharmony环境搭建/

前言

在学习知识的时候,如果长时间不用,就会很快遗忘,所以我写这个系列的文章,目的是为了记录我学习openharmony的历程,让我以后回顾的时候,能够快速记忆起相关的知识,由于博主写这个系列的文章已经不是零基础了,所以有些步骤会呈现跳跃式,这个敬请谅解😊😊

采用的环境

  • OpenHarmony-v3.1-Release

openharmony更新的挺快的,所以有些头库文件的位置会经常变动,因此本系列的文章以我学习的3.1版本为准

  • 润和Hi3861

我学习的时候,采用南京的润和版,主控用的是hi3861V100,核心板长这样

1742554626580

  • DevEco device tool+Vscode

华为提供的这个IDE是Vscode的插件,所以必须要用Vscode。。。。😐😐

  • 虚拟机Ubuntu20.04

最好用20.04这个版本,有些工具链会因为版本原因不兼容(前人的教训)

虚拟机配置要求

创建虚拟机的软件可以采用Vmware或者Vitual box,不过我个人使用的话,是用的WSL,毕竟WSL的启动要快很多,如果是用Vmware或者Vitual box的话,这边是有推荐配置的,因为Openharmony的源码非常大,所以电脑最好要达成下图的配置

1742552695093但实际上只要硬盘大一点就行了,其他方面差一点只是编译的时候会慢一点而已

搭建环境

搭建环境我不推荐使用命令行的方式,因为工具链太多,一个个安装很可能会遇到很多问题

OpenHarmony系统分类

Openharmony有三种基础系统,你下载源码的时候都是同一份的,所谓的不同的基础系统就是在编译的时候,编译组件数量的多少罢了,比如Hi3861L100使用的是轻量系统,编译出来的文件只有40M左右。但是如果用标准系统编译的话,就是全量编译,编译出来的固件有20G以上,我当时编译标准系统的时候,睡觉前开始编译,睡醒了还在编译🤣

类型处理器最小内存能力
轻量系统(mini system)MCU类处理器(例如Arm Cortex-M、RISC-V 32位的设备)128KiB提供多种轻量级网络协议,轻量级的图形框架,以及丰富的IOT总线读写部件等。可支撑的产品如智能家居领域的连接类模组、传感器设备、穿戴类设备等。
小型系统(small system)应用处理器(例如Arm Cortex-A的设备)1MiB提供更高的安全能力、标准的图形框架、视频编解码的多媒体能力。可支撑的产品如智能家居领域的IP Camera、电子猫眼、路由器以及智慧出行域的行车记录仪等。
标准系统(standard system)应用处理器(例如Arm Cortex-A的设备)128MiB提供增强的交互能力、3D GPU以及硬件合成能力、更多控件以及动效更丰富的图形能力、完整的应用框架。可支撑的产品如高端的冰箱显示屏。

更多内容请参考官方文档快速入门概述

搭建环境要同时搭建Windows和Ubuntu的环境,

搭建Windows环境

具体内容参考这个文档搭建Windows环境,唯一需要注意的是Python的版本最好用3.8,因为这个工具的python相关代码是用Python3.8版本写的,所以其他版本的Python多少会有点兼容性问题

搭建Ubuntu环境

具体内容参考这个文档搭建Ubuntu环境,搭建好后要用Vscode通过远程SSH的方式连接Ubuntu,实现交叉编译,远程连接参考这个文档配置远程访问环境

下载源码

官方文档下载源码是通过码云仓库获取,但是这个方式比较复杂,我们可以直接用Deveco device tool这个工具进行一键下载,在新建工程里,选择对应版本的源码

1742553922403

点击确定就能直接下载了

安装工具链

工具链安装同样不推荐用apt直接安装,在工程配置这里,可以直接装,这些都是写好的脚本,点击执行就能一键安装所需工具链了

1742554123356

编译源码

如果环境都安装好了,就可以build试试了,如果缺了啥工具,IDE会进行提示

1742554450881

附录

环境搭建过程中会安装很多工具,这里有几个表解释了其中一些工具的作用,有兴趣可以参考一下

1742554995248

1742555009201

1742555023249

1742555034372

如果你是用码云的方式下载源码的话,还会用到git相关的工具

  • git:是一个开源分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。是为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

  • git-lfs:若在用git管理的项目中出现大文件,其数量较多,
    而且更新较频繁。那么当首次clone该项目时, 就会不可避免地将这些大文件的当前版本和历史所有版本的文件都下载下来, 虽然很可能用不到这些历史文件,
    但却不得不为它们所占用的额外空间买单。git lfs(large file storage)就很好地解决了这一问题。通过将大文件替换为小指针的方式,
    当你真正需要到这些大文件的时候, 它才会从本地或者远端的lfs缓存中下载这些大文件。

  • cURL:是一个利用URL语法在命令行下工作的文件传输工具,它支持文件上传和下载。

参考资料

快速入门概述

HarmonyOS设备开发 - HarmonyOS设备开发官网

Hi3861开发板介绍

编译形态整体说明

获取源码

下一节是啥?

讲讲轻量系统的编译构建与数据持久化

http://www.xdnf.cn/news/3973.html

相关文章:

  • osquery在网络安全入侵场景中的应用实战(二)
  • 关于毕业论文,查重,AIGC
  • QT6 源(78):阅读与注释滑动条 QSlider 的源码,其是基类QAbstractSlider 的子类,及其刻度线的属性举例
  • 算法热题——等价多米诺骨牌对的数量
  • 【实战教程】React Native项目集成Google ML Kit实现离线水表OCR识别
  • 【云备份】服务端业务处理模块设计与实现
  • 2025-04-18-文本相似度-菜鸟
  • LLM(17):计算所有输入 token 的注意力权重
  • 【C语言练习】023. 编写条件编译代码
  • 高速互联技术:NVLink和PCIe有什么区别
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(七)
  • 深度学习系统学习系列【4】之反向传播(BP)四个基本公式推导
  • Jogging(ABC249-A-竞赛题解)
  • 【QT】QT安装
  • ​亚马逊云服务器技术全景解析:从基础架构到行业赋能​
  • 42. 接雨水(相向双指针/前后缀分解),一篇文章讲透彻
  • 从代码学习深度学习 - 目标检测前置知识(二) PyTorch版
  • uniapp 云开发全集 云开发的概念
  • 什么是原码、反码与补码?
  • 数据管理能力成熟度评估模型(DCMM)全面解析:标准深度剖析与实践创新
  • 【Java项目脚手架系列】第二篇:JavaWeb项目脚手架
  • js获取明天日期、Vue3大菠萝 Pinia的使用
  • 【Linux系统篇】:Linux线程互斥---如何用互斥锁守护多线程程序
  • MCUboot 中的 BOOT_SWAP_TYPE_PERM 功能介绍
  • (undone) MIT6.S081 2023 学习笔记 (Day11: LAB10 mmap)
  • Redis数据结构ZipList,QuickList,SkipList
  • 《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》封面颜色空间一图的选图历程
  • 电磁气动 V 型球阀:颗粒状矿浆与煤黑水介质处理的革命性解决方案-耀圣
  • GAF-CNN-SSA-LSSVM故障诊断/分类预测,附带模型研究报告(Matlab)
  • 学习海康VisionMaster之亮度测量