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

前言:

以前下载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"/>

每个仓可以适用于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
  • 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

其中 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'

如果编译的时候报错:

在这里插入图片描述


可以执行

pip install Jinja2

最后编译通过,代码总大小只有5G

在这里插入图片描述

原文地址:https://qidicloud.blog.csdn.net

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读1.4k次。被@Observed装饰的类,可以被观察到属性的变化;子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是class object中是属性,这个属性同样也需要被@Observed装饰。单独使用@Observed是没有任何作用的,需要搭配@ObjectLink或者@Prop使用。_鸿蒙ark对象数组
文章浏览阅读1k次。Harmony OS_harmonyos创建数据库
文章浏览阅读1.1k次,点赞25次,收藏23次。自定义组件Header.ets页面(子组件)//自定义组件@Component//组件声明private title:ResourceStr//接收的参数build(){Row() {index.ets(父组件)//导入自定义组件@Entry@Componentbuild() {Column() {/*** 1. 自定义组件调用-----自定义组件------* 2. 在调用的组件上设置样式*/ShopTitle({ title: '商品列表' })
文章浏览阅读952次,点赞11次,收藏25次。ArkUI是一套构建分布式应用界面的声明式UI开发框架。它使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具,帮助您提升移动应用界面开发效率30%。您只需使用一套ArkTS API,就能在Android、iOS、鸿蒙多个平台上提供生动而流畅的用户界面体验。_支持ios 安卓 鸿蒙next的跨平台方案
文章浏览阅读735次。​错误: 找不到符号符号: 变量 Layout_list_item位置: 类 ResourceTable_错误: 找不到符号 符号: 变量 resourcetable 位置: 类 mainabilityslice
文章浏览阅读941次,点赞23次,收藏21次。harmony ARKTS base64 加解密_鸿蒙 鸿蒙加解密算法库
文章浏览阅读860次,点赞21次,收藏24次。使用自定义布局,实现子组件自动换行功能。图1自定义布局的使用效果创建自定义布局的类,并继承ComponentContainer,添加构造方法。//如需支持xml创建自定义布局,必须添加该构造方法实现ComponentContainer.EstimateSizeListener接口,在onEstimateSize方法中进行测量。......@Override//通知子组件进行测量//关联子组件的索引与其布局数据idx++) {//测量自身。_鸿蒙javaui
文章浏览阅读917次,点赞25次,收藏25次。这里需要注意的是,真机需要使用华为侧提供的测试机,测试机中会安装纯鸿蒙的系统镜像,能够体验到完整的鸿蒙系统功能,纯鸿蒙应用目前还不能完美地在 HarmonyOS 4.0 的商用机侧跑起来。当前,真机调试需要使用华为侧提供的测试机,测试机中会安装纯鸿蒙的系统镜像,能够体验到完整的鸿蒙系统功能,纯鸿蒙应用目前还不能完美地在 HarmonyOS 4.0 的商用机侧跑起来。另外,由于样式的解析是基于组件文件的纬度的,因此样式文件只能应用于被其引用的组件文件中,而不能跨文件应用,并且样式文件也只支持类选择器。_鸿蒙 小程序
文章浏览阅读876次,点赞17次,收藏4次。2. HarmonyOS应用开发DevEcoStudio准备-1HUAWEI DevEco Studio为运行在HarmonyOS和OpenHarmony系统上的应用和服务(以下简称应用/服务)提供一站式的开发平台。
文章浏览阅读811次。此对象主要映射JSON数组数据,比如服务器传的数据是这样的。_arkts json
文章浏览阅读429次。鸿蒙小游戏-数字华容道_华为鸿蒙手机自带小游戏
文章浏览阅读1.1k次,点赞24次,收藏19次。Ability是应用/服务所具备的能力的抽象,一个Module可以包含一个或多个Ability。
文章浏览阅读846次。本文带大家使用MQTT协议连接华为IoT平台,使用的是E53_IA1 智慧农业扩展板与 BearPi-HM_Nano 开发主板_mqtt 如何对接第三方iot平台
文章浏览阅读567次。HarmonyOS_arkts卡片
文章浏览阅读1k次,点赞19次,收藏20次。ArkTS开发鸿蒙OS连接mongoDB(后端node.js)2024最新教程
文章浏览阅读1.2k次,点赞23次,收藏15次。HarmonyOS与OpenHarmony(1)本质上的不同是:HarmonyOS是鸿蒙操作系统,而OpenHarmony则是从开源项目。这里可以联想一下Android,比如小米手机在Android开源系统的基础上开发了MIUI的手机操作系统,HarmonyOS就类似于MIUI,OpenHarmony类似Android基础底座。(2)HarmonyOS:是双框架,内聚了AOSP(Android Open Source Project )和OpenHarmony等。_鸿蒙模拟器开了怎么跑代码
文章浏览阅读1.1k次,点赞21次,收藏21次。鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Navigation组件。
文章浏览阅读2k次。由于之前的哥们匆忙离职了,所以鸿蒙手表项目的新版本我临时接过来打包发布,基本上之前没有啥鸿蒙经验,但是一直是做Android开发的,在工作人员的指导下发现打包配置基本上和Android一样,所以这些都不是问题,这里记录一下使用过程中遇到的问题。!过程和遇到的问题基本上都讲解了,关机睡觉,打卡收工。_鸿蒙系统adb命令
文章浏览阅读7.3k次,点赞9次,收藏29次。39. 【多选题】_column和row容器中,设置子组件在主轴方向上的对齐格式
文章浏览阅读1.1k次,点赞13次,收藏24次。18.鸿蒙HarmonyOS App(JAVA)日期选择器-时间选择器点击button按钮显示月份与获取的时间。_harmonyos农历获取