鸿蒙应用程序分设备端和应用端两种方向吧,鸿蒙的设备端开发参见:https://device.harmonyos.com/,使用的工具是DevEco Device,是VSCODE的插件,采用C/C++语言。
鸿蒙的应用开发参见:https://developer.harmonyos.com/,使用的工具是DevEco Studio,类似Android studio,使用JAVA或javascript语言。
HPM=harmony package manager鸿蒙包管理,可以有旭东共享扩展的代码,在https://hpm.harmonyos.com/#/cn/home
整体感觉和RTT-THREAD雷同啊,包括构建系统的工具,鸿蒙本身也采用了scons,后来又成了gn。不是很理解啊,所以补了一些构建系统的知识。
编译一段代码只需要执行命令gcc helloworld.c即可。几十个源代码文件,而且有了模块划分,有的要编译成静态库,有的要编译成动态库,最后链接成可执行代码,这时命令行方式就捉襟见肘,需要一个构建系统。构建系统并不是取代gcc工具链而是定义编译规则,最终还是会调用工具链编译代码。
第一代构建系统是GNU Make,但编写Makefile繁琐,后来出现了生成Makefile的工具如cmake、AutoMake等元构建系统,首先调用AutoTool工具./configure根据系统环境生成GNU Makefile,然后make编译系统,最后make install安装工程。第二代构建系统四GYP构建系统,根据GYP规则编写gypi文件,然后利用GYP工具生成GNU Makefile。第三代构建系统是Ninja,速度有很大提升,原来怎么写gyp现在还是怎么写,只是构建命令稍微做了改变。GYP工具是用python实现的。
需要对各个路径下的各个模块分别写gyp文件时,可以设置全局变量文件以gypi为后缀。
GN文件相当于gyp文件的下一代,比GYP文件更清晰。GN是一种元构建系统,生成Ninja构建文件。从命令行运行gn,他是depot_tools下的一个脚本,需要确保depot_tools路径包含在环境变量$PATH中。比如为了测试,定义一个test输出目录,可以采用如下的命令:gn gen out/test。要分别构建Debug版本和Release版本取决于传递的构建参数。在GN与ninja基础上的编译构建框架,构建不同芯片平台的产品。