OpenHarmony轻量系统开发【2】源码下载和开发环境

2.1源码下载

关于源码下载的,读者可以直接查看官网:
https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes

本文这里做下总结:

(1)注册码云gitee账号。

(2)注册码云SSH公钥,具体可以百度

(3)安装git客户端和git-lfs并配置用户信息。

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

(4)安装码云repo工具,可以执行如下命令。

curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo  

#注意,如果没有权限,可下载至其他目录,并将其配置到环境变量中

chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

以下是主干代码的下载方式,但是主干代码可能会不稳定,不推荐大家使用,推荐大家使用TLS版本。
OpenHarmony主干代码获取

方式一:通过repo + ssh下载(需注册公钥,请参考码云帮助中心)。

repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

方式二(个人推荐这个):通过repo + https下载。

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

2.2 Release版本下载

OpenHarmony 3.x Releases
OpenHarmony Release Notes
目前已经到了4.1版本,即将更新4.3版本

2.3开发环境

OpenHarmony的开发环境主要分为window、Linux两个。
其中window环境用于编写代码、下载程序等。
Linux环境用于代码下载、编译等。
这里推荐大家只使用Linux环境即可,Linux可以使用Ubuntu 20.04版本。关于Windows环境,大家可装可以不装,编写代码可以使用自己喜欢的IDE、下载的话,不同开发板都会提供不同的下载工具。
Ubuntu的开发环境可以参考官网:
Ubuntu的开发环境

建议直接用我搭建好的环境:
https://gitee.com/lianzhian/OpenHarmony-virtual-machine

本文也会列出来,但是后面官方可能会更新,导致本文不一定适用。
需要注意的是,关于Ubuntu的环境主要分为两部分:
(1)OpenHarmony代码所需的公共部分:这里主要是安装python、hb等,这些都是必须的。
(2)具体开发板所需的开发环境:这个跟具体芯片、开发板相关,例如对应的交叉编译器、或者制作文件系统相关的脚本组件等。这些看自己所需的芯片环境是哪些。

2.3.1 OpenHarmony开发环境

(1)将Ubuntu Shell环境修改为bash。

执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。

ls -l /bin/sh

(2)打开终端工具,执行如下命令,然后选择No,将Ubuntu shell由dash修改为bash。
sudo dpkg-reconfigure dash

(3)使用如下apt-get命令安装编译所需的必要的库和工具

sudo apt-get install gcc

sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler

(4)安装hb
在源码根目录下载运行如下命令安装hb

python3 -m pip install build/lite

设置环境变量

vim ~/.bashrc

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/.local/bin:$PATH

执行如下命令更新环境变量。

source ~/.bashrc

执行"hb -h",界面打印以下信息即表示安装成功:

usage: hb

OHOS build system

positional arguments:
  {build,set,env,clean}
    build               Build source code
    set                 OHOS build settings
    env                 Show OHOS build env
    clean               Clean output

optional arguments:
  -h, --help            show this help message and exit

2.3.2 Hi3861开发环境

最好参考官方文档:
Hi3861开发环境
这里做下记录

(1)安装编译依赖基础软件(仅Ubuntu 20+需要)
执行以下命令进行安装:

sudo apt-get install build-essential gcc g++ make zlib* libffi-dev

(2)安装Scons
运行如下命令,安装SCons安装包。

python3 -m pip install scons

运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。

scons -v

图 1 SCons安装成功界面,版本要求3.0.4以上

(3)安装python模块
运行如下命令,安装python模块setuptools。

pip3 install setuptools

(4)安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。

命令行方式:

sudo pip3 install kconfiglib

(5)安装pycryptodome,任选如下一种方式。

安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。

命令行方式:

sudo pip3 install pycryptodome

(6)安装six,任选如下一种方式。

命令行方式:

sudo pip3 install six --upgrade --ignore-installed six

(7)安装ecdsa,任选如下一种方式。

