1# 配置策略组件介绍 2 3## 简介 4 5配置策略组件为各业务模块提供获取各配置层级的配置目录或配置文件路径的接口。 6 7## 系统架构 8 9**图 1** 配置策略组件架构图 10 11![](figures/config_policy.png) 12 13配置策略组件架构图说明: 14 15- interfaces对外提供指定文件的最高优先级文件路径以及指定文件所有层级路径。 16- frameworks实现配置层级目录的初始化与文件路径查询。 17 18## 目录 19 20配置策略组件源代码目录结构如下所示: 21 22``` 23/base/customization/ 24├── config_policy # 配置策略代码仓 25│ ├── frameworks # 配置策略核心代码 26│ │ ├── config_policy # 配置策略模块 27│ │ │ └── src # 实现代码 28│ ├── interfaces # 配置策略接口 29│ │ ├── inner_api # 子系统间接口 30│ │ └── kits # 配置策略JavaScript接口 31│ └── test # 测试代码 32``` 33 34## 说明 35 36调用该组件中的接口获取各配置层级的配置目录或配置文件路径。 37 38``` 39#include "config_policy_utils.h" 40 41CfgDir *cfgDir = GetCfgDirList(); // 获取配置层级目录列表 42FreeCfgDirList(cfgDir); // 获取完成后需要释放内存 43 44const char *cfgPath = "etc/xml/cfg.xml"; // 设置配置文件相对路径及文件名 45CfgFiles *cfgFiles = GetCfgFiles(cfgPath); // 获取所有配置层级的配置文件路径 46FreeCfgFiles(cfgFiles); // 获取完成后需要释放内存 47 48const char *userPath = "etc/xml/user.xml"; // 设置配置文件相对路径及文件名 49char buf[MAX_PATH_LEN] = {0}; 50char *filePath = GetOneCfgFile(userPath, buf, MAX_PATH_LEN); // 获取最高优先级的配置文件路径 51``` 52 53## 约束 54 55**语言限制**:C/C++语言 56 57## 相关仓 58 59**customization\_config\_policy** 60 61