第1~2章 鸿蒙系统介绍 和 编译环境搭建 持续更 精华
该文章已过时,最新版请参考:
【汇总】OpenHarmony轻量系统开发【0】目录和个人感悟
第1章 HarmonyOS介绍
1.1 鸿蒙系统与Linux、Android的不同
HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如图所示。
我们可以看到,鸿蒙系统不单单是一个内核,它还包含了整个操作系统的所有框架,更像是Windows和Android。
而鸿蒙系统的内核支持 Linux和LiteOS。
1.2 LiteOS 内核
LiteOS是一个内核,相比其Linux来说,它更精简,启动时间更快。同时liteOS内核有liteOS-a 和 liteOS-m 。
liteOS-a通常运行支持MMU的芯片上,支持内核/APP空间隔离。
liteOS-m运行在没有MMU的芯片上,也就是MCU,例如我们常见的STM32芯片。所以鸿蒙OS也是支持STM32系列单片机的,但是目前还没有完成移植工作。
1.3 相关资料
鸿蒙官方文档:https://www.harmonyos.com/cn/develop
鸿蒙gitee:https://openharmony.gitee.com/openharmony
鸿蒙OS代码下载:https://device.harmonyos.com/cn/docs/start/get-code/oem_sourcecode_guide-0000001050769927
官方技术社区:https://harmonyos.51cto.com/
第2章 开发环境搭建
注意:该文章的环境是1.0版本的,已经不适用了,请不要再参考了。
其实3.0开发环境很简单的,大家只需要参考官网自己搭建即可:
https://device.harmonyos.com/cn/docs/start/introduce/quickstart-lite-env-setup-linux-0000001105407498
但是最近还是有同学问我,为啥之前的文章的鸿蒙虚拟机环境不对,那是因为之前的文章是1.0的,去年的,现在鸿蒙都更新到了3.0了,很多东西都不一样了。
这里提供一个我自己用的虚拟机环境,见:
关于开发环境的搭建,可以参考华为官网说明。
https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3861_build-0000001054781998 。
目前鸿蒙系统的开发方式是在Linux系统上面编译源码,Windows系统上编写、烧录。
故而需要搭建两个开发环境。
2.1 Linux环境搭建
关于Linux系统的环境搭建,个人建议使用ubuntu 20.04。当然我们也提供了搭建好环境的ubuntu 20.04 镜像,大家可以直接下载,直接编译代码,不需要再按官网的操作再重新搭建环境。
目测个人第一次搭建至少需要几个小时的时间,还可能会出错。
由于百度网盘经常封链接,如果发现链接失效,可以联系我,VX 13510979604
腾讯云盘
链接:https://share.weiyun.com/6suCAhNN
百度网盘
链接:https://pan.baidu.com/s/163JxuvZux01Fd407_WbK-g
提取码:bny6
说明:
1、已配置好开发环境,可直接编译代码,编译可以正常运行
2、配置好 sftp ,可远程传输文件
账号:harmony
:123456
代码路径:~/harmony/code/code-1.0
相关的环境工具路径(可以不用管了,已经配置好了,直接可以编译):~/harmony/tools
编译命令:
(1)对应开发板: hi3516 IPC开发板
python build.py ipcamera_hi3516dv300
(2)对应开发板: hi3518 IPC开发板
python build.py ipcamera_hi3518ev300
(3)对应开发板: hi3861 智能家居 开发板
python build.py wifiiot
编译结果,可以看到已经编译成功了
2.2 Windows访问ubuntu文件
特别说明,如果是下载的百度网盘的镜像,不需要安装samba 了,已经默认安装好了,只需要看如何映射网络驱动器就行!!!
由于我们后面需要在Windows上直接编辑ubuntu系统里面的鸿蒙源码,故而我们需要使用samba服务,让Windows能访问到ubuntu。
操作如下:
1.设置 apt-get 源
可以更快地下载samba。设置如下
(1)在桌面右上角点击打开菜单,点击setting选项。
(2)在设置选项右侧下拉找到“关于”,点击 Software Updates。
(3)在软件和更新界面里可以看到“下载自”,我们可以进行修改。
(4)推荐选择 mirros.aliyun.com 或者 mirrors.tuna.tsinghua.edu.cn,你也可以点击选择最佳服务器,测
(5)试连接最快的软件源(测试时间较长)。
(6)最后,退出软件与更新界面时,会提示更新软件列表信息,点击重新载入即可。
2.安装 samba
输入如下命令:
sudo apt-get install samba
sudo apt-get install samba-common
修改samba配置文件
sudo vim /etc/samba/smb.conf
在最后加入如下内容:
[work]
comment = samba home directory
path = /home/harmony/
public = yes
browseable = yes
public = yes
writeable = yes
read only = no
valid users = harmony
create mask = 0777
directory mask = 0777
#force user = nobody
#force group = nogroup
available = yes
保存退出后,输入如下命令,设置samba,建议123456即可
sudo smbpasswd -a harmony
重启samba服务
sudo service smbd restart
3.windows映射
在文件夹路径输入虚拟机的IP地址
最后映射成网络驱动器即可
2.3 Windows环境搭建
Windows的环境搭建,官网已经有了,这里就不在赘述。
https://device.harmonyos.com/cn/docs/ide/user-guides/tool_install-0000001050164976
2.4 烧录
烧录也可以参考官方文档:
https://device.harmonyos.com/cn/docs/ide/user-guides/hi3861_upload-0000001051668683
厉害厉害。向连老师学习。
精华帖 赞赞赞 又是学习的一天
how old r u
太棒了吧 绝了
2.4 烧录 链接打不开了?
应该是官方最近更新了链接,我重新更新了,可以打开了
Windows下应该是先安装 VMware虚拟机,再运行 Ubuntu
> Executing task: hpm run 'upload' <
internal/modules/cjs/loader.js:834
throw err;
^
Error: Cannot find module 'Y:\src\code\%UPLOAD_SCRIPT%'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:831:15)
at Function.Module._load (internal/modules/cjs/loader.js:687:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
这个问题怎么解呢
非常好的帖子,我自己进了一个华为鸿蒙系统的群,挺不错(1002787694)
连老师,按照您的视频教程我操作到了这一步,但是出现“访问不到头文件”的问题,这种情况该怎么处理呢??
收货满满
Linux 如果想运行在云服务器上,有没有什么方法及软件解决?
连老师,请问标准系统驱动编译配置有什么例子可以参考吗,貌似和小型系统不太一样