命令行方式:

sudo pip3 install ecdsa

(8)安装gcc_riscv32(WLAN模组类编译工具链)
下载以下交叉编译工具链:
交叉编译工具链下载
请先执行以下命令将压缩包解压到根目录:

tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
vim ~/.bashrc

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/gcc_riscv32/bin:$PATH

生效环境变量。

source ~/.bashrc

Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。

riscv32-unknown-elf-gcc -v

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何采集opc服务器数据上传云端

为了进一步提高生产效率,生产制造的不断朝着智能化发展和升级,传统的自动化生产系统已经不能满足需求。传统的SCADA系统一般是用于现场的数据采集与控制,但是本地控制已经无法满足整个工厂系统智能化数字化的需求,智能化数字化是需…

【Altium Designer 20 笔记】PCB线宽与过孔尺寸

电源线:40mil1A(一般翻倍给),地线比电源线粗一点即可;信号线:10-15mil 一、线宽 市电的火线和零线:80-100mil12V /24V 20mil~60mil 5V 20-30mil 3V 20-30mil GND 越宽越好20-30mil普通信号线 10mil-15mil…

Qt 3 QVariant类的使用和实例

QVariant, 类本质为 C联合(Union)数据类型,它可以保存很多Qt 类型的值,包括 QBrush、QColor、QString 等等。也能够存放Qt的容器类型的值。QVariant::StringList 是 Qt定义的一个 QVariant::type 枚举类型的变量,其他常用的枚举类型变量如下表…

LabVIEW变速箱自动测试系统

LabVIEW变速箱自动测试系统 在农业生产中,采棉机作为重要的农用机械,其高效稳定的运行对提高采棉效率具有重要意义。然而,传统的采棉机变速箱测试方法存在测试效率低、成本高、对设备可能产生损害等问题。为了解决这些问题,开发了…

网站添加PWA支持,仅需三步,无视框架的类型

总结起来,网站配置PWA简单步骤为: 编写 manifest.json;编写 serviceWorker.js;在 index.html 引入上述两个文件;把上述三个文件放在网站根目录(或者同一目录下);网站需要部署在https环境才能触发&#xff…

偏微分方程算法之二维初边值问题(交替方向隐(ADI)格式)

