几点说明
- kernel_liteos_a_note | 中文注解鸿蒙内核 是在
OpenHarmony
的 kernel_liteos_a 基础上给内核源码加上中文注解的版本.与官方源码按月保持同步,同步历史如下:
-
2021/10/09
– 增加性能优化模块perf
,优化了文件映射模块 -
2021/09/14
– common,extended等几个目录结构和Makefile调整 -
2021/08/19
– 各目录增加了BUILD.gn
文件,文件系统部分文件调整 -
2021/07/15
– 改动不大,新增blackbox
,hidumper
,对一些宏规范化使用 -
2021/06/27
– 对文件系统/设备驱动改动较大,目录结构进行了重新整理 -
2021/06/08
– 对编译构建,任务,信号模块有较大的改动 -
2021/05/28
– 改动不大,主要针对一些错误单词拼写纠正 -
2021/05/13
– 对系统调用,任务切换,信号处理,异常接管,文件管理,shell做了较大更新,代码结构更清晰 -
2021/04/21
– 官方优化了很多之前吐槽的地方,点赞 -
2020/09/16
– 中文注解版起点
鸿蒙版本
本篇主要采用 windows + docker 方式编译鸿蒙. 记录编译鸿蒙的过程,以备后续不用再去一大堆无效的误导式软文中搜寻芝麻大点有用的信息,那样真挺费时费心力.
针对不同场景使用不同的内核,openharmony有两个开源版本。
- 标准系统版本,也叫(linux/L2/手机)版本,L2开源(2021/06/02),采用linux 4.19 内核,华为手机(HarmonyOS2.0)就是基于这个开源版本做的商业发行版本。
- 轻量和小型系统版本,也叫(liteos/L0~L1/嵌入式)版本,L0开源(2020/09/10),L1开源(2020/12/02),采用 lite-os-a/m内核,主要针对嵌入式设备。
本篇详细说清楚这两个版本的编译过程。
安装 Docker Desktop
先安装 Docker Desktop 下载windows版本一直下一步.
拒绝没有技术含量的折腾,快速解决编译前的两个痛点条件:源码和编译环境
准备源码
源码获取有两种方式,一种直接gitee仓库(repo)下载,一种站点下载。因为代码量很大,加上网速,gitee仓库本身原因第一种方式存在失败概率,浪费时间,这种没技术含量的折腾没啥意义,本篇采用直接站点下载方式,请对照着前往下载。
源码获取路径
源码下载后本篇统一放在了 E:\openharmony-docker-standard
目录下,并创建好两个空目录,code-1.1.1
code-2.0-canary
,当前内容如下:
// windows 下 powershell
为何要这么做,是因为要解压 tar包,但这两个tar包需在linux环境下完成解压,需要在docker中完成。
准备编译环境
要有编译环境,编译环境是个很头痛的事情,自己装太麻烦,也容易出错,但 docker真的很香,官方也帮我们解决了这个问题。同样的,两个版本对应两个docker镜像
编译标准版(L2/Linux)
选择标准版镜像创建容器,做好如图绑定选择
容器创建成功后可以在 vscode 右键容器inspect
查看到绑定的目录.
vscode 右键容器 attach shell
,进入容器。
编译轻量版(L0~L1/LiteOS),
选择轻量版镜像创建容器,参考标准版图做绑定操作。
容器创建成功后可以在 vscode 右键容器inspect
查看到绑定的目录.
vscode 右键容器 attach shell
,进入容器。
编译项目选择 | hb set
直接回车,本篇选择了ipcamera_hispark_aries
编译命令 | hb env
设置路径成功后,可查看下当前设置信息
编译巨坑 | llvm 10 -> llvm9
编译过程中可能会有 cJSON/libcjson_shared.cJSON.o
错误,将 llvm 10 换成 llvm9 编译,这是个巨坑.
编译命令 | hb build -f
因docker编译速度较慢,为快速编译,本篇将测试子系统去除,这样可以少编译一半测试的文件,去除方法如下,前往..\code-1.1.1\vendor\hisilicon\hispark_aries\config.json
删除test子系统
编译输出 | out 目录
输出目录 : out/hispark_aries/ipcamera_hispark_aries
经常有很多小伙伴抱怨说:不知道学习鸿蒙开发哪些技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?
为了能够帮助到大家能够有规划的学习,这里特别整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、WebGL、元服务、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植等等)鸿蒙(HarmonyOS NEXT)技术知识点。
《鸿蒙 (Harmony OS)开发学习手册》(共计892页)
如何快速入门?
1.基本概念
2.构建第一个ArkTS应用
3.……
开发基础知识:
1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……
基于ArkTS 开发
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……
鸿蒙开发面试真题(含参考答案)
OpenHarmony 开发环境搭建
《OpenHarmony源码解析》
- 搭建开发环境
- Windows 开发环境的搭建
- Ubuntu 开发环境搭建
- Linux 与 Windows 之间的文件共享
- ……
- 系统架构分析
- 构建子系统
- 启动流程
- 子系统
- 分布式任务调度子系统
- 分布式通信子系统
- 驱动子系统
- ……
OpenHarmony 设备开发学习手册
写在最后
如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
- 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
- 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。