harmonyos怎么读?

Python026

harmonyos怎么读?,第1张

英[ˈhɑːməni]、美[ˈhɑːrməni]。

HarmonyOS是华为基于开源项目OpenHarmony 开发的面向多种全场景智能设备的商用版本。

华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种智能终端实现极速发现、极速连接、硬件互助、资源共享,用合适的设备提供场景体验。

相关信息:

2020年9月10日,华为鸿蒙系统升级至HarmonyOS 2.0版本。2021年4月22日,华为鸿蒙 HarmonyOS 应用开发在线体验网站上线。5月18日,华为宣布华为HiLink将与Harmony OS统一为鸿蒙智联。

2021年6月2日晚,华为正式发布HarmonyOS 2及多款搭载HarmonyOS 2的新产品。7月29日,华为Sound X音箱发布,是首款搭载HarmonyOS 2的智能音箱。

在 文章 中已经分析openharmony的小型系统(liteos-a)编译过程,最主要的就是调用gn/ninja/makefs三个命令最终生成可烧录的镜像文件

从前面文件可以看到hb build调用的gn命令参数如下

这里详细分析一下gn工具在编译过程中的使用

这里简单介绍下GN工具的使用方法,gn语法可以参考 http://weharmonyos.com/openharmony/compile/gn/docs/

,已经熟悉的可以跳过

从上面图中可以看到使用的命令类型为 gn gen <output_dir>[options] ,此命令就是为了将所有需要的BUILD.gn文件生成为*.ninja文件供ninja进行编译可以通过 gn help gen 命令查看详细的用法说明, 如下

下面重点说一下gn_cmd中的 [options]

liteos-a编译系统的dotfile内容如下:

liteos-a是嵌入式系统,而编译环境是linux系统,这就需要用到交叉编译方式,这个就可以在环境配置中指定 target_os 、 target_cpu 、 board_cpu 等等信息

这些信息就是 buildconfig 参数指定的 BUILDCONFIG.gn 文件中配置的

除了以上信息,还配置了以下几个重要信息

详细信息可以查看 //build/lite/config/BUILDCONFIG.gn 文件内容

toolchain定义源码编译需要的工具,像编译器、汇编器、连接器等等,一般在.gn所在目录下有一个 toolchain 目录,里面的 BUILD.gn 定义详细的编译工具链信息

这里目录结构如下:

从结构信息中可以看到定义了clang和gcc两种工具链,通过变量 board_toolchain_type 来区分(此变量也是buildconfig中定义的),具体信息参见BUILD.gn文件内容,如下

在.gn文件所在目录下的BUILD.gn就是入口,此文件做了以下几个事情

这里重点说一下target为 ohos 的 group 如下:

这里也比较好理解,里面就是读取一个配置文件,几级循环来处理配置文件中配置的内容。流程如下

到此就将此board下各模块的依赖关系添加好了,然后 GN 会将依赖树中所有的BUILD.gn生成对应的.ninja文件,并且在out的根目录下生成下面几个ninja的入口文件以及配置文件