OpenHarmony提供了一些C语言系统接口供三方应用开发者使用,为了规范SDK C API的接口,对外提供一个统一接口风格,防止出现不必要的符号冲突,特此制定了此规范。
此规范对接口的命名规则,接口头文件,stub库在SDK包中的目录结构进行约束。2章节介绍了OpenHarmony的接口命名规范。
在C API中出现的接口,分为两类:
举例:
说明:针对第三方标准中,根据平台要求扩展的接口,也按照此三方库的推荐命名方式。
说明:采用C语言接口,符号是全局课件,容易与别的模块符号产生符号冲突,采用模块前缀进行作用域区分。
说明:模块前缀相当于C++中的类名,不要采用一些通用的名词,或者是范围过大的名字; 举例:OH_AI_xxx,AI这个一般指的是一个行业,一类技术的名词;这类名词座位模块名字不合适。
类别 | 命名风格 | 形式 |
---|---|---|
【建议】结构体类型,枚举类型,联合体,typedef类型 | 带模块前缀的大驼峰 | 采用Xxx_AaaBbb |
局部变量,函数参数,宏参数,结构体字段,联合体成员 | 小驼峰 | aaaBbb |
全局变量 | 带‘g_’前缀的小驼峰 | g_Xxx_aaaBbb |
宏(不包括函数式宏),枚举值,goto标签 | 全大写,下划线分割 | XXX_BBB |
函数宏 | 带模块前缀的大驼峰 | OH_Xxx_AaaBbb |
常量(在函数外部定义由const修饰的基本数据类型,枚举类型,字符串类型) | 全大写下划线分割,或带'g_'前缀的小驼峰 | XXX_BBB, g_Xxx_aaaBbb |
举例:采用xxx_aaa.h xxx_aaa_bbb.h,或者xxx/aaa.h xxx/aaa_bbb.h。 说明:如果此头文件在sysroot的include目录下的路径中已经包含xxx模块名,头文件的文件名就不需要带xxx前缀。
说明:子系统下的目录组织形式可以采用模块名目录加头文件的形式,或者采用模块名_文件名.h方式;不建议新建太深的目录结构,开发者代码在引用头文件的时候,需要引用长串路径,不友好。
|--include
| |--领域组名(需要上API SIG评审)
| | |--xxx
| | | |-- aaa.h
| | | |-- bbb.h
| | |
| | |--xxx_ccc.h
| | |--xxx_common.h
说明:是否需要给C API接口独立创建一个so库,这个没有强制要求;如果C API接口是重新封装,建议独立一个库,因为C API接口实现库在镜像中必须放置到/system/{lib|lib64}/ndk目录,方便接口管控。 说明:命名采用libxxx.so的命名方式,库名字最好与模块名字相同,如果包含多个模块,建议采用业界常用的名字;如果名字是常用单词,建议前面加oh前缀,如libohxxx.so,避免名字冲突。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。