本文来源电子发烧友社区,作者:枫雪天, 帖子地址:https://bbs.elecfans.com/jishu_2032698_1_1.html
工欲善其事,必先利其器。在正式开始开发之前,我们先学习开发环境的搭建。
由于目前仍在早期,Harmony OS的开发环境需要依赖Linux的编译环境,相对于一些只需要在Windows上安装一个IDE的环境略复杂,但是对于绝大部分开发者来说,门槛还是相对比较低的。并且官方考虑到初学者安装环境的不便,发布了包含开发环境的Docker安装包和虚拟机镜像,使得环境的搭建更为方便。
由于在论坛看到的大部分开发者使用的环境都是在Windows上安装Docker或虚拟机,这样的好处是方便,只在一台电脑上就可以完成开发,但同时也有一些不足,无论是Docker还是虚拟机,只要在Windows系统上运行Linux,本质上都是需要在底层进行虚拟化的,这样会带来Linux系统性能的下降。因此,对于手上已经有Linux物理机或服务器资源的开发者来说,不妨直接在Linux物理机或者服务器上安装Docker环境,以获得更快的编译速度。
接下来,我会详细列出在Linux上搭建Docker开发环境的步骤,使用的基础环境为Ubuntu 16.04。
第一部分,在Linux上安装Docker。
1. 添加 Docker的官方 GPG 密钥
复制代码
3. 使用apt-get安装Docker
复制代码
第二部分,拉取并启动Docker仓库
经过以上步骤,Linux系统就可以使用Docker了,接下来,我们为开发环境设置目录
1. 创建Docker路径,我使用的路径是/home/matrix/Codes/OHOS/code
2. 拉取官方仓库并启动Docker
复制代码
这段命令比较长,我们分解一下
sudo docker run:以管理员身份启动Docker仓库
--env BOARD=wifiiot:传入环境变量BOARD=wifiiot
-it:以交互模式运行,并打开一个tty终端
--name hm_build:仓库名
-v "/home/matrix/Codes/OHOS/code:/mnt":指定运行路径
walker2048/hm_build:slim_iot:仓库名和标签

第三部分,在Docker仓库内完善编译环境
由于当前提供的docker仓库内只提供了Python和Scons,所以在第一次进入docker时,会显示如下输出。

所以仍需要我们继续安装剩余的工具,好在官方已经提供了默认的安装脚本,只需要执行setupEnv,就可以自动安装其他的工具。
当其他工具安装完成后,再次使用checkEnv命令检查开发环境,安装正常情况下会有如下输出。

我们在buildtools目录下使用命令hmBuildStart执行首次编译,经过一段时间的编译后,会输出成功信息。

至此,基于Linux的Docker开发环境就全部搭建完成了。
工欲善其事,必先利其器。在正式开始开发之前,我们先学习开发环境的搭建。
由于目前仍在早期,Harmony OS的开发环境需要依赖Linux的编译环境,相对于一些只需要在Windows上安装一个IDE的环境略复杂,但是对于绝大部分开发者来说,门槛还是相对比较低的。并且官方考虑到初学者安装环境的不便,发布了包含开发环境的Docker安装包和虚拟机镜像,使得环境的搭建更为方便。
由于在论坛看到的大部分开发者使用的环境都是在Windows上安装Docker或虚拟机,这样的好处是方便,只在一台电脑上就可以完成开发,但同时也有一些不足,无论是Docker还是虚拟机,只要在Windows系统上运行Linux,本质上都是需要在底层进行虚拟化的,这样会带来Linux系统性能的下降。因此,对于手上已经有Linux物理机或服务器资源的开发者来说,不妨直接在Linux物理机或者服务器上安装Docker环境,以获得更快的编译速度。
接下来,我会详细列出在Linux上搭建Docker开发环境的步骤,使用的基础环境为Ubuntu 16.04。
第一部分,在Linux上安装Docker。
1. 添加 Docker的官方 GPG 密钥
复制代码
2. 设置Docker仓库源- sudo add-apt-repository
- "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/
- $(l***_release -cs)
- stable"
- sudo apt-get install docker-ce docker-ce-cli containerd.io
经过以上步骤,Linux系统就可以使用Docker了,接下来,我们为开发环境设置目录
1. 创建Docker路径,我使用的路径是/home/matrix/Codes/OHOS/code
2. 拉取官方仓库并启动Docker
- sudo docker run --env BOARD=wifiiot -it --name hm_build -v "/home/matrix/Codes/OHOS/code:/mnt" walker2048/hm_build:slim_iot
sudo docker run:以管理员身份启动Docker仓库
--env BOARD=wifiiot:传入环境变量BOARD=wifiiot
-it:以交互模式运行,并打开一个tty终端
--name hm_build:仓库名
-v "/home/matrix/Codes/OHOS/code:/mnt":指定运行路径
walker2048/hm_build:slim_iot:仓库名和标签

第三部分,在Docker仓库内完善编译环境
由于当前提供的docker仓库内只提供了Python和Scons,所以在第一次进入docker时,会显示如下输出。

所以仍需要我们继续安装剩余的工具,好在官方已经提供了默认的安装脚本,只需要执行setupEnv,就可以自动安装其他的工具。
当其他工具安装完成后,再次使用checkEnv命令检查开发环境,安装正常情况下会有如下输出。

