书名:移动应用开发技术 : 基于OpenHarmony平台
ISBN:978-7-115-65061-0
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
组 编 华为技术有限公司
编 著 赵小刚 楚朋志
责任编辑 邓昱洲
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书介绍OpenHarmony操作系统移动应用开发的必备知识,既包含基础的移动应用结构剖析,也涉及目前流行的终端设备AI模型的使用。本书强调理论和实践相结合,提供丰富的代码示例,方便读者理解和运用移动应用开发的知识。
本书讲解了 OpenHarmony 的系统特性、应用开发流程和开发工具、应用组成和配置,以及应用模型、ArkTS语法、基于ArkTS框架的UI设计与开发、数据持久化、传感器应用和媒体管理、网络访问与多线程等传统移动开发内容。此外,还介绍了OpenHarmony应用独有的流转架构和原子化服务等。最后以一个实用性较强的健康生活应用为例,介绍如何从需求分析入手,进行概要设计和详细设计,并最终完成代码开发。本书贯彻软件工程思想,通过工程化理念来指导移动应用开发。本书除第13章,其他章都设计了课后习题,希望能通过练习和操作实践帮助读者巩固所学知识。
本书既可以作为本科院校和高职高专院校计算机相关专业移动应用开发课程的教材,也可以作为对OpenHarmony应用开发感兴趣的IT从业人员的自学用书。
主 任:吕卫锋 北京航空航天大学副校长
副主任:马殿富 北京航空航天大学计算机学院教授
何钦铭 浙江大学计算机科学与技术学院教授
何炎祥 武汉大学计算机学院教授
彭红华 华为ICT战略与业务发展部总裁
唐小光 华为中国战略与Marketing部部长
孙 虎 华为服务Fellow、首席项目管理专家
孙 刚 华为ICT人才伙伴发展部部长
编 委:(按姓氏音序排列)
范 举 中国人民大学信息学院教授
方 娟 北京工业大学计算机学院副院长
郭 耀 北京大学计算机学院副院长
刘耀林 华为ICT人才伙伴发展部校企合作总监
苏统华 哈尔滨工业大学软件学院副院长
孙海龙 北京航空航天大学软件学院教授
王 菡 北京邮电大学叶培大创新创业学院副院长
王景全 华为基础软件人才发展总监
王 新 华为中国区产业发展与生态部总工
魏 彪 华为ICT学院合作总监
周 烜 华东师范大学数据科学与工程学院副院长
当下,信息技术的浪潮正以惊人的速度重塑着全球社会经济的版图。云计算、大数据、人工智能、物联网等新一代信息技术不断涌现,推动产业结构经历深刻的变革。在这场技术革命中,基础软件扮演着至关重要的角色,它不仅是信息系统的基石,更是技术创新的源泉和信息安全的守护者。
回首数十年来我国基础软件的发展历程,国家在这一领域倾注了大量资源。得益于国家科技重大专项和政策的有力支持,我国的基础软件实现了迅猛发展,步入了快车道。国产软件阵营蔚为壮观,操作系统、数据库管理系统、中间件等核心领域硕果累累,不仅在国内市场占据了一席之地,更在多个关键领域跻身国际先进行列。随着开源生态的逐步繁荣,我国也积极响应,拥抱开源生态建设。我们目睹了openEuler、OpenHarmony等国产操作系统的蓬勃发展,见证了MindSpore人工智能框架的突破性创新,以及Ascend C编程语言的闪亮登场。在华为等科技企业和广大开发者的共同努力下,基础软件在开源生态蓬勃发展的推动下取得了更大的成就。这些成就是我国基础软件实力的有力证明,也是自主创新能力的生动展示。它们不仅彰显了我国在全球化技术竞争中的坚定立场,更体现了对技术自主权的坚守与对自主创新的决心。
在全球化的技术竞争中,自主创新是我们的必由之路,开源生态建设是关键一环。开源生态支持多元化的技术体系和发展路径,有助于形成多样化的产业生态系统,满足不同行业和领域的需求;推动了技术和接口的标准化,使得不同软件之间能够更容易地实现互操作和集成;促使资源共享,减少了重复开发和资源浪费,提高了资源的利用效率。因此,未来基础软件的发展离不开开源生态的建设。
当前,在核心技术、产业生态和国际标准制定上,我国的基础软件与国际先进水平仍有一定的差距。我们必须深化对基础软件的认识,加大研发投入,更加积极地拥抱开源生态建设,培育卓越人才,以确保在科技革命和产业变革中占据有利地位。当下,各大高校正在构建相关课程体系,强化理论与实践结合,建立先进的基础软件实验室,通过校企合作,推动学术与产业的融合,致力于培养具有国际视野的高水平基础软件人才。
由此,我们精心编撰了这一丛书,以响应国家对基础软件国产化替代的战略需求,为信息技术行业的人才培养提供有力的知识支持。本丛书以国产基础软件为核心,全面覆盖操作系统、编程语言、人工智能等关键技术领域,深入剖析基础软件的发展历程、核心技术、应用案例及未来趋势,力图构建多维度、立体化的知识架构,为读者提供全方位的视角。
本丛书在内容布局上,注重系统性与实用性的结合,侧重于培养读者的实践能力和创新思维。我们不仅深入探讨基础软件的理论基础与技术原理,更通过丰富的实际案例与应用场景,展示华为等企业在该领域的最新成果与创新实践,引导读者将理论知识转化为解决实际问题的能力。本丛书的编撰团队由国内一流院校的教师和业界资深专家组成,他们深厚的学术背景和丰富的实践经验,为丛书内容的权威性和实用性提供了坚实保障。
我们期望通过这套丛书,传播国产基础软件的先进理念与优秀成果,激发广大师生与从业人员的使命感,鼓励他们投身于我国基础软件国产化的创新征程。我们坚信,唯有汇聚全社会的智慧与力量,持续推动创新,才能实现我国基础软件的自主可控与高质量发展。让我们携手并进,共同推动新一代信息技术的繁荣发展,助力我国从信息技术大国迈向信息技术强国。
北京航空航天大学副校长 吕卫锋
当下,AI创新风起云涌,大模型“百花齐放”,云计算步入“黄金时代”……我们看到,以人工智能、云计算、大数据等为代表的新一代信息技术加速突破应用,推动社会生产方式变革、创造人类生活新空间。基础软件作为新一代信息技术的底座,为信息产业和数字经济的发展提供了强有力的支撑,它不仅是各种应用软件运行的平台,还承载着数据处理、网络通信、系统安全等核心功能。一个强大、稳定、高效的基础软件体系,能够确保整个信息产业和数字经济的顺畅运行,为各种创新应用提供坚实的土壤。因此,基础软件技术也被称为“根技术”。
为构筑软件行业的根基,华为与全球伙伴一起,围绕鲲鹏、昇腾、欧拉、CANN、昇思等产品,构建数字基础设施生态,打造数字世界的算力底座。同时,华为秉持包容、公平、开放、团结和可持续的理念,与开发者共建世界级开源社区,加速软件创新和共享生态繁荣。
人才是高科技产业的关键资源。基础软件作为底层技术,通用性和专业性更强,因此需要更多对操作系统领域有深入研究、有自主创新能力的人才。
在ICT人才培养方面,华为已沉淀了30多年的丰富经验。华为将这些在ICT行业中摸爬滚打积累而来的经验、技术、人才培养标准贡献出来,联合教育主管部门、高等院校、培训机构和合作伙伴等各方生态角色,通过建设人才联盟、融入人才标准、提升人才能力、传播人才价值,构建良性ICT人才生态,从而促进科技进步、产业繁荣,助推社会可持续发展。
为培养高校ICT人才,从2013年起,华为携手全球高校共建华为ICT学院。这一校企合作项目通过提供完善的课程体系,搭建线上学习和实验平台,培养师资力量,携手高校培养创新型和应用型人才;同时通过例行发布ICT人才白皮书,举办华为ICT大赛、华为ICT人才双选会等,营造人才成长的良好环境和通路,促进人才培养良性循环。
教材是知识传递、人才培养的重要载体,华为通过校企合作模式出版教材,助力高校人才培养模式改革,推动ICT人才快速成长。为培养基础软件人才,华为聚合技术专家、高校教师等,倾心打造华为ICT学院教材。本丛书聚焦华为基础软件,内容覆盖 OpenHarmony、openEuler、MindSpore、Ascend C等基础软件技术方向,系统梳理和融合前沿基础软件技术;包含大量基于真实工作场景编写的行业实际案例,理实结合;将知识条理清晰、由浅入深地拆解分析,逻辑严谨;配套丰富的学习资源,包括源代码、实验手册、在线课程、测试题等,利于学习。本丛书既适合作为高等院校相关课程的教材,也适合作为参与相关技术方向华为认证考试的参考书,还适合计算机爱好者用以学习和探索基础软件的开发应用。
智能化的大潮正在奔涌而来,未来智能世界充满机遇和挑战。同学们,请在基础软件的知识海洋中遨游,完成知识积累,拓展实践能力,提升软件技能,为未来职场蓄力。华为也期待与你们携手,共同打造根深叶茂的操作系统基座和开源生态系统,为促进基础软件根技术生态发展、实现科技创新、促进数字经济高速增长贡献力量。
华为ICT战略与业务发展部总裁 彭红华
自华为公司2019年推出HarmonyOS以来,HarmonyOS以其便捷的互联互通能力和强大的交互能力得到了众多软硬件公司的支持,截至2024年6月,搭载HarmonyOS的硬件设备数量已超过9亿,HarmonyOS正加速成为世界第三大移动操作系统。2023年8月,在华为HDC大会上,华为正式推出HarmonyOS NEXT,该操作系统不兼容Android。这对华为公司及广大鸿蒙开发者来说,是巨大的机遇和挑战,Android市场上的众多软件都需要适配鸿蒙操作系统,因此急需一大批掌握HarmonyOS应用开发技能的人才投身HarmonyOS生态建设。
作为HarmonyOS生态发展的重要一环——开源鸿蒙(OpenHarmony操作系统),自2020年由开放原子开源基金会发布与命名以来,一直肩负着推广鸿蒙生态、使能千行百业的重要使命。OpenHarmony 操作系统在社会各界开源力量的帮助中快速成长,并逐渐具备HarmonyOS的各项重要特性,特别是从4.0版本起,已基本与HarmonyOS NEXT对齐,未来更会成为鸿蒙操作系统发展的技术底座。开设基于OpenHarmony操作系统的应用开发课程,不仅可以培养学生的移动应用开发能力,更能推动开源众智文化的发展。
本书采用“教、学、做”一体化的教学方法,旨在为培养OpenHarmony应用开发人才提供适合的教学与训练。本书以移动应用开发过程为主线,按“学做合一”的指导思想,引入CDIO(Conceive,Design,Implement,Operate)工程教育方法,在完成技术讲解的同时引入相应的项目实例,引导读者快速理解和掌握相关技术难点。读者在阅读本书的过程中,不仅能快速学习基本技术,而且能按工程化实践要求进行项目的开发并实现相应的功能。
本书的主要特点如下。
为了使读者快速掌握OpenHarmony移动应用开发的相关技术,并按实际项目开发要求熟练运用开发技术,本书在重要知识点后面都安排了项目示例代码,以帮助读者巩固相关知识。第13章更是以较成熟的OpenHarmony应用——健康生活应用的设计和开发过程为例,帮助读者进行软件工程知识的应用与训练。
本书由浅入深,依次介绍OpenHarmony的系统特性、应用结构、应用模型、UI设计与开发和数据持久化等移动应用开发都需要的知识,更突出介绍OpenHarmony独有的流转架构和原子化服务的设计与开发。在逐渐丰富移动应用开发技能的同时,引入相关技术与知识,实现技术讲解与训练合二为一,有助于“教、学、做”一体化教学的实施。
为方便读者使用,本书提供配套电子教案,读者可用PC浏览器登录https://box.lenovo.com/l/mu2CCY下载。
使用本书教学的参考学时为76学时,其中理论学时为51学时,实验学时为25学时。建议采用理论与实践一体化的教学模式,参考学时见表0-1。
表0-1 学时分配表
模块 |
理论(51学时) |
实验(25学时) |
学时共计 |
|||||||
---|---|---|---|---|---|---|---|---|---|---|
序号 |
知识单元 |
知识点 |
重点 |
难点 |
学时 |
实验 |
实验类型 |
学时 |
||
基 |
1 |
OpenHarmony |
初识OpenHarmony |
1 |
11 |
|||||
开发你的第一行 |
√ |
4 |
创建简单的Hello World |
验证型 |
1 |
|||||
OpenHarmony应用结构剖析 |
√ |
4 |
了解OpenHarmony应用组成 |
验证型 |
1 |
|||||
2 |
OpenHarmony |
OpenHarmony应用模型 |
√ |
√ |
6 |
UIAbility调用ServiceExtensionAbility获取天气实验 |
验证型 |
2 |
8 |
|
进 |
3 |
UI设计 |
ArkTS语法 |
6 |
使用 ArkTS 的状态管理功能完成状态实验 |
设计型 |
2 |
26 |
||
ArkUI设计与开发 |
√ |
√ |
6 |
购物车实验 |
设计型 |
3 |
||||
4 |
数据持久化 |
OpenHarmony数据持久化 |
√ |
√ |
6 |
基于数据库存储的手机通讯录应用程序(application,本书简称app)的设计与实现 |
设计型 |
3 |
||
高 |
5 |
分布式程序 |
OpenHarmony流转架构剖析 |
√ |
√ |
3 |
分布式媒体播放器app的设计与实现 |
设计型 |
2 |
28 |
6 |
传感器应用 |
OpenHarmony传感器应用和媒体管理 |
√ |
4 |
视频播放应用开发 |
设计型 |
2 |
|||
7 |
服务卡片 |
OpenHarmony原子化服务 |
√ |
√ |
4 |
健康饮食服务卡片开发 |
设计型 |
2 |
||
8 |
网络和多线程 |
OpenHarmony网络访问与多线程 |
√ |
√ |
3 |
网络资源访问并显示的实验 |
设计型 |
2 |
||
9 |
移动应用前沿技术 |
OpenHarmony高级技术 |
√ |
4 |
NAPI应用实验 |
设计型 |
2 |
|||
综合篇 |
10 |
综合应用 |
OpenHarmony开发实战进阶 |
运动健康app开发 |
设计型 |
3 |
3 |
本书由华为技术有限公司组编,华为公司魏彪、谭景盟、徐梓健、张博和冷佳发担任主审。在本书的编写过程中,编著者参阅并引用了华为公司的相关技术文档,在此衷心感谢华为公司工程师的大力支持和帮助。由于作者水平有限,书中难免存在不足之处,殷切希望广大读者批评指正。
作者
2025年3月
学习目标
了解OpenHarmony的起源和发展。
掌握OpenHarmony技术架构及各层特点。
掌握OpenHarmony技术特性。
了解OpenHarmony的安全特性。
在现代信息社会,人们越来越离不开具备联网功能的智能设备,小到系统容量不到100KB的手环,大到系统容量在2GB以上的智慧屏等,各种物联网设备已经融入大众的日常生活和工作,出现在智慧城市、智慧园区、智慧物流、智慧交通、智慧消防、智慧医疗、智能家居等的方方面面——万物互联的智能设备已经与人们的生活或生产密不可分。
本章主要基于全球智能终端的发展与我国移动操作系统的机遇与挑战,简要介绍以万物互联为目标的OpenHarmony;分析OpenHarmony技术架构,揭秘其核心组成部分;详解OpenHarmony技术特性,挖掘其内在工作机理;阐述OpenHarmony安全特性,研究其如何保障用户、数据和设备的安全。
相关统计数据表明,近年来全球智能终端产业飞速发展。2015年,全球人均拥有近两部智能设备(包括但不限于手机、平板计算机、个人计算机等传统智能设备和物联网设备等)。2020年,这个数值达到4部。预计2025年人均智能设备拥有量将达到9部,其中传统智能设备数量增加得不多,增加更多的是物联网设备(如智慧家电、电动汽车、无人机等),以及种类繁多的传感器设备等。
在智能设备快速发展的过程中,很多硬件厂商推出过各类硬件产品,苹果公司和谷歌公司在智能设备领域取得了巨大成功。苹果公司自2007年推出iPhone以来,推出的iMAC、iPad、HomePod和可穿戴设备等深受年轻人喜爱,占领了智能设备的高端市场。苹果公司成功的关键在于打造了一个以操作系统为核心的闭源生态系统,各种苹果终端设备都能进行互联互通,而非苹果设备则无法与苹果设备快速交互。
谷歌公司作为传统软件公司,打入智能设备领域的关键是提供了开源操作系统Android。谷歌公司很少生产硬件,但把Android开源并免费提供给各硬件厂商。各硬件厂商可以使用Android系统来适配它们生产的各种硬件产品,包括Android手机、Android手表、Android平板计算机和Android机顶盒等。只要安装Android系统,不同厂商设备间的交互是很方便的。Android因其开源特性,迅速占领了中低端市场。此外,谷歌公司为了更好地适应广泛的物联网市场,也推出了Fuchsia操作系统。
近5年来,苹果公司的iOS和谷歌公司的Android在智能设备领域始终占有90%左右的市场,从其成功的共性来分析,移动操作系统对智能设备的发展至关重要。iOS和Android系统的内核均为Linux或类Linux,其中一个闭源,一个开源,它们能超越Linux成为智能设备主导操作系统的原因在于生态的搭建。
智能终端的飞速发展,给我国移动操作系统的发展带来历史性机遇。我国已具备终端产业领先优势:2021年,我国5G基站数量超过100万个,居全球第一;个人终端及家电在全球市场的份额超过50%;国内有30多家先进的芯片及模组厂商;阿里巴巴、华为和腾讯等厂商在云服务和云计算领域也处于全球第一阵营。但在这个巨大的物联网行业市场面前,我们也应清醒地认识到我国移动终端市场如下的不足之处。
① 占据市场90%以上的物联网设备安装的是国外的操作系统,需要支付巨额的授权费,信息的安全性也无法得到有效保障。
② 海量的物联网设备催生了众多定制化物联网系统,操作系统碎片化严重;设备的互联基本在应用级,快速、稳定的互联互通难以得到保障。
OpenHarmony是以方便智能终端系统互联互通为目标打造的一款中国自主知识产权物联网操作系统。该系统由华为公司开发,后来捐赠给开放原子开源基金会(OpenAtom Foundation),成为由其孵化及运营的开源项目。在传统的单设备系统能力基础上,OpenHarmony提出了基于同一套系统能力、适配多种终端形态的分布式理念,支持手机、计算机、平板计算机、智能穿戴、轻量级智能穿戴、智慧屏、车机、智慧音箱、增强现实(Augment Reality,AR)/虚拟现实(Virtual Reality,VR)眼镜等多种终端设备,具备全场景(如移动办公、运动健康、社交通信、媒体娱乐等)服务能力。
HarmonyOS则是华为公司基于OpenHarmony进行定制开发的商业发行版,主要运行于华为手机、平板计算机和智慧屏等带屏富设备上。自2019年推出以来,HarmonyOS深受广大消费者喜爱,目前已发布了4.0版。开源的OpenHarmony操作系统截至2024年2月的版本为3.2。越来越多的物联网(Internet of Things,IoT)设备厂商、智能家电厂商、金融公司和互联网公司从OpenHarmony上发现了自身产品发展进步的新方向,从而积极拥抱OpenHarmony生态。目前,搭载OpenHarmony的硬件设备已经超过3亿台,OpenHarmony正以充满活力的世界第三大移动操作系统的身份吸引着越来越多的移动应用开发者的关注。
OpenHarmony提供了支持多种开发语言的应用程序接口(Application Program Interface,API),供开发者进行应用开发。支持的开发语言包括ArkTS、JS(JavaScript)、C、C++。ArkTS简单、易用且功能强大,是OpenHarmony官方推荐的开发语言。
OpenHarmony整体遵从分层设计,系统功能按照“系统→子系统→组件”逐级展开,在多设备部署场景下,支持根据实际需求对某些非必要的子系统或组件进行裁剪。子系统是一个逻辑概念,它由对应的组件构成。组件就是一系列可复用的软件单元,它包含源代码、配置文件、资源文件和编译脚本等,能独立构建,以二进制方式集成,具备独立验证能力。
OpenHarmony技术架构如图1-1所示,主要由内核层、系统服务层、框架层和应用层这4层组成,具体介绍如下。
图1-1 OpenHarmony技术架构
内核层是OpenHarmony基本功能的集合,通过调用底层硬件为系统服务层提供服务。该层包含以下几个部分。
OpenHarmony 采用多内核设计,支持针对不同资源的设备提供适合的操作系统(Operating System,OS)内核。对于轻设备(如手环),内核可以小于1MB;对于富设备(如手机),内核可以大于1GB。对内核抽象层(Kernel Abstract Layer,KAL)屏蔽多内核差异,向上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统管理、网络管理和外设管理等。
OpenHarmony 支持以下几种内核系统类型。其中轻量系统内核称为LiteOS-M,小型系统内核称为LiteOS-A,以上两种内核统称为LiteOS;标准系统内核采用Linux Kernel。
① 轻量系统(mini system):面向32位微控制单元(Microcontroller Uint,MCU)类处理器(例如ARM Cortex-M、RISC-V)的设备,硬件资源极其有限。支持的设备最小内存为128KB,可以提供多种轻量级网络协议、轻量级的图形框架,以及丰富的IoT总线读写部件等。可支撑的产品有智能家居领域的连接类模组、传感器设备、穿戴类设备等。
② 小型系统(small system):面向应用处理器(例如ARM Cortex-A)的设备。支持的设备最小内存为1MB,可以提供更高的安全性、标准的图形框架、视频编解码的多媒体能力。可支撑的产品有智能家居领域的网络摄像头、电子猫眼、路由器,以及智慧出行领域的行车记录仪等。
③ 标准系统(standard system):面向应用处理器(例如ARM Cortex-A)的设备。支持的设备最小内存为128MB,可以提供增强的交互能力、图形处理单元(Graphics Processing Unit,GPU)及硬件合成能力、更多控件及动效更丰富的图形能力、完整的应用框架。可支撑的产品有冰箱显示屏等。华为手机的HarmonyOS就是基于标准系统开发的。
硬件驱动框架(Hardware Driver Foundation,HDF)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。驱动子系统也支持针对不同硬件进行裁剪。
系统服务层是OpenHarmony的核心服务能力集合,通过框架层为应用层提供服务。该层包含以下几个部分。
① 系统基本能力子系统集。它为分布式应用在OpenHarmony多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、人工智能(Artificial Intelligence,AI)等子系统组成。其中,方舟多语言运行时提供了ArkTS、JS、C、C++多语言运行时和基础的系统类库。
② 基础软件服务子系统集。它为OpenHarmony提供公共的、通用的软件服务,由事件通知、电话、多媒体、面向产品生命周期设计(Design For X,DFX)、移动感知平台和设备虚拟化(MSDP&DV)等子系统组成。其中,MSDP&DV子系统的功能如下。
● 移动感知平台(Mobile Sensing Development Platform,MSDP)。该平台提供分布式融合感知能力,借助OpenHarmony分布式能力,汇总融合来自多个设备的多种感知源,从而精确感知用户的空间、移动、手势、运动健康等多种状态,构建全场景泛在基础感知能力,支撑智慧生活新体验。
● 设备虚拟化(Device Virtualization,DV)。通过虚拟化技术可以实现不同设备的能力和资源融合。
③ 增强软件服务子系统集。为OpenHarmony提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
④ 硬件服务子系统集。为OpenHarmony提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度进行裁剪,每个子系统内部又可以按功能粒度进行裁剪。
框架层为OpenHarmony应用开发提供了ArkTS、JS、C、C++等多语言的用户程序框架,以及UI框架和Ability框架。适用于ArkTS、JS语言的方舟开发框架即ArkUI,同时还提供各种软硬件服务对外开放的多语言框架API。根据系统的组件化裁剪程度,OpenHarmony设备支持的API也会有所不同。
应用层包括系统应用和扩展应用/第三方应用。OpenHarmony 的应用由一个或多个用户界面能力(User-Interface Ability,UA)或扩展能力(Extentension Ability,EA)组成。其中,UA有用户界面,提供与用户交互的能力;而EA针对具体场景,提供输入、卡片、后台运行任务的能力,以及统一的数据访问能力等。UA 在进行用户交互时所需的后台数据访问也需要由对应的EA提供支撑。基于UA/EA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,从而为用户提供一致、高效的应用体验。
基于OpenHarmony先进的技术架构,OpenHarmony对外体现出三大特性,分别是:硬件互助,资源共享;一次开发,多端部署;统一OS,弹性部署。其中,“硬件互助,资源共享”体现了OpenHarmony的分布式特性,能将多个不同设备统一成一个逻辑整体;“一次开发,多端部署”则体现了OpenHarmony应用程序开发的便利性,OpenHarmony应用只需修改少量界面样式代码,就可以在不同硬件配置的设备上运行;“统一OS,弹性部署”则是指OpenHarmony可以根据硬件配置的不同进行灵活裁剪,以适配不同硬件。这三大特性都体现出OpenHarmony是一个适应多设备的物联网操作系统。
多种设备之间能够实现硬件互助、资源共享,依赖的关键技术包括分布式软总线、分布式设备虚拟化、分布式数据管理、分布式任务调度和分布式连接能力等。
分布式软总线是手机、平板计算机、智能穿戴、智慧屏、车机等分布式设备的通信基础,为设备之间的互联互通提供了统一的分布式通信部署,为设备之间的无感发现和零等待传输创造了条件。开发者只需要聚焦于业务逻辑的实现,无须关注组网方式与底层协议。分布式软总线如图 1-2所示。
图1-2 分布式软总线
总线中枢负责网络和计算的控制功能,是分布式软总线的“大脑”。其中,互联管理中心负责网络内设备的组网和网络拓扑管理,可以让网络内同一用户的设备进行自动发现,实现无感组网;决策中心和数据与计算中心则控制着网络内数据的分配和算力的分配,保障分布式软总线内所有设备的计算效率最大化。
任务和数据总线负责网络内设备间任务的流转和数据的传输等,是分布式软总线的执行部分;安全部分保障分布式软总线内数据的安全传输和设备间的安全访问;设备描述部分则对设备能力进行画像,决策中心可以依据该画像对设备进行合理任务分配。
分布式软总线的典型应用场景为智能家居。例如,用户在烹饪时,可以通过手机碰一碰连接烤箱,控制烤箱自动按照菜谱设置烹调参数并制作菜肴。与此类似,料理机、抽油烟机、空气净化器、空调、灯、窗帘等都可以通过手机控制,从而实现设备之间即连即用,不需要烦琐的配置。
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的能力(如显示能力、摄像能力、输入输出能力、音频能力及传感器能力等)优势。分布式设备虚拟化如图1-3所示。
图1-3 分布式设备虚拟化
其中,设备A为手机等带屏幕的移动设备,这类设备具备较强的算力,是分布式设备虚拟化场景的中心控制器;设备B为其他智能设备,包括智慧屏、智能穿戴和车机等算力较弱的设备。设备A上的多设备虚拟化工具(Kit)负责调用多设备虚拟化平台的相关功能,对虚拟化后的多种设备进行接入控制和设备管理;设备B上的多设备虚拟化软件开发工具包(Software Development Kit,SDK)负责对各种物理设备进行虚拟化和规范化,提供统一的调用端口供多设备虚拟化工具调用。
分布式设备虚拟化的典型应用场景为日常家务活动。例如,用户在做家务时接听视频电话,可以将手机与智慧屏连接,并将智慧屏的屏幕、摄像头与音箱虚拟化为本地资源,替代手机自身的屏幕、摄像头、听筒与扬声器,实现一边做家务、一边通过智慧屏和音箱来实现视频通话。
分布式数据管理基于分布式软总线的能力,实现对应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,跨设备的数据处理如同本地数据处理一样方便快捷,让开发者能够轻松实现全场景、多设备下的数据存储、共享和访问,为打造一致、流畅的用户体验创造了基础条件。分布式数据管理如图1-4所示。
图1-4 分布式数据管理
其中,分布式数据访问模块负责对OpenHarmony中的分布式数据库和分布式文件进行跨设备的增、删、改、查操作,同时支持订阅远程设备上的数据变化;数据同步模块负责网络内设备间数据的同步;数据存储模块负责建立数据索引和解决多设备访问同一数据资源时的冲突问题;数据安全模块则通过数据分级、数据加密和访问控制等多种途径来解决分布式环境下数据访问的安全问题。
分布式数据管理的典型应用场景是协同办公。例如,将手机上的文档同步到智慧屏,在智慧屏上对文档执行翻页、缩放、标记等操作,文档的最新状态可以在手机上同步显示。
分布式任务调度基于分布式软总线、分布式数据管理、分布式环境画像(Profile)等技术,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
图1-5所示为应用迁移分布式任务调度。
图1-5 应用迁移分布式任务调度
分布式任务调度的典型应用场景是导航。例如,用户驾车出行时,上车前可以在手机上规划好导航路线,上车后导航自动迁移到车机和车载音箱,下车后导航自动迁移回手机。如果用户骑车出行,可以在手机上规划好导航路线,骑行时手表会接续导航,这样就不用随时查看手机,以避免出行时发生事故。
分布式连接能力提供了智能终端底层和应用层的连接能力,通过通用串行总线(Universal Serial Bus,USB)接口共享终端部分硬件资源和软件能力。开发者基于分布式连接能力,可以开发相应形态的生态产品,为消费者提供更丰富的连接体验。分布式连接能力如图1-6所示。
分布式连接能力包含底层能力(即连接服务,Connect Service)和应用层能力(即智慧生活客户端服务,AILife Client Service)。
底层能力涉及如下模块。
① 终端USB:智能终端侧USB模块,可为USB生态产品供电,是连接智能终端和生态产品的物理接口。
② 接入管理:智能终端对外提供的统一接口,用于和生态产品进行通信。
③ 通信框架:统一管理网络设置、信号显示,通过接入管理模块对外提供接口。
图1-6 分布式连接能力
应用层能力涉及智慧生活模块,该模块为生态产品的公共开发平台,能够接入USB生态设备并创建接入卡片。
基于分布式连接能力,可以通过开发配件拓展智能终端的通信能力,配件包括如下内容。
① USB模块:配件侧USB模块,用于和智能终端建立物理连接。
② 功能模块:生态合作伙伴可根据需求开发设备系统和功能。
③ 配件插件:生态合作伙伴可基于应用层能力开发配件功能。
OpenHarmony提供了用户程序框架、Ability框架及用户界面(User Interface,UI)框架,支持应用开发过程中多终端的业务逻辑和界面逻辑的复用,能够实现应用的一次开发、多端部署,提升跨设备应用的开发效率。一次开发、多端部署如图1-7所示。
图1-7 一次开发、多端部署
其中,UI框架支持ArkTS、JS两种开发语言,并提供了丰富的多态控件,可以在手机、平板计算机、智能穿戴、智慧屏、车机等设备上显示不同的用户界面效果。UI框架采用业界主流设计方式,提供多种响应式布局方案,支持栅格化布局,满足不同屏幕的界面适配能力。
OpenHarmony通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。OpenHarmony支持通过编译链关系自动生成组件化的依赖关系,形成组件树依赖图;支持产品系统的便捷开发,降低了硬件设备的开发门槛,它的主要特性如下。
① 支持各组件的选择(组件可有可无):可以根据硬件的形态和需求选择所需的组件。
② 支持组件内功能集的配置(组件可大可小):可以根据硬件的资源情况和功能需求选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。
③ 支持组件间依赖的关联(平台可大可小):可以根据编译链关系自动生成组件化的依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。
在搭载OpenHarmony的终端上,主要通过访问控制和用户认证两种方式来保障硬件和数据安全。
访问令牌管理器(Access Token Manager,ATM)是OpenHarmony基于Access Token构建的统一的应用权限管理能力。
默认情况下,应用只能访问有限的系统资源。但某些情况下,应用为满足扩展功能的诉求,需要访问额外的系统或其他应用的数据(包括用户个人数据)和功能。系统或应用也必须以明确的方式对外提供接口来共享其数据或功能。OpenHarmony提供了一种访问控制机制(即应用权限)来保证这些数据或功能不会被不当或恶意使用。
应用权限保护的对象可以分为数据和功能。
① 数据包含个人数据(如照片、通讯录、日历、位置)、设备数据(如相机、麦克风等设备的标识)、应用数据。
② 功能则包括设备功能(如打电话、发短信、联网)、应用功能(如弹出对话框、创建快捷方式)等。
应用权限是程序访问操作某种对象的通行证。权限在应用层面要求有明确定义,应用权限使得系统可以规范各类应用程序的行为准则,实现对用户隐私的保护。当应用访问操作目标对象时,目标对象会对应用进行权限检查。如果没有对应权限,则访问操作将被拒绝。
当前,ATM提供的应用权限校验功能基于统一管理的TokenID(Token Identity)。TokenID是每个应用的身份标识,ATM通过应用的TokenID来管理应用的权限。
用户认证模块提供用户认证能力。对应用开发者而言,可使用该模块进行用户身份认证,用于设备解锁、支付、应用登录等身份认证场景。
当前,用户认证提供人脸识别和指纹识别能力。设备具备哪种识别能力,取决于设备的硬件能力和技术实现。
① 人脸识别:基于人的脸部特征信息进行身份识别的一种生物特征识别技术,用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别,通常也叫作人像识别、面部识别、人脸认证。
② 指纹识别:基于人的指尖皮肤纹路进行身份识别的一种生物特征识别技术。当用户触摸指纹采集器件时,器件感知并获取用户的指纹图像,将之传输到指纹识别模块进行一定的处理后与用户预先注册的指纹信息进行比对,从而识别出用户身份。
人脸或指纹识别过程中,特征采集器件和可信执行环境(Trusted Execution Environment,TEE)之间会建立安全通道,将采集的生物特征信息直接通过安全通道传递到TEE中,从而避免恶意软件从富执行环境(Rich Execution Environment,REE)进行攻击。对传输到TEE中的生物特征数据,从活体检测、特征提取、特征存储、特征比对到特征销毁等处理都完全在TEE中完成,基于安全存储区进行安全隔离,提供API的服务框架只负责管理认证请求和处理认证结果等数据,不涉及生物特征数据本身。
用户注册的生物特征数据在TEE的安全存储区进行存储,采用高强度的密码算法进行加密和完整性保护,外部无法获取加密生物特征数据的密钥,用户生物特征数据的安全得到保证。本能力采集和存储的生物特征数据不会在用户未授权的情况下被传出TEE。这意味着,用户未授权时,无论是系统应用还是第三方应用都无法获得人脸和指纹等特征数据,也无法将这些特征数据传送或备份到任何外部存储介质。
本章首先分析了全球智能终端的发展及我国移动操作系统的机遇与挑战,引出 OpenHarmony的问世;接着描述了OpenHarmony的技术架构,包括内核层、系统服务层、框架层和应用层等;然后描述了OpenHarmony的三大特性及实现这些特性的底层关键支撑技术。此外,OpenHarmony设置了严格的安全机制,以保障硬件和数据的安全。
通过对本章的学习,读者能够了解OpenHarmony的技术架构和主要特性,理解系统实现分布式能力的核心技术。
1.(单选题)OpenHarmony分布式数据管理技术能够让开发者轻松实现全场景、多设备下的数据存储、共享和访问。( )
A.正确
B.错误
2.(多选题)OpenHarmony根据( )实现弹性部署。
A.硬件价格
B.硬件形态和需求
C.硬件资源情况和功能需求
D.编译链关系
3.(单选题)驱动子系统位于OpenHarmony的( )。
A.内核层
B.系统服务层
C.框架层
D.应用层