引言

OpenHarmony源码的获取方式有三种:从gitee、GitHub等基于git的代码托管平台获取;从华为的DevEco Marketplace网站获取;从镜像站点获取。

本文介绍如何用从华为的DevEco Marketplace网站获取OpenHarmony源码,并在Ubuntu系统下的鸿蒙设备开发环境中创建一个鸿蒙工程。

一、DevEco Marketplace简介

在华为的DevEco Marketplace这个网站里,有很多开源的鸿蒙发行版。这些开源的发行版大多是针对某一个具体的设备(如:一款开发板),对OpenHarmony的全量代码进行了裁剪。比如,某个设备因为硬件资源有限,没办法运行OpenHarmony中的一些功能组件,那么这些组件在发行版中就被裁掉了;或着说在这个设备的应用场景中根本就不需要某项功能,相应的功能组件也会在发行版中被裁掉。

我们在进行鸿蒙设备开发的时候,可以先到这个网站上去找一找有没有合适的发行版。这个网站也支持在这些发行版的基础上增加或删除一些功能组件,定制一个发行版本。你也可以把自己做的发行版提交到这个网站上开源给别人使用。

DevEco Marketplace这个网站的首页如下图所示。对于鸿蒙设备开发而言,比较重要的是 设备组件文档 。开发者可到设备组件中查找各种开源发行版和组件包;文档中详细说明了如何获取发行版、组件包,如何定制发行版,以及如何贡献自己的发行版和组件包。

下面,以Hi3861处理器的一款开发板为例,讲解从华为的DevEco Marketplace网站获取OpenHarmony源码并创建鸿蒙工程的过程。

注意: 从DevEco Marketplace这个网站下载和贡献代码都需要先注册一个华为账号。

二、获取鸿蒙发行版

参考: https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md

2.1 安装Node.js和HPM

获取发行版源码需要使用hpm命令行工具,而hpm使用Node.js中的npm安装的,所以要先安装Node.js和hpm。安装方法参考下文的第二部分第2.6~2.7节:

《搭建鸿蒙设备开发环境:Ubuntu20.04+DevEco Device Tool Release 3.0》 链接

如果你已经按照上面这篇文章搭建好鸿蒙设备开发环境,可略过此步骤。

2.2 获取发行版的配置文件

1、进入DevEco Marketplace首页后,先用账号登录(如果没有注册华为账号,请先进行注册)。

2、打开 设备组件 页面,选择 开源发行版 ,使用页面左侧的 过滤器 帮助查找所需要的开源发行版,如下图所示:

3、单击选中的开源发行版,如:上图中的 WLAN连接类产品 ,就会打开这个开源发行版最新版本的详情页面,如下图所示:

4、在详情页面的右侧,可以看到版本号和发布时间,单击 直接下载 可下载这个版本的配置文件(暂时不要点击下载);在详情页面的左侧,可以看到对当前版本的描述,单击 版本 ,查看该发行版的所有版本,如下图所示:

单击任何一个版本,就可以进入这个版本的详情页面。也可以单击版本最右边的下载图标,直接下载这个版本的配置文件。

记录一下: 2022-06-18,3.1.0~3.1.2版本的配置文件都有问题,无法成功下载该发行版源码。将问题提交给华为后,华为承认存在bug,希望你看到本文的时候,已被修复。

之前我一直使用2.2.0版本,至少我目前没遇到问题;3.0.1版本的配置文件对于获取源码没有问题,在本文中,不妨就用一下这个版本。

5、单击3.0.1版本右侧的下载图标,下载得到一个.tgz压缩文件,建议大家将这个压缩文件改个名字,改成自己想要创建的鸿蒙项目名称,例如:hispark_pegasus_301.tgz。我将这个压缩文件放到了~/Documents/DevEco/Projects目录下。

2.3 下载发行版源码

1、解压发行版配置文件压缩包hispark_pegasus_301.tgz

进入压缩包所在的文件夹:~/Documents/DevEco/Projects,在这个压缩文件中单击鼠标右键,选择 Extract Here ,就会得到一个名为hispark_pegasus_301的文件夹。

2、进入文件夹hispark_pegasus_301,在文件夹的空白处单击鼠标右键,选“Open in Terminal”,打开一个终端,在终端中执行命令:hpm install,即开始下载发行版的代码和相关工具链(确保能连接互联网)。

成功后,鸿蒙项目文件夹hispark_pegasus_301中的文件如下图所示:

如果你使用的是3.1.0~3.1.2版本的配置文件,可能会出现下图所示错误(至少2022-06-18测试时是这样的):

三、创建一个鸿蒙项目

请先按照下面这篇文章搭建鸿蒙开发环境:

《搭建鸿蒙设备开发环境:Ubuntu20.04+DevEco Device Tool Release 3.0》 链接

DevEco Device Tool版本: devicetool-linux-tool-3.0.0.401.zip

1、打开DevEco Device Tool,在“Home”页面中单击“Import Project”。

2、在弹出的窗口中选择鸿蒙项目文件夹hispark_pegasus_301,然后单击右下角的Import 。

3、在弹出的窗口中单击 Import

4、选择 Import from OpenHarmony Source

5、按照下图选择开发板、处理器等信息,然后单击 Open

6、在弹出的窗口中打勾,然后单击Yes

7、打开的鸿蒙项目如下图所示。

8、按下图所示对项目进行编译。

后记

