1# appspawn应用孵化器部件 2 3## 简介 4 5应用孵化器,负责接受应用程序框架的命令孵化应用进程,设置其对应权限,并调用应用程序框架的入口。 6 7**图1** appspawn应用孵化器组件框架图 8![](figures/appspawn.png) 9 10## 目录 11``` 12base/startup/appspawn_standard 13├─adapter # 适配外部依赖 14│ └─sysevent # 系统事件管理 15├─common # 通用代码 16├─etc 17├─figures 18├─interfaces # 应用孵化器组件头文件以及对外接口 19│ └─innerkits 20│ ├─client # 应用孵化器客户端源码 21│ └─include # 应用孵化器头文件 22├─lite # 小型系统应用孵化器源码 23├─standard # 标准系统应用孵化器源码 24├─test # 应用孵化器组件测试源码 25└─util 26 ├─include # 应用孵化器工具类头文件 27 └─src # 应用孵化器工具类源码, 含json处理库及应用沙箱实现源码 28``` 29 30## 说明 31 32### 小型系统 33 34 appspawn被init启动后,向IPC框架注册服务名称,之后等待接收进程间消息,根据消息解析结果启动应用服务并赋予其对应权限。 35 36 appspawn注册的服务名称为“appspawn”,在安全子系统限制规则下,目前仅Ability Manager Service有权限可以向appspawn发送的进程间消息。 37 38 appspawn接收的消息为json格式,如下所示: 39 ``` 40 "{"bundleName":"testvalid1","identityID":"1234","uID":1000,"gID":1000,"capability":[0]}" 41 ``` 42 43 **表 1** 小型系统字段说明 44 | 字段名 | 说明 | 45 | -------- | -------- | 46 | bundleName | 即将启动的应用程序包名,长度≥7字节,≤127字节。 | 47 | identityID | AMS为新进程生成的标识符,由appspawn透传给新进程,长度≥1字节,≤24字节。 | 48 | uID | 即将启动的应用服务进程的uID。 | 49 | gID | 即将启动的应用服务进程的gID。 | 50 | capability | 即将启动的应用服务进程所需的capability权限,数量≤10个。 | 51 52### 标准系统 53 appspawn注册的服务名称为“appspawn”。appspawn 通过监听本地socket,接收来自客户端的请求消息。 54 55 详细使用说明参考开发指南:[appspawn应用孵化组件](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-appspawn.md) 56 57## 限制与约束 58仅支持小型系统和标准系统。 59 60## 相关仓 61**[startup\_appspawn](https://gitee.com/openharmony/startup_appspawn)** 62 63[startup\_init\_lite](https://gitee.com/openharmony/startup_init_lite) 64 65[startup\_bootstrap\_lite](https://gitee.com/openharmony/startup_bootstrap_lite)