标准系统添加应用组件
标准系统添加应用组件
标准系统编译构建系统
编译构建
1、标准系统与小型系统的编译构建系统是不一样的。
/build # 编译构建主目录
├── config # 编译相关的配置项
├── core
│ └── gn # 编译入口BUILD.gn配置
├── loader # 各个组件配置加载、模板生成
├── ohos # OpenHarmony编译打包流程配置
│ ├── kits # kits编译打包模板和处理流程
│ ├── ndk # ndk模板和处理流程
│ ├── notice # notice模板和处理流程
│ ├── packages # 版本打包模板和处理流程
│ ├── sa_profile # sa模板和处理流程
│ ├── sdk # sdk模板和处理流程,包括sdk中包含的模块配置
│ └── testfwk # 测试相关的处理
├── scripts # 编译相关的python脚本
├── templates # c/c++编译模板定义
└── toolchain # 编译工具链配置
2、编译命令
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1
../scripts/prepare.sh
./build.sh --product-name Hi3516DV300 --ccache
编译完成后,结果镜像保存在 out/ohos-arm-release/packages/phone/images/ 目录下。
{product_name}为当前版本支持的平台。
开发步骤
添加组件
1、示例组件partA由src和include组成。
本次示例将添加到subsystem_examples子系统中(subsystem_examples子系统定义在test/developertest/examples目录)
2、编写gn脚本test/developertest/examples/partA/BUILD.gn
import("//build/ohos.gni")
config("helloworld_config") {
visibility = [ ":*" ]
include_dirs = [ "include" ]
}
ohos_executable("helloworld") {
sources = [
"include/helloworld2.h",
"src/helloworld2.c",
]
public_configs = [ ":helloworld_config" ]
install_enable = true
subsystem_name = "subsystem_examples"
}
ohos_static_library("helloworld_static") {
sources = [
"include/helloworld2.h",
"src/helloworld2.c",
]
public_configs = [ ":helloworld_config" ]
}
3、修改子系统的的gn脚本(test/developertest/examples/BUILD.gn)
import("//build/ohos.gni")
ohos_subsystem("subsystem_examples") {
subsystem_packages = [
"partA:helloworld",
"partA:helloworld_static",
]
}
4、在子系统的ohos.build中添加组件配置:est/developertest/examples/ohos.build。每个子系统有一个ohos.build配置文件,在子系统的根目录下。
{
"subsystem": "subsystem_examples",
"parts": {
"subsystem_examples": {
"module_list": [
"//test/developertest/examples/partA:helloworld",
"//test/developertest/examples/partA:helloworld_static"
]
}
}
}
5、将组件添加到产品配置中。
产品对应配置文件:productdefine/common/products/Hi3516DV300.json。
在产品配置文件中添加:“subsystem_examples:subsystem_examples”:{},表示该产品中会编译并打包组件到版本中。
6、该子系统要编译需要修改:ohos_var.gni
build_example = true
7、编译
编译所生成的文件都归档在out/ohos-arm-release/目录下,结果镜像输出在 out/ohos-arm-release/packages/phone/images/ 目录下。
烧写
使用Hitool工具烧写Hispark,烧写emmc,添加Hi3516DV300-emmc.xml。烧写完成之后板子自动重启。板子起来之后,在/system/bin下有应用的可执行文件。