简介
在系统服务管理子系统中safwk组件定义OpenHarmony中SystemAbility的实现方法,并提供启动、注册等接口实现。
系统架构
图 1 系统服务框架图
目录
/foundation/systemabilitymgr
│── safwk # 组件目录
│ ├── bundle.json # 组件描述及编译脚本
│ ├── etc # 配置文件
│ ├── interfaces # 对外接口目录
│ ├── services # 组件服务实现
│ ├── test # 测试用例
说明
接口说明
接口名 | 接口描述 |
---|---|
sptr GetSystemAbility(int32_t systemAbilityId); | 获取指定系统服务的RPC对象。 |
bool Publish(sptr systemAbility); | 发布系统服务。 |
virtual void DoStartSAProcess(const std::string& profilePath) = 0; | 根据SA profile配置启动System Ability。 |
使用说明
SystemAbility实现一般采用XXX.cfg + profile.json + libXXX.z.so的方式由init进程执行对应的XXX.cfg文件拉起相关SystemAbility进程。
C++实现SystemAbility
示例代码如下:
- 1. 定义IPC对外接口IXXX
定义该服务对外提供的能力集合函数,统一继承IPC接口类IRemoteBroker;同时实现该IPC对外接口唯一标识符DECLARE_INTERFACE_DESCRIPTOR(XXX);该标识符用于IPC通信的校