OpenHarmony轻量设备开发理论与实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.4 OpenHarmony的版本

作为一个快速发展的操作系统,OpenHarmony的特点是版本多并且迭代速度快。

截至2023年4月9日,OpenHarmony一共发布了三个主版本,分别是第一版(1.x)、第二版(2.x)和第三版(3.x)。OpenHarmony的版本演进如图1-5所示。

图1-5 OpenHarmony的版本演进

从2020年9月10日OpenHarmony发布1.0版开始,到2021年3月15日发布1.0.1版,历时半年左右。接下来,它就进入了一个密集的版本更替状态。我们可以看到,2021年4月1日,1.1.0 LTS(Long Time Support,长期支持)版发布;6月1日,2.0 Canary版(一个内部预览版)发布;6月22日,1.1.1 LTS版发布。到了8月4日,请注意,OpenHarmony开始“双线作战”了,1.1.2 LTS版发布,同时2.2 Beta2版也发布了。9月30日,OpenHarmony发布了1.1.3 LTS版和3.0 LTS版,这两个版本也就是我们俗称的“930”版本。12月31日,OpenHarmony又发布了3.1 Beta版。2022年3月30日,3.1 Release(正式)版发布(2022的1月1日到2022年3月29日期间发布的3个版本在图中未列出)。2023年3月30日,3.2 Release版发布(2022年3月31日到2023年4月8日期间发布的17个版本在图中未列出)。所以,我们可以看到,OpenHarmony的版本目前快速迭代。

OpenHarmony的版本发布计划和各个版本的特性交付清单参见本节的配套资源(“OpenHarmony-RoadMap”)。

那么既然版本这么多,我们作为学习者,在学习轻量系统的时候,应该选择哪一个版本呢?下面来做一下客观分析。

首先,从版本状态来看,可以得出以下几个结论:

第一,1.0版目前已经不再维护了,但是从IoT接口的完整度上来讲,1.0版的IoT接口是最完善的。

第二,与1.0版相比,1.0.1版的IoT接口的变动比较大,但是从1.0.1版到3.2 Release版之间IoT接口的变化并不大。

第三,2.x版是没有Release版的。

第四,2021年9月30日发布了两个长期支持版,即1.1.3 LTS版和3.0 LTS版。

基于版本状态,我们给出3个候选版本。第一个候选版本是1.0.1版,这是IoT接口变动以后代码仓的容量最小的。第二个候选版本是1.1.3 LTS版,这是IoT接口变动以后最新的1.x主版本。第三个候选版本是3.0 LTS版,这是IoT接口变动以后整个代码仓中最新的LTS版本。

其次,从代码仓的容量来看,1.0.1版的代码仓包含98 902个文件,也就是将近10万个文件,总共占1.1GB的存储空间,而1.1.3 LTS版的文件数量是10万个出头(100 829个文件),总共占1.2GB的存储空间,比1.0.1版大一点点。但是到了3.0 LTS版就不一样了,3.0 LTS版的代码仓包含455 660个文件,它的存储空间暴增到了6.5GB。

最后,我们再分析一下候选版本对HDF的支持度。

这里出现了一个新名词——HDF。HDF的全称是Hardware Driver Foundation,即硬件驱动框架。HDF的目标是构建一个统一的驱动架构的平台,为驱动的开发者提供更精准、更高效的开发环境,力争做到“一次开发,多系统部署”。很明显,HDF是OpenHarmony控制硬件的趋势。但是,截至2023年4月9日,轻量系统的驱动框架还没有采用HDF,期待未来的新版本会做HDF驱动框架的适配。简而言之,HDF虽好,但是目前轻量系统还用不上。

基于以上的分析,在学习轻量系统的时候,本书推荐的版本是1.1.3 LTS版。理由如下:

第一,从IoT接口上来讲,1.1.3 LTS版向前兼容到3.2 Release版,向后兼容到1.0.1版。

第二,1.1.3 LTS版是一个Release版,同时也是一个长期支持版,相对稳定、成熟一些,既有利于个人开发者和学生学习,也有利于教师和学校顺利地开展课程建设。

第三,1.1.3 LTS版的代码仓相对来说并不大,使用起来会更方便一些。

另外,有一点需要注意的是,虽然本书推荐的是1.1.3 LTS版,但是不代表本书只使用这个版本。前面提到了轻量系统的IoT接口在1.0.1版到3.2 Release版之间的变化是不大的,甚至可以说是非常小的。事实上,本书中的所有示例的源码在1.0.1版到3.1 beta版上都可以编译运行(3.2 Beta版到3.2 Release版需要简单适配)。