我们其实也可以在DevEco Device Tool里,一站式完成本文第二、三部分所做的工作,不过好像只能下载发行版的最新一个版本创建鸿蒙工程。所以等华为修复前文所提到的bug后,请看我的另一篇文章:

《获取OpenHarmony源码:从DevEco Marketplace获取(2)》

补记

我们也可以在Ubuntu终端中,以命令行的方式,依次完成鸿蒙发行版的查找、下载和编译。

创建一个项目文件夹,

1、查看DevEco Marketplace这个网站上都有哪些鸿蒙开发板

hpm search -t distribution

n翻到下一页,按q退出。

2、新建一个项目文件夹(如:test),然后初始化

cd ~/Documents/DevEco/Projects
mkdir test
cd test
hpm init -t dist #初始化

3、在项目文件夹下,执行以下命令,下载开源发行版源码和工具链。

hpm i @ohos/hispark_pegasus@3.0.1

4、编译

有两种命令行编译方式:

(1)方式一:在项目文件夹下执行以下命令

hpm dist

(2)方式二:依次执行以下命令

hb set   #设置项目路径和要编译的产品
hb build #编译项目

本文在CSDN、公众号、头条号和知乎同步发布,感谢关注。

获取OpenHarmony源码:从DevEco Marketplace获取(1)相关推荐

  1. 获取OpenHarmony源码

    0. 前言 本篇文章是通过学习韦东山老师的免费教程整理和总结的,声明一下来源,支持韦东山老师的成果. 1. 安装git工具 sudo apt-get install git 2. 配置git 配置gi ...

  2. 如何获取android源码

    前言 要想掌握android 只能设备底层开发相关技术,需要先了解android系统源码的基本知识,在了解Android 系统源码之前,需要先获取其具体源码.因为目前世面上主流的操作系统有 Windo ...

  3. linux ubuntu 获取仓库源码并构建

    如何获取ubuntu源码包里面的源码? 1.在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项 2.使用如下命令获取xxx源码包的详细信息:  s ...

  4. 使用WebBrowser控件获取网页源码的方法

    使用WebBrowser控件获取网页源码的方法,网上有很多介绍,但绝大多数的人都是使用以下的方法获取: (WebBrowser1.Document as IHtmlDocument2).body.ou ...

  5. Spring AOP 增强器获取的源码解析

    Spring AOP 增强器获取的源码解析 转载于:https://juejin.im/post/5c2b230ae51d45778a5cad3e

  6. vc++获取网页源码之使用import+接口方式

    1.使用IWinHttpRequest获取网页源码 首先要创建基于对话框的mfc应用程序 2.import+接口方式 首先导入winhttp.dll,使用IWinHttpRequest接口 #impo ...

  7. POST教程笔记 - WinHttp获取网页源码

    ①.WinINet与WinHttp的异同点,为什么使用WinHttp讲解? 详情见:<WinINet与WinHttp总结>文档,已经打包给大家了. ②.WinHttp接口调用方式: 微软官 ...

  8. webclient无法获取html文件,C# WebClient获取网页源码的方法

    效果如图 完整代码如下using System; using System.Collections.Generic; using System.ComponentModel; using System ...

  9. 如何获取ubuntu源码包里面的源码进行编译

    如何获取ubuntu源码包里面的源码进行编译 1.在获取源码包之前,确保在软件源配置文件 /etc/apt/sources.list 中添加了deb-src项 2.使用如下命令获取xxx源码包的详细信 ...

最新文章

  1. 阅面科技赵京雷:全面拥抱AI2.0时
  2. html响应式导航栏制作,用Sass制作响应式导航栏(原创)
  3. yolo算法的优缺点分析_yolo算法介绍
  4. Java命令行界面(第10部分):picocli
  5. 用C#来学习唐诗三百首和全唐诗
  6. Android RIL源码研究笔记 の ril (一)
  7. MATLAB调用C语言程序—一个简单的例子
  8. 计算机上网记录怎么清除,win7系统彻底清除上网记录的详细方法
  9. linux c第四天———gcc、gdb、指针、大小端存储
  10. echarts图例动态置灰
  11. NSNumber Compare的崩溃
  12. dede标签帮助手册参考
  13. 北大计算机系工业设计考研,2019北京大学工学院工业设计工程考研经验分享
  14. 深度学习OSSIM关联分析(附源码注解)
  15. 程序员兼职可以从什么平台接私活?你值得知道!!!
  16. 无信息变量选择(UVE)波长筛选算法--基于OpenSA开源库实现
  17. 服装网上销售“美国版”——互动+体验=成功
  18. 计算机主机抗干扰措施有哪些,武汉理工大学自动化学院研究生复试面试150题答案...
  19. 目标检测YOLO实战应用案例100讲-基于深度学习的水下图像增强及目标检测算法研究与应用
  20. 最优化理论——(二)凸性1 凸集

热门文章

  1. DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation
  2. 离谱!两高中生用AI生成裸照,疯狂「变现」...
  3. STOMP 客户端开发
  4. JAVA 错误: 在类 com.runoob.test.HelloWord 中找不到 main 方法, 请将 main 方法定义为: public static void main(String
  5. 数据挖掘 之 爬虫实战
  6. anaconda下vnpy的安装
  7. 卡巴斯基报告文件的清理
  8. nn.Sequential nn.ModuleList
  9. 数据结构之图知识点总结
  10. Robot Framework For循环详解