【开源鸿蒙】OpenHarmony 5.0.0 发布了,速来下载最新代码

【开源鸿蒙】OpenHarmony 5.0.0 发布了,速来下载最新代码

    • 一、写在前面
    • 二、准备命令工具
    • 三、配置用户信息
    • 四、下载OpenHarmony源码
      • 4.1 使用ssh协议下载(推荐)
      • 4.2 使用https协议下载
    • 五、下载编译工具链
    • 六、参考链接

今天是9月30号,按照惯例OpenHarmony会发新版本(这个时间点前后)。

今早打开码云OpenHarmony项目首页,果然,看到了发布新版本的公告:

社区已于2024-09-29发布OpenHarmony-v5.0.0-Release版本, 详情请参考https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.0.0-release.md

看了一下Release Note,具体发布时间是9月29号。

一、写在前面

遥想当年,Android 5.0可以说是Android的一个划时代版本。Android 5.0 全面使用ART替代Dalvik(4.4版本引入),原先的Dalvik可以看做类似JVM的字节码解释器,最直观的区别是——JVM的字节码是.class文件,而Dalvik的字节码文件是.dex文件(当然具体实现细节上有非常多差异,这你不在展开)。应用程序由原来解释执行dex字节码变成安装时预编译为本地代码,运行时只需要执行本地代码就可以了。ART特性极大的提升了应用程序的执行效率,让系统和应用的流畅度有了非常大的的提升,很大程度上提升了用户体验。

而现在,OpenHarmony也迎来了5.0版本,希望也能和Android 5.0版本一样在整个版本历史上成为一个令人难忘的里程碑。Android ART类似的,OpenHarmony的应用程序最早使用JS和C++开发,早期标准版和小型版的JS执行环境都是QuickJS,后来标准版换为了Ark Compiler和Ark Runtime(方舟编译器和方舟运行时)、小型版也逐步从QuickJS换为了Ark。

OpenHarmony的Ark和Android的ART类似的是,最终运行时执行的都是native代码,都解决了解释执行效率低的问题。

二、准备命令工具

本节介绍如何准备命令行工具,具体包括git/repo/python。

OpenHarmony代码托管在码云服务器上,下载单个代码仓通常使用git命令行工具,下载所有代码仓需要使用repo命令行工具。repo命令行工具是由Python开发的,因此开始之前,需要线安装git/git-lfs/python等命令行工具。

安装git/git-lfs/python/curl,执行如下命令:

sudo apt install git git-lfs python3-pip curl

安装repo命令,执行如下命令:

# 创建目录
mkdir ~/bin

# 下载repo脚本
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo

# 下载repo依赖的软件包
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

三、配置用户信息

本节介绍如何配置本地git用户名和邮箱,以及如何配置码云SSH公钥(使用ssh协议下载必须配置):

  1. 注册码云gitee帐号。

  2. 注册码云SSH公钥,请参考码云帮助中心。

  3. 配置git用户信息,执行如下命令:

    git config --global user.name "yourname"
    git config --global user.email "your-email-address"
    git config --global credential.helper store
    
  4. 创建目录,用于存放OpenHarmony源码,执行如下命令:

    mkdir -p ~/ohos/openharmony
    cd ~/ohos/openharmony
    

四、下载OpenHarmony源码

4.1 使用ssh协议下载(推荐)

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

  • 从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。

    repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-5.0.0-Release --no-repo-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    
  • 从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。

    repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v5.0.0-Release --no-repo-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    

4.2 使用https协议下载

通过repo + https 下载。

  • 从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。

    repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-5.0.0-Release --no-repo-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    
  • 从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。

    repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v5.0.0-Release --no-repo-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    

代码下载完成,占用的磁盘空间为51G:

image-20241001214001202

五、下载编译工具链

代码下载完成后,还需要执行prebuilts_download.sh脚本,下载编译工具链,执行如下命令:

bash build/prebuilts_download.sh

这个脚本会创建prebuilts目录,并将边回忆工具链下载、解压到这个目录下。

以上全部完成后,磁盘空间占用67G:

image-20241001214628323

六、参考链接

本文主要参考了OpenHarmony文档仓,里面由其他版本的发布说明(Release Note),根据其他版本的发布说明,也可以下载其他版本的源代码。

  1. https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes
  2. https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.0.0-release.md

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

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

相关文章

【网络基础】网络常识快速入门知识清单,看这篇文章就够了

💐个人主页:初晴~ 在现在这个高度智能化的时代,网络几乎已经成为了空气一般无处不在。移动支付、网上购物、网络游戏、视频网站都离不开网络。你能想象如果没有网络的生活将会变成什么样吗🤔 然而如此对于如此重要的网络&#xf…

2024年录屏软件排行榜:班迪录屏等四款软件实测!

