当前位置:   article > 正文

OpenHarmony仓库大整理 可以指定系统类型下载对应代码_openharmony manifest下载vendor厂商代码

openharmony manifest下载vendor厂商代码

前言:

以前下载OpenHarmony代码的时候,我们都是需要下载全量包,代码量非常大,现在已经有30多G了。
而我们如果只是想开发轻量系统,例如润和的Hi3861智能家居开发套件的话,实际上使用不到那么多代码的,很多代码都是小型系统、标准系统,下载起来非常多余。
终于,在近期,OpenHarmony仓库迎来大整改,可以支持指定系统类型下载对应代码。
给大家看看,我今天下载轻量系统 master分支的,整个文件夹只有5G,其中还有doc文件夹、device文件没整理,repo 文件夹就占了 2.9G。不过整体比之前一口气要下载30多G好很多了。
在这里插入图片描述

仓库说明

详细的说明可以见官方文档:https://gitee.com/openharmony/manifest

1. 仓的分类说明

为了支持按照不同类型下载代码,OpenHarmony为每个代码仓定义了以下类别:

分类分类说明group
轻量系统仓适用于轻量系统的代码仓ohos:mini
小型系统仓适用于小型系统的代码仓ohos:small
标准系统仓适用于标准系统的代码仓ohos:standard
系统组件仓标准系统中与硬件无关的代码仓,构建产物都部署在/system目录下。ohos:system
芯片组件仓标准系统中与芯片或硬件相关的仓,构建产物部署在/vendor或/chipset目录下。ohos:chipset

一个仓可以归属于多个group,如下代码所示,groups中多个group以","连接在一起。

<project name="miscservices_inputmethod" path="base/miscservices/inputmethod" groups="ohos:standard,ohos:system"/>

<project name="ai_engine" path="foundation/ai/engine" groups="ohos:mini,ohos:small,ohos:standard,ohos:system"/>
  • 1
  • 2
  • 3

每个仓可以适用于mini,small或standard系统,如果适用于standard系统,同时需要明确是ohos:system类型还是ohos:chipset类型。

每个仓都需要加入默认的default组。

2. 平台仓和芯片仓

OpenHarmony会支持越来越多的芯片平台,每个芯片平台会在device和vendor目录下创建相应的仓;为了区分,我们把这类仓称为芯片仓,其它的仓称为平台仓。平台仓和芯片仓具有不同的生命周期,芯片仓可能会随着硬件的演进而逐渐废弃,而平台仓相对与具体的硬件关系不大,生命周期相对更长。

平台仓都组织在manifests/ohos/ohos.xml文件中,而芯片仓都组织在**manifests/chipsets/**目录下。全量的代码仓组织形式如下所示:

manifest
    ├── default.xml
    │   └── ohos
    │   └── ohos.xml
    └── chipsets
        ├── all.xml
        ├── chipset1.xml
        ├── chipset2.xml
        ├── chipsetN.xml
        ├── chipset1
        │   └── chipset1-detail.xml
        ├── chipset2
        │   └── chipset2-detail.xml
        └── chipsetN
            └── chipsetN-detail.xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • default.xml由ohos/ohos.xml和chipsets/all.xml组成,是所有平台仓和芯片仓的集合;通过此方式可以下载所有代码仓。
  • chipsets/chipsetN/chipsetN-detail.xml是单个芯片平台所引入的仓集合,chipsets/chipsetN.xml是由ohos/ohos.xml和chipsetN-detail.xml仓组合而成,用于下载该芯片平台的全量仓。
  • chipsets/all.xml则是所有芯片平台xxx/xxx-detail.xml的仓组合,用于汇总所有芯片仓。

按照上述分类,可支持各种代码下载方式:

统分类代码下载方式下载命令说明
所有系统全量代码repo init -u URL -b master默认下载OpenHarmony的全量代码(兼容已有下载命令)。
轻量系统全量代码repo init -u URL -b master -g ohos:mini下载轻量系统全量代码。
轻量系统指定芯片代码repo init -u URL -b master -m chipsets/chipsetN.xml -g ohos:mini下载轻量系统指定芯片的代码。
小型系统全量代码repo init -u URL -b master -g ohos:small下载小型系统全量代码。
小型系统指定芯片代码repo init -u URL -b master -m chipsets/chipsetN.xml -g ohos:small下载小型系统指定芯片的代码。
标准系统全量代码repo init -u URL -b master -g ohos:standard下载标准系统的全量代码。
标准系统指定芯片代码repo init -u URL -b master -m chipsets/chipsetN.xml -g ohos:standard下载标准系统指定芯片的代码。
标准系统系统组件代码repo init -u URL -b master -g ohos:system下载标准系统系统组件的代码。
标准系统芯片组件代码repo init -u URL -b master -g ohos:chipset下载芯片组件的代码(所有芯片平台)。
标准系统指定芯片组件代码repo init -u URL -b master -m chipsets/chipsetN.xml -g ohos:chipset下载指定芯片chipsetN的芯片组件代码。

3.使用方法

例如我们想下载 master 轻量系统,下载命令是:

repo init -u URL -b master -g ohos:mini
  • 1

其中 URL 可以替换成 git@gitee.com:openharmony/manifest.git
也就是下载命令如下:

repo init -u git@gitee.com:openharmony/manifest.git -b master -g ohos:mini

repo sync -c
repo forall -c 'git lfs pull'
  • 1
  • 2
  • 3
  • 4

如果编译的时候报错:
在这里插入图片描述
可以执行

pip install Jinja2
  • 1

最后编译通过,代码总大小只有5G
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/336294
推荐阅读
相关标签
  

闽ICP备14008679号