书名:鸿蒙第三方组件库应用开发实战
ISBN:978-7-115-57595-1
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 武延军 郑森文 朱伟 吴敬征
责任编辑 傅道坤
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书通过多个精选的开源组件库,全面详尽地讲解了如何在鸿蒙操作系统下使用这些组件库实现快捷的应用开发。同时,本书详细剖析了鸿蒙操作系统组件库的实现原理,并通过一个综合应用实战帮助读者学习更加深入的应用开发知识和技巧。
本书共 7 章,主要内容包括鸿蒙操作系统的简单介绍,第三方组件库的背景和鸿蒙第三方组件的相关特性,基于第三方组件的鸿蒙应用开发流程,经典的UI组件、视频相关组件、实用工具组件的使用方法和实现原理,以及如何使用多个第三方组件来快速构建视频播放平台。
本书通俗易懂,循序渐进,包含详细的代码讲解和丰富的应用实战,可读性和操作性较强,是鸿蒙应用开发入门的不二之选。本书主要面向具备基本编程知识的读者,也可以作为高校教材或培训机构的参考用书。
武延军,博士生导师,中国科学院软件研究所副总工程师,中国科学院软件研究所智能软件研究中心主任,操作系统领域学科方向带头人,研究所重点培育方向负责人,军委科技委员会重点项目专家,军委装备发展部载人航天工程软件专家。“十三五”期间,牵头组建全新的创新单元——智能软件研究中心并担任首任中心主任,该研究中心当前已形成包含3名正高、8名副高在内的共70多人的科研团队。
郑森文,中国科学院软件研究所智能软件研究中心开源基础设施组负责人,OpenHarmony工作委员会成员代表,华为认证HDE(HUAWEI Developer Expert),开放原子教育认证讲师。主要研究方向为人机交互和人工智能,发表相关论文和专利共十余项,获得多项软件著作权并参与了多项国家课题项目,当前主要专注于开源软件供应链的相关研究和实践。
朱伟,哈尔滨工程大学硕士,开放原子教育认证讲师,HarmonyOS社区“社区明星”,华为KOL(Key Opinion Leader),现就职于中国科学院软件研究所智能软件研究中心。国内首批鸿蒙应用开发人员,具有丰富的移动端应用开发经验。曾参与多项国家科技重点研发计划课题项目,发表多篇相关论文、专利,并获得多项软件著作权。主要研究方向为开源软件供应链。
吴敬征,博士研究生导师,中国科学院软件研究所研究员,中国科学院软件研究所杰出青年科技人才。主要研究方向为开源软件供应链、人工智能安全及漏洞挖掘。在国内外期刊和会议发表学术论文60余篇,申请国家专利20余项,获得软件著作权20余项,主持国家自然科学基金、国家科技重点研发计划课题等10余项研究项目。
在本书的撰写过程中,有非常多的人为我们提供了帮助,在此向诸位表示真挚的感谢。
首先,感谢中国科学院软件研究所智能软件研究中心的罗天悦、杨牧天老师为本书提供的大力支持。
其次,感谢组内的小伙伴张馨心、李珂、蔡志杰,为本书的撰写以及配套资源的筹备提供了大量支持,还要感谢刘磊、赵柏屹、吴圣垚、陈丛笑、吕泽、戴研、熊轶翔、蒋筱斌、陈美汝、黎天宁、刘雨琦、马卞、胡鹏达等同学,为了保证本书内容以及代码的正确性,做了大量的稿件审读工作和代码测试验证工作。
最后,感谢人民邮电出版社的傅道坤编辑,在写作和出版过程中为我们提供的帮助。
感谢大家!
鸿蒙操作系统(HarmonyOS)自2019年8月9日在华为的开发者大会上正式发布以来,就引起了广泛的关注,作为一款面向未来、面向全场景的分布式操作系统,被寄予了很大的期望。2020年9月,华为在开发者大会上发布了HarmonyOS 2.0,推出了应用开发者Beta版本,并在同年12月推出了手机开发者Beta版本。2021年6月2日,华为正式发布可以覆盖手机等移动终端的HarmonyOS 2.0,普通用户也可以升级该系统进行体验。面向市场的鸿蒙操作系统由此诞生。
作为最早一批鸿蒙应用开发人员,我们在2020年6月就投身于鸿蒙的相关工作,并且参与了包括2020年9月10日华为开发者大会上最早展示的鸿蒙Demo应用的相关开发工作。针对鸿蒙的应用生态,我们将Android平台上二十余款非常受欢迎的组件移植到了鸿蒙平台供广大开发者使用,相关的源码开源到Gitee上(链接为https://gitee.com/isrc_ohos),并在多个社区平台上分析讲解源码。我们将鸿蒙第三方组件的应用开发知识进行梳理,希望为广大开发者提供一套系统且全面的讲解鸿蒙第三方组件的图书。除此之外,我们还对鸿蒙应用开发的基础知识进行总结,写作了《鸿蒙操作系统应用开发实践》一书,那本书更适合初学者入门鸿蒙应用开发。
鸿蒙操作系统本身在不断完善,开源代码也在不断更新,可能会出现书中代码与开源代码不符的情况,请读者持续关注Gitee最新信息并获取最新代码。
本书针对HarmonyOS SDK 5(Java 2.1.0.5版本),梳理和介绍如何在鸿蒙操作系统下使用第三方组件库实现快捷的应用开发。为了让读者可以实践所学的内容,本书通过多个鸿蒙第三方组件快速开发出了一款基础功能齐全的视频播放平台供读者练习。本书分为7章,各章的主要内容如下。
● 第1章,“鸿蒙操作系统简介”:介绍移动端操作系统的现状,指出我国操作系统在发展过程中遇到的瓶颈。同时梳理鸿蒙操作系统的诞生历程,介绍鸿蒙操作系统的架构与特性。
● 第2章,“第三方组件简介”:介绍第三方组件的背景、起源及目前的使用情况,总结和梳理第三方组件带来的便捷性。然后介绍鸿蒙操作系统下的组件库特点和内容,指出鸿蒙操作系统作为面向未来的下一代操作系统,构建生态的重要性。
● 第3章,“基于第三方组件的鸿蒙应用开发”:讲解如何基于DevEco Studio快速搭建鸿蒙操作系统的开发环境,并正确导入第三方组件,从而快速上手鸿蒙应用开发。
● 第4章,“UI组件”:讲解几个常用的经典UI开源组件的使用方法,并进一步介绍组件功能在鸿蒙操作系统中的实现原理。
● 第5章,“视频相关组件”:讲解几个常用的经典视频相关开源组件的使用方法,并进一步介绍组件功能在鸿蒙操作系统中的实现原理。
● 第6章,“实用工具组件”:讲解几个常用的经典实用工具开源组件的使用方法,并进一步介绍组件功能在鸿蒙操作系统中的实现原理。
● 第7章,“综合应用实战——视频播放平台”:以快速使用第三方组件为目标,综合性地指导读者如何通过“拿来主义”使用多个第三方组件来快速构建视频播放平台。
本书不仅讲解鸿蒙开源第三方组件的使用方法和实现原理,还简要地概括开源第三方组件的移植方法,适合具备基本编程知识的读者使用,让读者在学习如何构建更加复杂和高级的应用功能的同时,提升组件移植的能力。阅读本书并不需要遵循一定的顺序,读者可按照需要选取对应的章节进行阅读。
本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。
本书提供如下资源:
● 本书源代码;
● 书中彩图文件。
要获得以上配套资源,请在异步社区本书页面中单击“配套资源”,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。
如果您是教师,希望获得教学配套资源,请在社区本书页面中直接联系本书的责任编辑。
作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。
当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
扫描下方二维码,您将会在异步社区微信服务号中看到本书信息及相关的服务提示。
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。
如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。
“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。
“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。
异步社区
微信服务号
随着科技的发展,人们越发追求便捷、高效的生活,移动端操作系统得以迅猛地发展。从图 1-1 中可以看出,目前发展比较好的移动端操作系统是 Android 和 iOS,其中Android占据了将近八成的市场份额,其他移动端操作系统仅占有极小部分。
图1-1 移动端操作系统分布情况
Android 作为使用率比较高的开源操作系统,拥有完善的 SDK、文档和辅助开发工具。正因为此特性,任何人如个人开发者或生产厂商,都可以获得代码并随意修改,按需实现一些特别的功能。Android 的可定制性较强,开发者可以自行选择将定制后的新代码开源或闭源,这样可以最大程度地保护开发者的利益并降低开发成本。
然而,Android在维护开发者和生态上表现相对较差,且尽管目前谷歌对外声称Android是开源的,但其实是主体开源,即最终的消费设备中会包含多个闭源的软件组件。如图 1-2所示,Android操作系统主要包含两大部分,即AOSP项目(Android开放源代码项目)和GMS服务(谷歌移动服务),其真正完全开源的部分是AOSP项目,而GMS服务是闭源的。这可以理解为开发者只能通过调用GMS服务中的API来使用其功能,但不能修改核心代码实现个性化定制。并且,Android正在将更多的项目从AOSP转为GMS,将更多的已开源项目转为仅能被使用的服务。
图1-2 Android OS示意图
另一个使用率较高的移动端操作系统是iOS,其向开发者提供了一个相对比较封闭的、有规则的生态环境,iOS 的所有软件都需要经过严格的审查;并且,iOS 能够控制产品本身和产品的运行,实现质量保证和用户体验的统一。但iOS是一款闭源的操作系统,核心的功能都由苹果公司内部完成,开发者不能像开发Android软件一样修改代码完成个性化操作,只能调用接口使用其功能。
可见Android和iOS这两大移动端操作系统各有利弊,它们相互竞争、促进发展,这点从图1-3所示的iOS与Android版本发布情况图也可以得到印证,一直以来两大操作系统争相发布新版本。因此,Android和iOS长期在操作系统市场中处于领先位置。
图1-3 iOS与Android版本发布情况
我们将目光转向国产操作系统,目前国产操作系统在发展过程中,遇到了以下两个瓶颈。
● 目前处理器和操作系统的格局早已稳定,对于创新的需求不再那么迫切,各方面投入这部分的资源正在逐步减少,这导致操作系统体系已经很多年没有重大变革。
● 中国面临“缺芯少魂”(芯即芯片,魂即操作系统)的情况。美国作为世界第一大经济体,在科技领域长期占据主导地位。近年来中国在5G通信、芯片技术和操作系统等领域的发展受到了极大的阻碍。
为了解决上述问题,近几十年来我国科技企业不断自主研发属于中国人自己的操作系统,并积极探寻操作系统相关领域的突破。从操作系统的发展历程来看,下一代操作系统有以下4个重点问题值得我们思考。
● 商业价值
为了区别于目前已有的操作系统,下一代操作系统需要提供新场景、新应用及新体验来实现其商业价值。开源可以为操作系统的发展提供强劲的生态支持,下一代操作系统可通过开源实现生态系统构建,但开源并不意味着公开所有成果,企业应保留部分算法作为核心竞争力。
● 权益保护
在产品技术研发时,应为开发者提供合规性庇护,并将各公司联合起来,形成全面的知识产权保障联盟,构建知识产权壁垒。
● 交互模式
从最早只有通话交互的第一代无屏模拟手机,到第二代实体按键交互模式的手机,再到如今触控交互的智能手机,可见每一代操作系统的诞生,必然伴随着新交互模式的出现。所以,下一代操作系统应当能够产生新的交互模式,以解决人们更深层次的需求。
● 生态构建
从图1-4可以看出,发展下一代操作系统遇到的最大的问题是生态建设问题,生态建设可以为操作系统带来更多的关注者、开发者和使用者,所以,构建全面、完善的生态(包括应用生态和软件生态)是发展下一代操作系统的重中之重。
图1-4 2019年中国企业关于自研操作系统发展主要挑战意见调查
当前的移动互联网创新,仍然局限于手机为主的单一设备,单设备的操作体验已经不能完全满足人们在不同场景下的需求,而鸿蒙操作系统(HarmonyOS)正是为万物互联而生。鸿蒙操作系统是一款“面向未来”的操作系统,一款面向全场景的分布式操作系统。本节将帮助读者梳理鸿蒙操作系统的诞生历史,并从架构和特性的角度讲解鸿蒙操作系统。
早在2012年,华为总裁任正非表示,“华为做终端操作系统是出于战略考虑”,就此提出了鸿蒙操作系统的概念,并开始着手准备,计划将其变为现实,但这个阶段实际上只是发布了一些设计理念和构想。2016年5月,“鸿蒙”正式在软件部内部立项并开始投入研发。2019年8月,华为在开发者大会上正式发布HarmonyOS 1.0,此版本已经可以支持智慧屏等IoT设备。
最终在2020年9月,华为发布了HarmonyOS 2.0版本,此版本重点升级了分布式能力,我们迎来了真正意义上的鸿蒙操作系统。此版本包括SDK、文档、工具和模拟器,可用于大屏、手表和车机。与此同时,华为还面向应用开发者发布了Beta测试版。同年12月,华为发布了HarmonyOS 2.0手机开发者Beta测试版。2021年6月2日,OpenHarmonyOS 2.0 全量开源发布。
鸿蒙操作系统包括 3 个部分:OpenHarmonyOS、闭源应用和华为移动服务(HMS)、其他开放源代码项目,如图 1-5所示。
可以看出,OpenHarmonyOS(OHOS)实际上是鸿蒙操作系统的真正开源部分。OpenHarmonyOS提供了一个组件化的操作系统,通过组合组件可以满足不同硬件设备功能的需要,并且针对设备场景做了一些组件优化;设备开发者可以根据自己的需求组合组件,从而让系统满足和适配硬件的需求。进一步地,为了方便消费者理解OpenHarmonyOS的广泛使用场景,华为在宣传上常常将OpenHarmonyOS进行L0~L5的划分,但这并不意味着OpenHarmonyOS提供了5个操作系统供大家选取,而是告诉大家OpenHarmonyOS可以通过组件化的方式很好地适配这5种不同类型的经典硬件场景。
图1-5 鸿蒙操作系统示意图
鸿蒙操作系统创造性地提出了基于同一套系统能力、适配多种终端形态的分布式理念,主打“1+8+N”的全场景体验。它将多个物理上相互分离的设备融合成一个“超级虚拟终端”,通过按需调用和融合不同软硬件的能力,实现不同终端设备之间的极速连接、硬件互助和资源共享,为用户在移动办公、社交通信、媒体娱乐、运动健康、智能家居等多种场景下,匹配最合适的设备,提供最佳的智慧体验。
由于目前已经发布的HarmonyOS 2.0是华为基于OpenHarmonyOS开发的商用发行版,因此鸿蒙操作系统的关键核心是OpenHarmonyOS,正如AOSP对于Android一样。所以接下来将和大家讨论的鸿蒙操作系统的架构和特性也是OpenHarmonyOS的架构与特性。
如图1-6所示的是鸿蒙操作系统架构。鸿蒙操作系统整体遵从分层设计,从下向上依次为内核层、系统服务层、框架层和应用层。
图1-6 鸿蒙操作系统架构
其中,内核层通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等;系统服务层是鸿蒙操作系统的核心能力集合,通过框架层对应用程序提供服务;框架层为鸿蒙操作系统的应用程序提供了Java、C、C++、JavaScript等多语言的用户程序框架和Ability框架,以及各种软硬件服务对外开放的多语言框架API;应用层包括系统应用和第三方应用。
在了解了鸿蒙操作系统的整体架构之后,接下来看一下鸿蒙操作系统的几个显著特性及它们的优势。
● 分布式软总线:提供统一的分布式通信能力,实现快速发现并连接设备和高效地传输任务和数据。
● 分布式数据管理:让数据在应用跨设备运行时无缝衔接,让跨设备数据处理如同本地一样便捷。
● 分布式任务调度:能够选择最合适的设备运行分布式任务,并实现多设备间的能力互助。
● 分布式设备虚拟化:能够匹配并选择能力最佳的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。
● 一次开发,多端部署:使用统一的IDE进行多设备的应用开发,通过模块化耦合对应不同设备间的弹性部署。
● 统一 OS,弹性部署:为各种硬件开发提供全栈的软件解决方案,并保持上层接口和分布式能力的统一。
鸿蒙操作系统作为一款前景广阔的下一代操作系统,虽然具备多样的特性以及强大的分布式能力,但是依旧需要应用生态强有力的支撑才能茁壮成长。基于这样的生态构建需求,我们的团队做了大量基于鸿蒙操作系统的开源组件库的相关工作,涵盖了组件库的使用和开发指南等。这些工作可以让开发者快速上手原生的鸿蒙应用开发,为他们提供良好的应用开发生态环境助力他们开发应用。值得说明的是,开发这些组件库使用的基本都是 OpenHarmonyOS 提供的接口,所以这些组件库不仅适用于现在的鸿蒙操作系统,未来也能适用于任何基于OpenHarmonyOS的操作系统。