我们在buildtools目录下使用命令hmBuildStart执行首次编译,经过一段时间的编译后,会输出成功信息。

至此,基于Linux的Docker开发环境就全部搭建完成了。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
wi-fi
+关注
关注
15文章
2382浏览量
128916 -
HarmonyOS
+关注
关注
80文章
2147浏览量
35596 -
HiSpark
+关注
关注
1文章
156浏览量
7689
发布评论请先 登录
相关推荐
热点推荐
Nordic发布nRF7002 EBII 开发板, 支持Wi-Fi 6, 解锁nRF54L新玩法
了 Wi-Fi 6 功能,帮助开发人员创建高性能、高能效的Wi-Fi 6 物联网解决方案。
基于 Nordic 的 nRF7002 Wi-Fi 协同 IC,nRF7002 EBII帮助
发表于 12-10 11:58
Wi-Fi模块选型指南 | 低功耗蓝牙/Wi-Fi 6模块推荐 | 物联网设备集成攻略
:选择用模块的理由: 是为了方便电路集成设计,特别是硬件兼容集成设计,这样只要产品前期做好了综合设计,后续做产品设计以及应用端的灵活选择,提供了很大的便利,省得重复设计硬件,缩短开发周,加快将产品推向市场的时间; 二:Wi-Fi模块选型注意点
浅谈Wi-Fi 6E与Wi-Fi 7的关键器件——BAW滤波器新技术
作者: Qorvo 亚太区无线连接事业部高级行销经理林健富 2020年1月,Wi-Fi联盟正式宣布开放6GHz频段(5925MHz-7125MHz),并将其命名为Wi-Fi 6E。2020年4月
发表于 09-19 18:29
•1335次阅读
基于 SSID 的 Wi-Fi 定位:与其他定位服务的性能比较
是一种著名的无线网络技术,用于设备的局域网和互联网接入。Wi-Fi 通过 Wi-Fi 网络为家庭、办公室和学校等环境提供便捷的无线互联网接入服务。
Wi-Fi 定位是一种地理定位功能
发表于 08-31 21:01
LitePoint Wi-Fi测试软件减轻客户设计负担
自Wi-Fi 7于一年多前获得Wi-Fi联盟认证以来,作为最新一代通信技术,Wi-Fi正逐步成为用户实现无所不在无线连接的新选择。随着每一代Wi-Fi信号复杂性的提升,建议将硬件测试纳
Texas Instruments CC335x SimpleLink™双频Wi-Fi® 6配套IC数据手册
) 和Wi-Fi 5 (802.11ac)。这些CC335x是Texas Instruments的第10代连接组合芯片。因此,CC335x基于成熟的技术设计而成。这些器件非常适合配备运行TCP/IP的Linux或
如何选择合适的芯科科技Wi-Fi开发板
您正在寻找适用于超低功耗物联网应用项目的Wi-Fi 开发板吗?本文将介绍Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗蓝牙5.4解决方案的Wi-Fi
Wi-Fi 8:开启极高可靠性 (UHR) 连接的新纪元——1
英国作家狄更斯在《双城记》的开头写道:“这是最好的时代,也是最坏的时代。”
这句话若套用在现今Wi-Fi 的市场现状,何尝不是惊人的相似?
怎么说呢?Wi-Fi 从被发明至今已经经过了20多年的迭代
发表于 06-13 11:09
芯科科技推出新款Wi-Fi 6开发套件SiWG917Y
问问任何一位Wi-Fi开发者,他们工作中最困难的部分是什么?你很可能会听到这样的回答:“设计天线以及应对全球射频(RF)法规认证。” 因应这一挑战,Silicon Labs (芯科
迅通PTR7002 Wi-Fi 6模块技术解析
在物联网设备对无线连接性能要求日益严苛的背景下,迅通推出的PTR7002 Wi-Fi 6模块凭借其技术特性成为开发者关注的硬件方案。本文将从芯片架构、射频性能及开发支持等维度进行深度剖析
发表于 06-10 10:38
基于 Wi-Fi 的定位服务
以下捕获使用 location_wifi_get 函数请求 Wi-Fi 定位服务。该事件的总功耗为 125.85mC,日志显示精确度为 30.0m。
Got location:
method
发表于 04-17 15:16
nRF Cloud Wi-Fi 定位服务
、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通过利用 nRF Cloud 的优化定位算法,基于 Nordic SoC 和 模组的产品可在定位用例
发表于 04-17 15:07
Wi-Fi 定位服务
Wi-Fi 是一种著名的无线网络技术,用于设备的局域网和互联网接入。Wi-Fi 通过 Wi-Fi 网络为家庭、办公室和学校等环境提供便捷的无线互联网接入服务。
发表于 04-17 15:01
2.4GHz+5GHz双频低功耗 Wi-Fi 6协同IC -nRF7002
开发人员能够充分发挥Wi-Fi 6的潜力,包括更高的数据传输速率、更大的容量和更高的能效,以及Nordic一流的LTE-M/NB-IoT和BluetoothLE解决方案,从而简化开发过
发表于 02-26 14:54

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】搭建基于Linux的Docker开发环境
评论