一、研究对象 以二维抛物型方程初边值问题为研究对象: 为了确保连续性,公式(1)中的相关函数满足: 二、理论推导 2.1 向前欧拉格式 首先进行网格剖分。将三维长方体空间(二维位置平面一维时间轴&#xff09…

微服务之CircuitBreaker断路器

一、概述 1.1背景 在一个分布式系统中,每个服务都可能会调用其它的服务器,服务之间是相互调用相互依赖。假如微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务。这就是构成所谓“扇出”。 如果扇出的链路上某个微服务的调…

图数据库Neo4J入门——Neo4J下载安装+Cypher基本操作+《西游记》人物关系图实例

这里写目录标题 一、效果图二、环境准备三、数据库设计3.1 人物节点设计3.2 关系设计 四、操作步骤4.1 下载、安装、启动Neo4J服务4.1.1 配置Neo4J环境变量4.1.2 启动Neo4J服务器4.1.3 启动Ne04J客户端 4.2 创建节点4.3 创建关系(从已有节点创建关系)4.4…

数据结构和算法(哈希表和图(A*算法精讲))

一 、哈希表 1.1 哈希表原理精讲 哈希表-散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法 键(key): 组员的编号如,1、5、19。。。 值(value): 组员的其它信息(包含性别、年龄和…

并查集练习

前言&#xff1a; 关于并查集的一些训练题。 正文&#xff1a; 1.亲戚&#xff1a; #include<bits/stdc.h> using namespace std; const int N5005; int fa[N]; int find(int x){if(xfa[x])return x;return fa[x]find(fa[x]); } void merge(int x,int y){fa[find(x)]fi…

MajorDoMo thumb.php 未授权RCE漏洞复现(CNVD-2024-02175)

0x01 产品简介 MajorDoMo是MajorDoMo社区的一个开源DIY智能家居自动化平台。 0x02 漏洞概述 MajorDoMo /modules/thumb/thumb.php接口处存在远程命令执行漏洞&#xff0c;未经身份验证的攻击者可利用此漏洞执行任意指令&#xff0c;获取服务器权限。 0x03 影响范围 MajorD…

消息队列和分布式消息队列

文章目录 分析系统现状不足中间件消息队列什么是消息队列&#xff1f;应用场景消息队列的模型为什么不直接传输&#xff0c;而要用消息队列&#xff1f;为什么要用消息队列&#xff1f;消息队列的缺点&#xff1f; 分布式消息队列分布式消息队列的优势&#xff1f;消息队列应用…

数字晶体管数字三极管

数字晶体管 指内部集成了电阻的三极管&#xff0c;有PNP和NPN型&#xff0c;也有双管&#xff0c;双管有3种形式&#xff0c;其中一种是PNPNPN。下面以双NPN示例&#xff0c;好处是外面没有电阻&#xff0c;批量应用时&#xff0c;焊点费用就可省下不少。双NPN的用在串口自动下…

SSH客户端工具输入目标地址端口远程失败故障原因和解决方案

问题表现&#xff1a;SSH客户端工具输入目标地址端口远程失败时&#xff0c;出现ssh client 报 algorithm negotiation failed的异常信息。 使用SSH Secure Shell Client连接Linux服务器的SSH的时候有时会出现错误提示信息&#xff1a;ssh algorithm negotiation failed。这是…

HarmonyOS NEXT星河版之实战知乎App评论功能

文章目录 一、目标完成页面二、实战2.1 定义数据2.2 mock数据2.3 封装顶部标题栏2.4 封装评论Item2.5 定义回复组件2.6 主页面 三、小结 一、目标完成页面 二、实战 2.1 定义数据 export interface ReplyItem {avatar: ResourceStr // 头像author: string // 作者id: number …

【数据结构|C语言版】顺序表应用

前言1. 基于动态顺序表实现通讯录1.1 通讯录功能1.2 代码实现1.2.1 SeqList.h1.2.2 SeqList.c1.2.3 Contact.h1.2.4 Contact.c1.2.5 test.c 1.3 控制台测试1.3.1 添加联系人1.3.2 删除联系人1.3.3 修改联系人1.3.4 查找联系人1.3.5 清空通讯录1.3.6 通讯录读档和存档 2. 好题测…

Day 41:动态规划 LeedCode 343. 整数拆分 96.不同的二叉搜索树

343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 思路: 1.确定dp数组&#xff0…

支付系统核心逻辑 — — 状态机(JavaGolang版本)

支付系统核心逻辑 — — 状态机 代码地址&#xff1a;https://github.com/ziyifast/ziyifast-code_instruction/tree/main/state_machine_demo 1 概念&#xff1a;FSM&#xff08;有限状态机&#xff09;&#xff0c;模式之间转换 状态机&#xff0c;也叫有限状态机&#xff08…

OpenWrt 多拨负载均衡不起作用

检查 负载均衡->规则->Https->粘滞模式 是否启动&#xff0c;设置为 否 如果设置为是&#xff0c;那么根据官方描述&#xff1a; 来自相同源 IP 的流量&#xff0c;如果已经匹配过此规则并且在粘滞超时时间内&#xff0c;将会使用相同的 WAN 接口 意思就是如果你同一个…

R语言 并行计算makeCluster报错

问题&#xff1a;使用parallel包进行并行计算&#xff0c; cl <- makeCluster(detectCores()) 出现以下问题&#xff1a; 解决方式&#xff1a;用makeClusterPSOCK命令代替即可 library("future") cl <- makeClusterPSOCK(124, revtunnel TRUE, outfile &…