不论是学习、娱乐还是工作,都有可能需要用到屏幕录制功能。在这篇文章中,我们将从不同的使用场景出发,为大家推荐几款实用的录屏工具——福昕录屏大师、转转大师录屏、爱拍录屏以及班迪录屏。 Foxit REC 直达链接(复制到浏览器打…

STM32精确控制步进电机

目的:学习使用STM32电机驱动器步进电机,进行电机运动精确控制。 测试环境: MCU主控芯片STM32F103RCT6 ;A4988步进电机驱动器模块; 微型2相4线步…

html5 + css3(下)

目录 CSS基础体验cssCSS引入方式选择器选择器-标签选择器-类选择器-id选择器-通配符 文字基本样式1.1 字体大小1.2 字体粗细1.3 字体样式(是否倾斜) 文字-字体1.4 常见字体系列(了解)1.5 字体系列 拓展-层叠性font复合属性文本缩进…

数电基础(组合逻辑电路+Proteus)

1.组合逻辑电路 1.1组合逻辑电路的分析 1.1.1组合逻辑电路的定义 组合逻辑电路的定义 (1)对于一个逻辑电路,其输出状态在任何时刻只取决于同一时刻的输入状态,而与电路的原来状态无关,这种电路被定义为组合逻辑电路…

vue3使用Teleport 控制台报警告:Invalid Teleport target on mount: null (object)

Failed to locate Teleport target with selector “.demon”. Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree main.…

等保测评:企业数字安全的坚实盾牌

1.1 企业数字化转型的浪潮 在当今时代,企业数字化转型的浪潮正以前所未有的速度席卷全球,据IDC预测,到2023年,全球数字化转型支出将达到惊人的2.3万亿美元。这一趋势不仅重塑了企业的运营模式,更对企业的信息安全提出…

TypeScript 算法手册【插入排序】

文章目录 TypeScript 算法手册 - 插入排序1. 插入排序简介1.1 插入排序定义1.2 插入排序特点 2. 插入排序步骤过程拆解2.1 选择当前元素2.2 寻找插入位置2.3 插入元素 3. 插入排序的优化3.1 二分查找插入排序案例代码和动态图 4. 插入排序的优点5. 插入排序的缺点总结 【 已更新…

工业制造场景中的设备管理深度解析

在工业制造的广阔领域中,设备管理涵盖多个关键方面,对企业的高效生产和稳定运营起着举足轻重的作用。 一、设备运行管理 1.设备状态监测 实时监控设备的运行状态是确保生产顺利进行的重要环节。通过传感器和数据采集系统等先进技术,获取设备…

【C#】CacheManager:高效的 .NET 缓存管理库

在现代应用开发中,缓存是提升性能和降低数据库负载的重要技术手段。无论是 Web 应用、桌面应用还是移动应用,缓存都能够帮助减少重复的数据查询和处理,从而提高系统的响应速度。然而,管理缓存并不简单,尤其是当你需要处…

【Linux】进程概念-2

文章目录 1.环境变量1.1 基本概念1.2 常见环境变量1.3 查看环境变量方法1.4 测试PATH1.5 测试HOME1.6 和环境变量相关的命令1.7 环境变量的组织方式1.8 通过代码如何获取环境变量1.9 通过系统调用获取或设置环境变量1.10 环境变量通常是具有全局属性的 1.环境变量 1.1 基本概念…

Vue3 + element-plus el-table二次封装组件新增虚拟滚动功能

1、此功能已集成到TTable组件 和TSelectTable 2、最终效果(基于element-plus 的 el-table组件) 3、TTable或TSelectTable组件使用(只需要在标签中设置useVirtual即可) 4、源码(可以提取当做hooks方式来使用–具体看组…

物联网将如何影响全球商业?

互联网使人们能够交流,企业能够全天候不间断地跨洋跨洲持续运营。它重塑、颠覆并催生了新的产业,改变了人类与世界互动的方式。互联网曾经仅仅是一种方便、快捷、廉价的向世界各地发送信息的方式,而现在,只需打开或关闭任何连接到…

成都网安周暨CCS2024 | 大模型安全与产业应用创新研讨活动成功举办

9月11日-12日,作为2024年国家网络安全宣传周成都系列活动的重磅活动之一,CCS 2024成都网络安全系列活动在成都举行。“大模型安全与产业应用创新研讨活动”同期举办,本场活动由百度安全、成都无糖信息联合承办,特邀云安全联盟CSA大…

【智能算法应用】正余弦优化算法求解二维路径规划问题

摘要 正余弦优化算法(Sine Cosine Algorithm, SCA)是一种新颖的群体智能优化算法,能够有效地求解复杂的非线性问题。在本研究中,我们将SCA应用于二维路径规划问题,以找到从起点到终点的最优路径,同时避开障…

心觉:如何抓住宇宙送来的运气和机会?

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作186/1000天 赚钱需要系统学习吗 你会发现生活中没什么学历,知道的也没你多,行动力也不一定有你强&#x…

《线性代数》学渣笔记

文章目录 1 行列式1.1 克拉默法则1.2 基本性质1.3 余子式 M i j M_{ij} Mij​1.4 代数余子式 A i j ( − 1 ) i j ⋅ M i j A_{ij} (-1)^{ij} \cdot M_{ij} Aij​(−1)ij⋅Mij​1.5 具体型行列式计算(化为基本型)1.5.1 主对角线行列式:主…

PostgreSQL的字段存储类型了解

PostgreSQL的字段存储类型了解 在 PostgreSQL 中,每个字段(列)都有其存储类型,这些存储类型决定了数据库如何存储和处理该字段的数据。了解和适当地利用这些存储类型,可以提高数据库的性能和存储效率。 主要的存储类…

【设计模式-模板】

定义 模板方法模式是一种行为设计模式,它在一个方法中定义了一个算法的骨架,并将一些步骤延迟到子类中实现。通过这种方式,模板方法允许子类在不改变算法结构的情况下重新定义算法中的某些特定步骤。 UML图 组成角色 AbstractClass&#x…

工业交换机一键重启的好处

在当今高度自动化和智能化的工业环境中,工业交换机作为网络系统中至关重要的一环,其稳定性和可靠性直接影响到整个生产过程的顺利进行。为了更好地维护这些设备的健康运行,一键重启功能应运而生,并呈现出诸多显著的好处。 首先&am…