系统能力(SysCap)

  • SysCap5指OS每个独立的特性,如蓝牙、WIFI。
  • 每个系统能力对应多个API
  • 随目标设备是否支持该系统能力而共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想

重要的系统能力

能力集 作用
支持能力集 设备
SDK将设备分为两组,典型设备和自定义设备,典型设备的支持能力集由HarmonyOS来定义,自定义设备由设备厂商给出
应用能力集 应用
联想能力集 DevEco Studio可联想的APIDevEco Studio可联想的API
  • SDK向DevEco Studio提供全量API,DevEco Studio识别开发者项目中选择的设备形态,找到该设备的支持能力集,筛选支持能力集包含的API并提供API联想
  • 单设备:默认应用的联想能力集,要求系统能力集和设备的支持系统能力集相等
  • 多设备:默认应用的联想能力集是多个设备支持能力集的并集,要求能力集则是交集

自定义syscap

需要的能力超出工程默认设备定义的能力集范围,需要额外配置自定义的syscap

  1. /src/main目录下,手动创建syscap.json文件,并写入如下内容
{
"devices": {
"general": [
// 每一个典型设备对应一个syscap支持能力集,可配置多个典型设备,应与工程所选择的设备一致
"phone"
]
},
"development": {
// addedSysCaps内的sycap集合与devices中配置的各设备支持的syscap集合的并集共同构成联想能力集。
"addedSysCaps": [
"SystemCapability.Communication.NFC.Core",
"SystemCapability.Communication.NFC.CardEmulation",
"SystemCapability.Communication.NFC.Tag"
]
}
}

判断 API 是否可以使用

//API canIUse
canIUse("SystemCapability.ArkUI.ArkUI.Full")
//判断geolocationManager是否存在
import geolocationManager from '@ohos.geoLocationManager';
geolocationManager

OpenHarmony框架

OpenHarmony框架

  • 系统功能按照“系统 > 子系统 > 组件”逐级展开
    层级|功能
    -----|-----
    应用层|包括系统应用和第三方非系统应用
    应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成
    其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象
    基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
    框架层|为应用开发提供C/C++/JS等多语言的用户程序框架和Ability框架,适用于JS语言的ArkUI框架,以及各种软硬件服务对外开放的多语言框架API
    根据系统的组件化裁剪程度,设备支持的API也会有所不同。
    系统服务层|OpenHarmony 的核心能力集合,通过框架层对应用程序提供服务
    1. 系统基本能力子系统集:为分布式应用在多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、公共基础库、多模输入、图形、安全、AI等子系统组成
    2. 基础软件服务子系统集:提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 等子系统组成。
    3. 增强软件服务子系统集:提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
    4. 硬件服务子系统集:提供硬件服务,由位置服务、用户IAM、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
    根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪
    内核层|内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
    驱动子系统:驱动框架(HDF)是系统硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。

ArkUI

ArkUI框架

DevEco项目结构