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

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开发板介绍

编译形态整体说明

获取源码

下一节是啥?

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

相关文章:

  • kotlin 05flow -从 LiveData 迁移到 Kotlin Flow 完整教程
  • 【Web3】上市公司利用RWA模式融资和促进业务发展案例
  • netty中的ServerSocketChannel详解
  • 【Linux】深入理解Linux基础IO:从文件描述符到缓冲区设计
  • 实验4 mySQL查询和视图
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】6.2 预测分析基础(线性回归/逻辑回归实现)
  • VTK 系统架构
  • 领略算法真谛: 多源bfs
  • 硬件工程师面试常见问题(15)
  • pta的cpp选择判断题
  • 备战蓝桥杯国赛第一天-atcoder-beginner-contest404
  • C# WPF 布局
  • PandasAI:对话式数据分析新时代
  • [ 设计模式 ] | 单例模式
  • 基于大模型的子宫腺肌病全流程预测与诊疗方案研究报告
  • 利用迁移学习实现食物分类:基于PyTorch与ResNet18的实战案例
  • 【C/C++】函数模板
  • SQL数据库操作大全:从基础到高级查询技巧
  • HTML5好看的水果蔬菜在线商城网站源码系列模板9
  • 【macOS常用快捷键】
  • 央行:5月8日起7天期逆回购操作利率由此前的1.50%调整为1.40%
  • 黔西游船倾覆事故84名落水人员已全部找到,10人不幸遇难
  • 视觉周刊|劳动开创未来
  • 国防部新闻发言人就日本民用飞机侵闯中国钓鱼岛领空答记者问
  • 两千万粉丝网红“大LOGO”带货茶叶被指虚假宣传,涉事茶企被立案调查
  • 河南博物院:警惕非官方网络平台 “买讲解保进馆” 等虚假信息