OpenHarmony 系统设计和关键架构

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. OpenHarmony系统设 计和关键架构 华为终端BG软件部 / 刘勋
2. 自我介绍 OpenHarmony部件化架构师;负责可大可小、弹性部署部件化架构设 • 计 • OpenHarmony社区兼容性工作组核心成员;负责兼容性技术规范和兼 容性测评体系设计 • OpenHarmony首席测试架构师;负责面向南北向开发者的测试工具设 计
3. 目录 • OpenHarmony设计理念 • OpenHarmony关键架构 • OpenHarmony社区进展
4. OpenHarmony是面向智能互联时代的OS OS/360(1964) UNIX(1969) BSD(1977) 1945 真空管和穿孔卡片 1960s 晶体管 MS-DOS(1982) QNX(1982) VxWorks(1982) MAC OS X(1984) Windows(1985) OS/2(1987) 1970s iOS(2007) Android(2008) WebOS(2009) Windows Phone(2010) Tizen(2012) SailfishOS(2013) BeOS(1991) Linux(1991) Symbian(1994) Palm OS(1996) 1990s 2007 大型机 OpenHarmony 2015 2035 云主机 个人计算机 移动设备 IOT设备 穿孔卡片 主机 (数万用户) PC&嵌入式 (10亿用户) PC互联网 (30亿用户) 移动互联网 (40亿用户) 智能互联 (160+ 亿连接)
5. OpenHarmony的基本设计理念 ◆ 应用生态割裂问题 OpenHarmony设计理念 • 设备A的应用,在设备B上根本安装不了 • 设备B即使安装了,但是还需要重新注册,启动,输入,搜索… ◆ 用户数据割裂问题 • 从设备A访问设备B的照片/文件/… • 如果有设备A,B,C,D…很难记得住数据在哪台设备的哪个应用里 ◆ 软硬件能力割裂问题 • 在小设备里,塞不进更多硬件 • 设备ABCD有大量硬件资源无法复用,创造更大价值 ◆ 多设备交互割裂问题 • 试图用单设备的交互逻辑来解决多设备的交互问题 • 多设备新的交互方式 1. 应用:可流转/迁移,一次开发多端部署 2. 数据:分布式文件,分布式数据库,分布式沙箱 3. 硬件:“超级终端”,互助,共享,弹性扩展 4. 交互:更自然多模态交互,空间拓扑交互
6. OpenHarmony的设计目标 • 消费者对单设备的诉求基本已被满足,面临体验瓶颈 • 无法突破单设备约束,导致用户新的需求难以被满足 功能机 让多个智能设备“组合”在一起为消费者更好的服务 智能机 媒体影音 预装的有限功能 语 音 短 信 智慧出行 4M+ 应用 通 讯 录 。。。 软件不可变 软件可变 软件可变 硬件不可变 硬件不可变 硬件可变 智慧教育
7. 目录 • OpenHarmony设计理念 • OpenHarmony关键架构 • OpenHarmony社区进展
8. OpenHarmony技术架构概览
9. OpenHarmony版本演进 OpenHarmony 1.0 支持轻量无屏设备 20年9月10号 应用 开发 OpenHarmony 3.0 OpenHarmony 3.1 OpenHarmony 3.2 OpenHarmony 4.x 支持轻量带屏设备 支持简单Standard设备 支持复杂Standard设备 Standard设备开发增强 Standard设备开发完善 以PMC公告为准 以PMC公告为准 21年5月30日 21年9月30日 22年3月30号 ArkUI:Uikit组件 ArkUI:UI组件&动效增强 ArkUI:声明式,CSS动画 ArkUI:Canvas绘制,高级组件 ArkUI:组件自定义和扩展 ArkUI:支持跨平台 应用框架:元能力,JS API 应用框架: JS API增强 应用框架:Service,Data Ability 应用框架:卡片,多用户,应用常驻 应用框架:stage模型 应用框架:新编程模型 软总线:Mini系统COAP发现 软总线:Wifi下的COAP发现 连接, 组网, 消息/字节传输 软总线:BLE被发现,蓝牙消息/字 节传输;Wifi文件传输 软总线:BLE发现和组网,蓝牙文 件传输,P2P文件/流传输 软总线:New IP/同账号组网 软总线:能力增强 分布式数据:分布式数据库 分布式数据:分布式数据对象 分布式数据:数据存储和数据同 步分离 分布式计算:算力互助 分布式硬件:设备管理 分布式硬件:分布式屏幕、相机 分布式硬件:分布式输入 分布式硬件:能力增强 电话:通话,短信,卡管理 电话:蜂窝数据,彩信,网络管理 电话:蓝牙通话,双卡 电话:补充业务完善 媒体:Standard 媒体框架 媒体:播放,相机和音频增强 媒体:H265,相机精确控制 媒体:统一媒体框架 图形:硬件加速,多屏管理 图形:隐式动画,分屏和多窗 图形:统一渲染,多屏,3D 图形:统一渲染支持更丰富效果 安全:秘钥管理 安全:AT权限管控 安全:完整的权限访问模型 安全:分布式安全底座增强 Ark:端内编译和运行时 Ark:eTS, HPP GC,Actor Ark:并行编译,SmartGC Ark:支持static TS语言 HDF:基本框架,显示,输入... HDF:Audio, Camera …. HDF:Sensor,动态卸载 HDF:电池,电源,权限管理 HDF:模型完善,驱动辅助开发 内核:Linux 内核:Linux多版本 内核:多核, CPU热插拔, swap 内核:内存分级回收 更新:统一应用热更新机制 分布式 能力 系统基 础能力 OpenHarmony 2.0 媒体:轻量级播放/录制引擎 媒体:轻量级相机和音频 图形:窗口基本管理能力 图形:合成, Vsync, Display 部件化:可大可小,弹性部署 内核:LiteOS内核
10. 部件化架构设计
11. 部件化架构:可大可小,弹性部署 OpenHarmony部件全集 桌面 Ark UI 设置 分布 式软 总线 内核 … 设计目标: 图形 图像 多 媒 体 一套源码支持1+8+N设备按需快速拼装 … 驱动框架 都是部件 按需拼装 • 500+部件,定义最小系统部件集 • 支持Mini/Small/Standard系统 • 支持部件Feature配置 • 支持测试套件按部件挑选 • 支持部件间依赖关系看板 • 部件ROM/RAM持续优化 耳机 (Mini) 摄像头 (Small) 平板 (Standard)
12. 部件生命周期E2E设计和管理,实现部件化架构治理 • • • 部件基本属性定义 部件设计规范 部件设计管理平台 • • • 实现与设计一致性看护 部件间解耦设计 部件Feature设计 审核 • • 合入 同意 SIG Leader Committer SIG孵化 开发者 测试套件按部件编译执行 部件独立验证技术 OpenHarmony SIG PMC 4、部件部署 3、部件测试 2、部件开发 1、部件设计 OpenHarmony 测试团队 测试 • • • • 最小系统版本定义和构建 部件按需配置拼装 部件按需启停/动态加载 ROM/RAM基线看护 审核人员 版本构建
13. 部件设计:建立部件设计规范和管理平台,设计可视化 OS能力定义标准化 部件属性 部件设计管理平台 定义说明 中文名称 部件名称为名称形式,体现部件功能 英文名称 在系统内全局唯一,不超过63个有效英文字 符,部件名称为名词形式,需要体现出部件的 功能,使用内核⻛格命名,例如:unix_like 功能描述 一句话简要描述组件功能信息。 特性 部件可配置的特性列表,特性比组件更小粒度 的配置,用户可配置。 源码目录 1、路径规则:领域(foundation、domains或 base等)/子系统名/部件名/ 架构分层 (frameworks 、interfaces等)。interfaces/ innerkits为系统内接口,interfaces/kits为开发 者可使用的接口。 2、建仓规则:"子系统名_部件名"为仓名。 规格 RAM、ROM占用,功能规格参数,例如音频 播放支持的采样率、声道数量、位宽。 依赖 依赖的部件以及三方开源软件。 部件设计规范: https://gitee.com/openharmony/docs/blob/master/zh-cn/design/OpenHarmony部件设计和开发指南.md
14. 部件开发:部件实现与设计一致性看护 部件架构管理 平台 1、获取部件列表 http: request.get(url, component_list) 一致性检查工具 白名单 3、读取不需 要检查的部 件白名单 4、部件架构 管理平台与 manifest部件 名、仓名检查 6、每日定时任务输出不 符合规则的部件 5、仓名、路 径规则检查 2、获取ohos_trunk repo信息 repo init -u http://mgit-tm.***.***.com/hmf/ manifest.git -b ohos_trunk --no-repo-verify ohos_trunk manifest 7、CI部署拦截部件架构 管理平台不存在的和不符 合命名规则的提交 (project: hmf/ manifest, branch: ohos_trunk)
15. 部件开发:部件间依赖看板,实现部件间解耦看护 循环依赖! 部件看板:http://ci.openharmony.cn/quality/componentDashboard/componentList
16. 部件测试:测试套件按部件执行,精准测试 通过config.json配置完成XTS、子系统、部件源码的编译关联 ArkUI 部件 软总线 电话 图形 媒体 账户 内核 驱动 … 最小部件 可选部件 ROM镜像 编译 测试套件 A产品 XTS套件 B产品 XTS套件 C产品 XTS套件 单一部件XTS ● ● ● ● 部件名称 部件测试用例 Syscap能力 特性能力
17. 部件部署:最小系统部件集定义 最小系统设计原则: 1、系统使能依赖的最小部件; 如:Kernel、驱动框架; 2、OH必选特征相关部件; 如:分布式软总线、HDF 3、OH安全基础能力部件; 如:huks、device_auth 4、OH生态治理部件; 如:syscap_codec
18. 部件部署:部件按需拼装 • • • 部件源码编译的输出一般为库、可执行文件和配置文件。 部件的编译输出按分区和目录进行部署, 同一个部件的编译输出可部署到不同设备上 。 最小系统部件集基础上通过product/config.json按需配置。 /vendor/company/product/config.json { "product_name": "demo", "ohos_version": "OpenHarmony 3.1", "device_company": "hisilicon", "board": "hispark_taurus", "kernel_type": "liteos-a", "kernel_version”: "2.2.0", "subsystems": [ { "subsystem": "startup", "components": [ { "component": "syspara_lite", "features":[] }, { "component": "init", "features":[] } ] }, { … }, { "subsystem": "kernel", "components": [ { "component": "liteos_a", "features":[] } ] }, ], "product_adapter_dir": "//vendor/company/product/hals", }
19. 分布式框架设计
20. 个人拥有的智能设备越来越多,跨设备体验越发重要 人均持有设备统计和预测 (单位:台) 四大核心诉求 体验一致: 例如:手机上的丰富的应用能 在其他终端上使用 体验连续: 例如:视频播放进度能跨设 备迁移 一致 连续 互补 协同 硬件优势能互补: 例如:手机能使用⻋机上的 GPS进行辅助定位 消费者期望:用最合适的设备,在最合适的时机,做最适合的事 软件与内容能协同: 例如:手机的地图信息与⻋ 机的地图协同使用
21. 分布式框架:将复杂的设备间应用交互封装成组件调用 OpenHarmony Ability Android应用 APP Pack Ability1 数据读写 Ability12 …… 分布式UI框架 文件传输 分布式任务调度 认证 认证 连接 连接 分布式数据管理 分布式设备管理 传输 传输 分布式软总线 OpenHarmony 设备A 设备B 设备A 设备B
22. 分布式框架:支持应用天生分布式 应用 播控中心 元能力 API 分布式包管理 多屏协同 超级桌面 多端协同 框架 分布式数据管理 WeLink 多媒体 数据存储 跨端迁移 框架 分 布 式 超级终端 投屏 分布式硬件 分布式图库 权限 分布式剪贴板 框架 键鼠穿越框架 分布式运行管理 分布式相机 Arkui 窗口 分布式卡片 管理框架 分布式窗口管理 分布式拍照 分布式文件管理 … … 分布式拖拽框 架 分布式权限管理 分布式设备安全等级 应用描述文件 系统分享 全平台窗口策略 多实例 设备管理 缓存管理 权限同步 安全等级同步 事件监听 存储空间管理 输入法窗口管理 组件形态 分布式相机 元数据管理 权限使用记录 安全等级规范 免安装 安全隐私等级 沉浸式效果 运行管控 分布式屏幕 分包依赖 K-V存储能力 窗口动效 生命周期 分布式音频 权限使用提醒 安全等级查询 精准分发 数据库能力 窗口管理能力 环境变更 分布式输入 全局包管理 全局一份数据 组件与窗口解耦 动态调度 分布式Sensor 多用户支持 多用户支持 分布式窗口 多用户支持 多硬件组合 预读预取 冷热管理 安全等级设置 设备管理 传输控制 分布式软总线 发现 底层软件 连接 组网 传输 消息 Kernel & HAL 字节 文件 流
23. 分布式框架:分布式硬件池化架构 音频业务服务 相机业务服务 外设输入服务 … 统一硬件管理平台 逻辑与物理硬件映射 数据处理 • 硬件协同与分发 全局硬件资源池抽象模型, 统一管理、即插即用 全局硬件资源管理 • 统一硬件抽象接口 支持硬件类型扩展、按需部 署 全局硬件资源池 音频1 音频3 音频2 相机1 相机2 • 屏幕2 相机3 逻辑与物理资源实现解耦, 软件定义硬件 屏幕1 …
24. 案例:分布式硬件互助能力运用 两个平板组成一个超级平板,提供更酷炫的娱乐体验
25. ArkUI开发框架设计
26. ArkUI开发框架概览 ArkUI (简洁自然声明式范式 + 类Web范式 + 高性能声明式后端引擎 + 一致性渲染) ■ 类Web范式 方舟编译器和运行时 (统一字节码 + 高效FFI + 类型加速) 应用 自研声明式UI范式 转换层 方舟 编译器和运 行时 ArkUI - 前端 声明式UI后端引擎 (前后端一体化渲染管线) I DE / 工 具 链 渲染引擎 方舟工具链 字节码 ArkUI – 后端 平台适配层 & 平台桥接层 OpenHarmony/HarmonyOS ArkTS/JS Android 方舟 运行时 方舟 编译器 本地代码 iOS ...
27. ArkUI的声明式范式关键特征 类自然语言的UI结构描述,丰富的开箱即用的多态组件,积木式组件组合 1、 简洁自然声明式语法, 统一UI表达 2、多态组件/动态布局, 简化多设备UI适配 3、多维度状态管理, 简化数据传递&UI变更 @Component struct IndexPage { build() { Row() { TabBar() Tabs() { TimelinePage() AlbumSetPage() } } } } @Component struct TimelinePage { build() { TabContent() { Stack() { Grid() { LazyForEach(data, (item) => { GridItem() { ImageGridItemComponent(item) } …… } 动效示例 @Component struct ImageGridItemComponent { build() { Stack() { Image(this.pixelMap) .sharedTransition(this.shareId) }.onClick(() => { // 路由跳转 router.push({uri:'/pages/PhotoItem'}) }) } }
28. ArkUI跨设备 – 多设备UI适配 顶部 场 景 样 例 入口图标 典型场景样例 分栏 图文/图片详情等大图大字 体典型场景 响应式布局:响应式组件+响应式能力 列表 侧边栏 网格 自适应布局:自适应组件+自适应能力 栅格断点系统 Row/Column/Stack/Flex自适应布局组件 布局 能力 自适应能力 断点 栅格 分层参数/主题⻛格 视觉 交互 圆⻆尺寸 颜色 边框 字体 媒体查询 多态组件 交互归一
29. ArkUI跨设备–跨设备能力适配(延伸到百K级,M级设备) 轻设备 JS HML CSS 类Web范式 范式编译器 1. 预编译 范式中间表示 2. JS框架下沉 JS Framework 3. 轻量JS引擎 4. 轻量UIKit/图形引擎 解析 3 轻量JS引擎 1 ByteCode 2 JS Framework 下沉 4 轻量UIKit 图形引擎 组件树
30. ArkUI跨OS平台 ArkUI-X开源项目社区 OpenHarmony开源项目社区 ArkUI OS适配层/工具链/API OS适配 ArkUI/能力API定义和实现/… 能力API OS适配实现 ArkUI OS适配实现 Android iOS Windows 工具链 / IDE 声明式范式 … 声明式UI后端 (布局/控件/动效/交互等) 类Web范式 方 舟 引 擎 API 扩展 机制 图形引擎 平台抽象/桥接层 目前华为和阿里巴巴,美的,深开鸿一起共建,已有Android和iOS基础支持 https://gitee.com/arkui-x (目前是定向开源)
31. ArkUI跨OS平台 跨平台开发框架SDK和Sample工程构建演示 下载代码->构建SDK->创建工程->编译目标平台可执行文件 同一Sample工程 在iOS&Android上运行示例
32. 目录 • OpenHarmony设计理念 • OpenHarmony关键架构 • OpenHarmony社区进展
33. OpenHarmony社区共建进展 共建者:5100+人 代码量:近亿行 共建者:1000+人 共建者:100+人 代码量:700万行 2020年9月开源 2021年度 2022年度 社 区 活 跃 度 No.1 110款 28个 14万+ 51家 52个 29个 开源社区 Gitee 指数 商用设备 发行版 Pull Request 共建单位 SIG组 捐赠单位
34. 累计落地110款产品,覆盖金融、教育、交通等领域 金融 教育 代码量:700万行 扫码支付终端 电子签名柜外清 应用开发实验箱 智写板 桌面 智能终端 智能 收款音箱 无线 POS 终端 点阵笔 智能家居 电子班牌 智能家居中控屏 加湿器 交通 取暖器 枪机摄像头 数字政务 商务平板 工业 智能工业平板 工业中控屏 电子 学生证 蒸箱 冰箱 净水器 交通 控制器 广告机 智行电子哨兵 边缘计算小站 智能网关
35. 2022年迭代更新5个版本,支撑29款复杂带屏设备商用 2022.3.30 2022.5.31 2022.7.30 2022.9.30 2022.11.30 OpenHarmony 3.1 Release 支持复杂带屏设备 OpenHarmony 3.2 Beta1 OpenHarmony 3.2 Beta2 OpenHarmony 3.2 Beta3 OpenHarmony 3.2 Beta4 商用的复杂带屏设备(29款) 桌面智能终端 智行闸机 无线POS终端 电子签名柜外清 智行电子哨兵 智能零钱宝 电子学生证 32寸广告机 无线POS终端 智能POS终端 便携式制卡机 商务平板 智能POS机 商务平板 桌面智能终端 智能人脸识别终端 访客一体机 人脸支付终端 工业中控屏
36. 238款产品通过OpenHarmony社区兼容性测评 110 款 商用设备 28 款 100 款 软件发行版 开发板/模组 238款产品通过测评 覆盖教育、交通、金融、家居、安防等多个行业 商 用 设 备 : 5 0 家 厂 商 | 11 0 个 产 品 发行版: 15 家厂商 | 28 个产品 模组 / 开发板: 48 家厂商 | 100 个产品
37. API 9将支持手机、平板、PC等复杂带屏设备应用开发 API 9 18000+ APIs 声明式UI能力 应用开发能力 多媒体能力 WEB 能力 通信能力 分布式能力 • MVVM 编程模型 •Workers 多线程能力 •音视频录制 •Cookie 权限配置 •路由绑定 •跨端资源分享接续 • 声明式开发范式 • 线程间数据共享 •音视频播放 • Cookie 保存和清除 •http 2.0 •跨端服务迁移 • 装饰器能力增强 • Stage 模型 •音视频编解码 •HTTPS 双向认证 •gzip 压缩 •本地 RDB • 高级 UI 组件 •ExtensionAbility 机制 •音频事件监听 •Web文档预览编辑 •http 并发框架 •DataShare • 相对布局 •测试框架能力 •hls/https 点播 •⻚面内容选择复制 •TLSv1.2 和 TLSv1.3 •本地 KVDB • 原子布局能力 •FA 卡片开发 • 视频缩放模式 •⻚面搜索/保存 •Wlan、蓝牙、NFC 接口 • 自定义布局 • 媒体数据管理 •⻚面缩放 • 扁平化布局 • 多应用焦点管理 •地理位置 • 响应式布局组件 • 动效能力 • 可复制/粘贴能力 • XcomponentUI • 2D/3D绘制能力 • LocalStoragee •媒体播放
38. 关注OpenHarmony社区获取更多信息!谢谢! 关注官方公众号 官网网址 w w w . o p e n h a r m o n y. c n
39.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-23 05:54
浙ICP备14020137号-1 $Map of visitor$