OpenHarmony设备开发入门学习笔记——快速入门
文中链接有效期为2024年,如今可能过期了。
一、OpenHarmony系统认识
OpenHarmony 是由开放原子开源基金会主导的开源操作系统项目,旨在为多种终端设备提供统一的操作系统平台。它具有分布式特性,支持多种硬件架构,适用于物联网(IoT)、移动终端、智能家居、工业控制等多个场景。OpenHarmony 的设计目标是实现“万物互联”,通过模块化架构满足不同设备对操作系统能力的需求。
- 轻量系统(Lite System)
• 对应内核:LiteOS-M
• 适用设备:面向 MCU(微控制单元)类处理器,例如 Arm Cortex-M、RISC-V 等 32 位设备。
• 特点:占用资源极少、实时性强、启动快,适用于资源极为有限的嵌入式设备
- 小型系统(Small System)
• 对应内核:LiteOS-A 或 Linux
• 适用设备:面向轻量级应用处理器(如 Arm Cortex-A)
• 最小运行内存要求:1 MiB
• 特点:提供基本的图形、网络、多任务能力;适合智能穿戴、智能家居中控、简单平板等设备
- 标准系统(Standard System)
• 对应内核:Linux
• 适用设备:面向高性能应用处理器(如 Arm Cortex-A)
• 最小运行内存要求:128 MiB
• 特点:提供完整的图形、多媒体、安全等功能;可支持复杂的智能设备如手机、平板、电视等
二、设备开发流程(Windows+Linux)
2.1 基于IDE
完全采用IDE进行一站式开发,编译依赖工具的安装及编译、烧录、运行都通过IDE进行操作。
- 在Windows上主要进行代码开发、代码调试、烧录等操作。
- 在Ubuntu环境实现源码编译。
DevEco Device Tool提供界面化的操作接口,可以为您提供更快捷的开发体验。
2.2 基于命令行(主流)
通过终端命令行方式下载安装编译依赖工具,在Linux系统中进行编译时,相关操作通过命令实现;在Windows系统中使用开发板厂商提供的工具进行代码烧录。命令行方式提供了简便统一的工具链安装方式。
2.2.1 Linux的形式
- 服务器
• 解释:在云服务器或物理服务器上直接部署 Linux 系统(如 Ubuntu)。
• 用途:适合部署高性能服务(如 Web 服务、数据库、API 等)。
• 示例:使用阿里云、腾讯云等提供的 Ubuntu 服务器。
- WSL(Windows Subsystem for Linux)
• 解释:在 Windows 操作系统中通过微软提供的 WSL 功能,运行一个 Linux 子系统。
• 用途:适合 Windows 用户在不安装虚拟机的情况下使用 Linux 命令行和工具。
• 示例:在 Windows 上安装 Ubuntu WSL,进行编程、运行 shell 脚本等。
- WSL + Docker
• 解释:在 WSL 的基础上运行 Docker 容器技术,实现进一步的系统隔离和应用部署。
• 用途:适合开发者在 Windows 中使用 Docker 环境开发、测试和部署应用。
• 优势:兼顾了 WSL 的轻量与 Docker 的灵活容器化能力。
- 虚拟机
• 解释:通过虚拟机软件(如 VMware、VirtualBox)在 Windows 或 macOS 上运行一个完整的 Linux 系统。
• 用途:适合需要完整 Linux 桌面或服务器环境的用户。
• 特点:资源占用较高,但功能完整,适合模拟复杂场景。
2.2.2 Ubuntu环境配置
- 版本要求18.04以上的版本,
- 内存推荐16 GB及以上,
- 用户名、路径名不能包含中文
- 换源
- 创建一个存放源码的文件夹(到时候源码不能直接下载在根目录/或者家目录/home/user1下)
- 安装库和工具集
使用如下apt-get命令安装后续操作所需的库和工具:
(Ubuntu18)sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib gcc-arm-linux-gnueabi libc6
(Ubuntu20) sudo apt install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib3 - 将Python3.8设置为默认Python版本
查看Python 3.8的位置:
which python3.8
将Python和Python3切换为Python 3.8:
sudo update-alternatives --install /usr/bin/python python {Python 3.8 路径} 1 #{Python 3.8 路径}为上一步查看的Python 3.8的位置
sudo update-alternati - 配置Git环境
git config --global user. name “yourname”
git config --global user.email “your-email-address”
git config --global credential.helper store(设置git凭证存储方式) - 安装码云repo工具
下面以ohos用户为例,直接安装在家目录下,也可以下载在/usr/local/bin/repo下(这个需要root权限)
mkdir ~/bin #创建文件夹
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
vim ~/.bashrc # 编辑环境变量
export PATH=~/bin:$PATH # 在最后添加一行repo路径信息
source ~/.bashrc # 应用环境变量
2.2.3获取源码
说明: 发布分支代码相对比较稳定,通常用于商用功能开发。Master主干为开发分支,开发者可通过Master主干获取最新特性。
OpenHarmony发布分支代码获取
zh-cn/release-notes/Readme.md · OpenHarmony/docs
以主干代码为例
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify #代码仓初始化
repo sync –c #同步代码
repo forall -c 'git lfs pull’ #下载所有代码仓所需的大文件
执行prebuilts(预编译)
在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。
bash build/prebuilts_download.sh
2.2.4编译
• 建议使用build.sh脚本编译,跟hb相比更加灵活
《如何让加快OpenHarmony编译速度 - 文章 OpenHarmony开发者论坛》
• 编译rk3568镜像:./build.sh --product-name rk3568 --ccache
• 不编译SDK:最后加参数–no-prebuilt-sdk
• 编译特定模块:./build.sh --product-name rk3568 --build-target 模块名 –ccache
编译构建
- 点赞
- 收藏
- 关注作者
评论(0)