源码获取
详情请参考:https://gitee.com/openharmony/docs/blob/master/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md
OpenHarmony 介绍
OpenHarmony 是 HarmonyOS 的开源版,由华为捐献给凋谢原子开源基金会(OpenAtom Foundation)开源。第一个开源版本反对在 128KB~128MB 设施上运行,欢送加入开源社区一起继续演进。
代码仓库地址:https://openharmony.gitee.com
源码获取概述
本文档将介绍如何获取 OpenHarmony 源码并阐明 OpenHarmony 的源码目录构造。OpenHarmony 的代码以组件的模式凋谢,开发者能够通过如下其中一种形式获取:
- 获取形式 1: 从镜像站点下载压缩文件(举荐)
- 获取形式 2: 从 hpm 网站组件式获取。通过 HPM,查找满足需要的解决方案,筛选 / 裁剪组件后下载。
- 获取形式 3: 用包管理器命令行工具获取。通过 HPM 的 hpm-cli 命令行工具,执行命令下载。
- 获取形式 4: 从代码仓库获取。通过 repo 或 git 工具从代码仓库中下载。
获取形式 1:从镜像站点获取
为了取得更好的下载性能,您能够抉择从以下站点的镜像库获取源码或者对应的解决方案。
表 1 源码获取门路
获取形式 2:从 hpm 网站组件式获取
实用场景
对于刚接触 OpenHarmony 的新用户,心愿可能参考一些示例解决方案从而进行疾速开发。能够在 HPM 获取举荐的解决方案,以此为根底,减少或裁剪局部组件,疾速定制零碎。
操作步骤
- 查找适合的解决方案组件包。
- 关上包治理页面 HPM,设定搜寻的对象为“解决方案“,如下图所示。
- 自搜寻框输出关键字搜寻,如 ”camera”。
- 后果中显示匹配的解决方案,能够进一步依据组件类别等过滤条件 (如:适配的开发板,内核)准确筛选。
- 查找适合的解决方案,点击查看解决方案详情介绍
-
定制解决方案组件包。
- 仔细阅读解决方案的阐明,以理解该解决方案的应用场景、个性、应用办法以及如何进行定制化,如下图所示。
- 点击「间接下载」,将解决方案下载到本地。
- 点击「定制组件」,将对解决方案蕴含的组件进行定制。
- 定制组件。
- 下载的压缩文件并未蕴含源代码的原始文件,能够在 IDE 中导入下载的压缩包,解压后执行 hpm 的装置指令 (hpm install),才会将所须要的组件全副下载下来。
- 下载的组件存在工程目录下的 ohos_bundles 文件夹中。
- 进入解决方案定制页面,如下图所示。
- 通过敞开开关移除可选组件,或者通过“增加组件”减少新的组件。
- 在左边填写您的我的项目根本信息,包含名称、版本、形容等信息。
- 点击“下载“,零碎会依据您的抉择,生成相应的 OpenHarmony 代码构造文件 (如 name.zip),保留至本地文件。
获取形式 3:用包管理器命令行获取
实用场景
- 用户已通过组件式获取的形式获取源码,须要对源码中的某个或某几个组件进行独立降级。
- 用户曾经比拟相熟 OpenHarmony 零碎的开发并且熟练掌握命令行工具的应用。
筹备
通过命令行获取,须要先装置 Node.js 和 hpm 命令行工具,装置步骤如下:
- 装置 Node.js。
官网下载并在本地装置 Node.js.
举荐装置 Node.js 12.x (蕴含 npm 6.14.4) 或更高版本 (举荐 12.13.0+)。
- 通过 Node.js 自带的 npm 装置 hpm 命令行工具。
关上 CMD,执行以下命令:
npm install -g @ohos/hpm-cli
- 装置实现后执行如下命令,显示 hpm 版本,即装置胜利。
hpm -V 或 hpm --version
- 如果降级 hpm 的版本,请执行如下命令:
npm update -g @ohos/hpm-cli
操作
接下来将组件增加到开发我的项目中,假设要获取的组件名为 @ohos/demo,具体操作如下:
- 进入开发目录,执行如下命令,采纳默认模板创立一个开发我的项目。
hpm init -t default
- 执行如下命令,装置组件 @ohos/demo
hpm install @ohos/demo
- 工具会主动从服务器下载所有依赖的组件,下载胜利则显示 Install successfully!
$ hpm install @ohos/demoRequesting: https://url.foo.bar/hpm/registry/api/bundles/@ohos/demodownloading @ohos/demoRequesting: https://lfcontentcenterdev....../bMAlLrYISLqdUTFFFCdgzA.tgzextract D:\demo\ohos_bundles\@ohos\demo\@ohos-demo-1.0.7.tgzInstall successfully!
获取形式 4:从代码仓库获取
实用场景
- 基于 OpenHarmony 的稳固分支建设本人的基线,散发上游客户。
- 曾经实现本身软件与 OpenHarmony 的对接,须要进行 OpenHarmony 官网认证。
- 芯片 / 模组 /app 通过 OpenHarmony 官网认证后,奉献代码到 OpenHarmony 生态。
- 修复 OpenHarmony 的问题。
- 学习 OpenHarmony 的源码。
筹备
- 注册码云 gitee 账号。
- 注册码云 SSH 公钥,请参考码云帮忙核心的公钥治理:https://gitee.com/help/articles/4181
- 装置 git 客户端并配置用户信息。
git config --global user.name "yourname"git config --global user.email "your-email-address"git config --global credential.helper store
- 装置码云 repo 工具,能够执行如下命令。
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repochmod a+x /usr/local/bin/repopip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
操作
形式一(举荐):通过 repo 下载
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verifyrepo sync -c
形式二:通过 git clone 单个代码仓库
进入代码仓库主页:https://gitee.com/openharmony,抉择须要克隆的代码仓库,执行命令,如:
git clone https://gitee.com/openharmony/manifest.git -b master
源码目录简介
下表是 OpenHarmony 源码的目录及简略阐明:
表 2 源码目录的阐明
目录名 | 形容 |
---|---|
applications | 应用程序样例,包含 wifi-iot,camera 等 |
base | 根底软件服务子系统集 & 硬件服务子系统集 |
build | 组件化编译、构建和配置脚本 |
domains | 加强软件服务子系统集 |
drivers | 驱动子系统 |
foundation | 零碎根底能力子系统集 |
kernel | 内核子系统 |
prebuilts | 编译器及工具链子零碎 |
test | 测试子系统 |
third_party | 开源第三方组件 |
utils | 罕用的工具集 |
vendor | 厂商提供的软件 |
build.py | 编译脚本文件 |
HarmonyOS 官网开发者论坛:https://developer.huawei.com/consumer/cn/forum/blockdisplay?fid=0101303901040230869
原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202350736685590542&fid=0101303901040230869
原作者:kelly