代码拉取完成,页面将自动刷新
同步操作将从 OpenHarmony/startup_appspawn 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
应用孵化器,负责接受应用程序框架的命令孵化应用进程,设置其对应权限,并调用应用程序框架的入口。
其主要的结构及流程如下图所示:
base/startup/appspawn_standard
├─adapter # 适配外部依赖
│ └─sysevent # 系统事件管理
├─common # 通用代码
├─etc
├─figures
├─interfaces # 应用孵化器组件头文件以及对外接口
│ └─innerkits
│ ├─client # 应用孵化器客户端源码
│ └─include # 应用孵化器头文件
├─lite # 小型系统应用孵化器源码
├─standard # 标准系统应用孵化器源码
├─test # 应用孵化器组件测试源码
└─util
├─include # 应用孵化器工具类头文件
└─src # 应用孵化器工具类源码
appspawn被init启动后,向IPC框架注册服务名称,之后等待接收进程间消息,根据消息解析结果启动应用服务并赋予其对应权限。
appspawn注册的服务名称为“appspawn”,在安全子系统限制规则下,目前仅Ability Manager Service有权限可以向appspawn发送的进程间消息。
appspawn接收的消息为json格式,如下所示:
"{"bundleName":"testvalid1","identityID":"1234","uID":1000,"gID":1000,"capability":[0]}"
表 1 小型系统字段说明
字段名 | 说明 |
---|---|
bundleName | 即将启动的应用程序包名,长度≥7字节,≤127字节。 |
identityID | AMS为新进程生成的标识符,由appspawn透传给新进程,长度≥1字节,≤24字节。 |
uID | 即将启动的应用服务进程的uID。 |
gID | 即将启动的应用服务进程的gID。 |
capability | 即将启动的应用服务进程所需的capability权限,数量≤10个。 |
appspawn注册的服务名称为“appspawn”。appspawn 通过监听本地socket,接收来自客户端的请求消息。
表 2 标准系统字段说明
字段名 | 说明 |
---|---|
processName | 即将启动的应用服务进程名,最大256字节。 |
bundleName | 即将启动的应用程序包名,最大256字节。 |
soPath | 即应用程序指定的动态库的路径,最大256字节。 |
uid | 即将启动的应用进程的uid。 |
gid | 即将启动的应用进程的gid。 |
gidTable | 即将启动的应用进程组信息,长度由gidCount指定,最大支持64个进程组,必须为正值。 |
gidCount | 即将启动的应用进程组个数。 |
accessTokenId | 即应用进程权限控制的token id。 |
apl | 即应用进程权限控制的apl,最大32字节. |
renderCmd | 即图形图像渲染命令, 最大1024字节。 |
flags | 即冷启动标志位。 |
pid | 即渲染进程pid,查询渲染进程退出状态。 |
AppOperateType | 即App操作类型,0: 默认状态; 1:获取渲染终止状态。 |
仅支持小型系统和标准系统。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。