Openharmony的编译构建--基础篇

一、编译构建简介

Openharmony的编译构建流程在鸿蒙的开源版本中以V3.1为分界线,流程略有变化。但其中都是ninja与python通过配置文件json,调用不同的交叉工具链来对源码进行编译,然后生成镜像文件。本文首先以Openharmony V3.1版本为例讲解下其编译构建的过程,并以实例的方式对如何添加子系统、模块等进行说明。

后续会对Openharmony V3.2其及衍生的版本进行扩展说明。

二、Openharmony v3.1 L2设备整体编译流程

2.1 编译扫描说明

在编译的时候,需要扫描相应的子系统配置文件。子系统配置文件包含以下三个文件

  • subsystem_config.json

  • {产品名称}.json

  • {产品设备名称}.json

通过此三个文件,加载该产品需要参与编译的所有子部件及配置信息。

2.2 {产品名称}.json

product配置文件,在//productdefine/common/products目录下,以下编译rk3568为例:

当在Openharmony根目录下输入

./build.sh --product-name rk3568

此时首先进入preloader阶段,根据参数rk3568找到//productdefine/common/products/rk3568.json文件,

该配置文件主要包含产品名称,产品厂商,产品设备名,产品类型,产品对应子系统路径,产品所包含的部件等信息。配置该产品对应子系统时在该文件中添加product_build_path表示产品子系统目录。preloader阶段从该目录下加载对应子系统部件配置信息。

{
  "product_name": "rk3568",     				# 产品名称	
  "product_company": "hihope",					# 产品厂商
  "product_device": "rk3568",					# 产品设备名 ({产品设备名称}.json) 
  "version": "2.0",
  "type": "standard",							# 产品类型
  "product_build_path": "device/hihope/build",	# 产品子系统目录
  "parts":{										# 产品所包含的部件
    "ace:ace_engine_standard":{},
    "ace:napi":{},
    "account:os_account_standard":{},
    "barrierfree:accessibility":{},
......
  }
}

2.3 {产品设备名称}.json

device配置文件,根据2.2描述文件名也为rk3568.json,此文件完整路径即为//productdefine/common/device/rk3568.json,该配置文件主要包含设备名称,设备厂商,设备的目标os与目标cpu,设备对应子系统路径等信息。配置该设备对应子系统时在该文件中添加device_build_path表示设备子系统目录,preloader阶段从该目录下加载对应子系统部件配置信息。

{
    "device_name": "rk3568",					# 设备名称
    

你可能感兴趣的:(json,openharmony)