同步操作将从 OpenHarmony/ability_ability_runtime 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
元能力子系统实现对Ability的运行及生命周期进行统一的调度和管理,应用进程能够支撑多个Ability,Ability具有跨应用进程间和同一进程内调用的能力。Ability管理服务统一调度和管理应用中各Ability,并对Ability的生命周期变更进行管理。
元能力子系统架构图说明:
Ability Kit为Ability的运行提供基础的运行环境支撑。Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个Ability。
Ability管理服务(AbilityManagerService):用于协调各Ability运行关系、及对生命周期进行调度的系统服务。
Ability框架模型结构具有两种框架形态:
Stage模型的设计,主要是为了方便开发者更加方便地开发出分布式环境下的复杂应用。下表给出了两种模型在设计上的差异:
对比 | FA模型 | Stage模型 |
---|---|---|
开发方式 | 提供类Web的 api,UI开发与Stage模型一致。 | 提供面向对象的开发方式,UI开发与FA模型一致。 |
引擎实例 | 每个进程内的每个Ability独享一个JS VM引擎实例。 | 每个进程内的多个Ability实例共享一个JS VM引擎实例。 |
进程内对象共享 | 不支持。 | 支持。 |
包描述文件 | 使用config.json描述HAP包和组件信息,组件必须使用固定的文件名。 | 使用module.json描述HAP包和组件信息,可以指定入口文件名。 |
组件 | 提供PageAbility(页面展示),ServiceAbility(服务),DataAbility(数据分享), FormAbility(卡片)。 | 提供Ability(页面展示)、Extension(基于场景的服务扩展)。 |
除了上述设计上的差异外,对于开发者而言,两种模型的主要区别在于:
Ability类型存在差异;
Ability生命周期存在差异;
foundation/ability #元能力子系统
├── ability_runtime #ability_runtime元能力运行时部件
│ ├── frameworks
│ │ ├── js
│ │ │ └── napi # ability_runtime的napi代码实现
│ │ └── native # ability_runtime的核心代码实现
│ ├── interfaces
│ │ ├── inner_api # ability_runtime的系统内部件间接口
│ │ └── kits
│ │ └── native # ability_runtime的对外接口
│ ├── services
│ │ ├── abilitymgr # Ability管理服务框架代码
│ │ ├── appmgr # App管理服务框架代码
│ │ ├── common # 服务公共组件目录
│ │ ├── dataobsmgr # DataAbilityObserver管理服务框架代码
│ │ └── uripermmgr # UriPermission管理服务框架代码
│ ├── test # 测试目录
│ └── tools # aa命令工具代码目录
│
├── ability_base # ability_base元能力基础部件
│
├── ability_lite # ability_lite轻量化元能力部件
│
├── dmsfwk # dmsfwk分布式组件管理部件
│
├── dmsfwk_lite # dmsfwk_lite轻量化分布式组件管理部件
│
├── form_fwk # form_fwk卡片运行时部件
│
├── idl_tool # idl工具部件
启动新的ability(callback形式)
名称 | 读写属性 | 类型 | 必填 | 描述 |
---|---|---|---|---|
parameter | 读写 | StartAbilityParameter | 是 | 表示被启动的Ability |
callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 |
名称 | 读写属性 | 类型 | 必填 | 描述 |
---|---|---|---|---|
want | 读写 | want | 是 | 表示需要包含有关目标启动能力的信息 |
abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 |
名称 | 读写属性 | 类型 | 必填 | 描述 |
---|---|---|---|---|
deviceId | 读写 | string | 否 | 设备id |
bundleName | 读写 | string | 否 | Bundle名 |
abilityName | 读写 | string | 否 | Ability 名 |
uri | 读写 | string | 否 | 请求中URI的描述 |
type | 读写 | string | 否 | Want中类型的说明 |
flags | 读写 | number | 否 | Want中标志的选项,必填 |
action | 读写 | string | 否 | Want中对操作的描述 |
parameters | 读写 | {[key: string]: any} | 否 | Want中WantParams对象的描述 |
entities | 读写 | string | 否 | 对象中实体的描述 |
moduleName9+ | 读写 | string | 否 | Ability所属的模块(module)名称 |
返回值
void
示例
更多开发指导可参考示例文档
aa help
命令 | 描述 |
---|---|
aa help | 显示aa命令帮助信息 |
aa start
命令 | 描述 |
---|---|
aa start [-d ] -a -b [-D] | 启动ability,设备ID 可空 |
示例:
aa start -d 12345 -a com.ohos.app.MainAbility -b com.ohos.app -D
aa dump
命令 | 描述 |
---|---|
aa dump -a | 打印栈中的Ability信息 |
aa force-stop
命令 | 描述 |
---|---|
aa force-stop [-p ] [-r ] | 强制停止application,支持传递pid和进程退出原因 |
示例:
aa force-stop com.ohos.app
元能力子系统
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。