杜甫诗云:“读书破万卷,下笔如有神”。开发者多读书、读好书,能打好基础、掌握实践、答疑解惑、拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。
2020年9月华为正式发布了鸿蒙操作系统(HarmonyOS)。在Android和iOS的双重夹击下,HarmonyOS刚一出生就危如累卵。
Android与iOS是老牌的移动操作系统,几乎同时诞生,已经有十多年的发展历程,各自都积累了数千万的开发者,以及成千上万的公司围绕着Android和iOS开展自己的业务。这一切构建了坚不可摧的“生态球”。
HarmonyOS选择在这时推出,很多人担心,这个新生儿能否冲出重围,建立自己的“生态球”?
HarmonyOS与Android和iOS一样,是独立的操作系统,支持多种硬件设备,包括智能手机、平板电脑、个人计算机、电视机、智能手表、车载电脑等。
但与Android和iOS不同的是,华为赋予HarmonyOS更高的使命,HarmonyOS的侧重点是物联网,手机只是HarmonyOS构建“生态球”的重要一环,它的征程还在万物互联。
HarmonyOS通过万物互联,让我们的手机、平板电脑、电视机等一切安装HarmonyOS的设备形成无数个超级终端,让这些设备拥有无限的潜能,从而让我们离未来的超信息化时代更近了一步!让“智能星球”触手可及!
我们都清楚,在万物互联的时代,孤立的设备是没有价值的,面向未来的IoT操作系统一定要可以弹性部署到大大小小的设备上,让这些设备像人一样用同样的语言交流,让设备的连接变得非常容易。
而且,仅仅连接这些设备还不够,由于不同类型设备之间的能力差异是千差万别的,这个系统还要能够有机融合这些能力,这就需要让系统将这些设备看成同一个设备,即虚拟设备。
HarmonyOS的技术定位就是这样一款面向未来、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。
如今,根据HarmonyOS的市场定位,HarmonyOS可以运行在各种各样的设备上。例如,我们最常用的智能手机、平板电脑、个人计算机等,以及打印机、投影仪等各类物联网设备上,这就是HarmonyOS的“1 + 8 + N”战略(N 指泛 IoT 设备,如打印机、投影仪、门铃、电冰箱、智能手环,甚至是茶杯、闹钟、床等)。
HarmonyOS的最终目标是,将一切有计算能力和存储能力的设备连接起来,然后再将 AI 技术融合进来。
因此,如果将全世界数以百亿计的 IoT 设备连接起来,并能有效地利用这些 IoT 设备的各种能力,让这些 IoT 设备高效互相协作,也许智能城市、智能社会、甚至智能星球,也不是很难实现的目标了。
而对开发者而言,他们眼前是HarmonyOS生态的一片蓝海,如何快速入门、理解并基于HarmonyOS开发出优秀的 App 等产品,绝对是一个非常具有诱惑力和吸引力的研究方向和“淘金”机会。
对每个程序员来说,“Hello World”几乎被认为是每种程序设计语言的第一个例子,是最为人熟知的计算机程序。
如何基于HarmonyOS系统开发出一个可运行的“Hello World”程序,是我们学习并理解HarmonyOS开发环境和技术架构的有效方式之一。反过来看,对开发人员来说,深入了解HarmonyOS的开发环境和系统架构,非常有必要。
HarmonyOS在系统架构上与 Android 类似,采用了分层设计方案,从下向上依次为内核层、系统服务层、框架层和应用层。系统功能按照“系统、子系统、功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
对 App 开发者而言,HarmonyOS采用了多种分布式技术,使应用程序的开发实现与不同终端设备的形态差异无关,这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。
同时,HarmonyOS也拥有自己的集成开发环境(IDE)— DevEco Studio,目前有 Windows 版本和 macOS 版本。由于 DevEco Studio 是基于 IntelliJ IDEA 社区版二次开发的,使用方式与 IntelliJ IDEA 非常类似,因此可以帮助尽可能多的开发人员快速上手。
了解了这么多,又如何写出并成功运行一个“Hello World”程序?在《鸿蒙征途:App开发实战》一书中,首批HarmonyOS系统课程开发者、华为开发者专家(HDE)李宁在模拟器环境下做了详细的实操,包括创建工程、调用模版、配置工程和运行工程等。
如果只是运行一个“Hello World”程序,并不能体现HarmonyOS系统的强大之处。《鸿蒙征途:App开发实战》一书中,作者仅仅用了 5 分钟就成功开发出了一个我们耳熟能详的游戏——俄罗斯方块。是的,你没看错,只用了 5 分钟。
但是,如果从头开始做游戏肯定是不行的,如果把“俄罗斯方块”这个游戏作为一个组件(Tetris 组件)放在窗口中,然后再稍微加工,就可以实现一个相对复杂的俄罗斯方块游戏,整个调用组件的核心代码只不过十几行。
一款游戏的本质就是一个可以与用户交互的绘图程序。不同游戏的区别在于绘图的复杂程度不同。通常,一款功能完善的俄罗斯方块游戏由游戏背景、随机产生的方块(block)、控制方块旋转和平移的按钮(或用其他方式控制)、显示下一个方块、游戏积分机制、让方块快速下落等部分组成。
通过为不同组件赋予不同的功能,并将不同组件整合到一起,就能高效实现俄罗斯方块游戏的开发。比如,在 Tetris 组件中会根据不同的状态触发以下 3 个事件。
产生下一个方块事件:用于显示下一个方块;
消除行事件:用于处理积分;
游戏结束事件:用于提示游戏结束。
如果只是将 Tetris 组件放到窗口中,只能保证程序可以运行,而且功能也比较单一,只支持方块向下移动和旋转(单击游戏窗口)。
为了让游戏更完美,《鸿蒙征途:App开发实战》还详细阐述了如何利用一些组件来控制游戏。比如通过调用 start 方法开始游戏,以及如何显示下一个方块、控制方块左右水平移动、加快方块下落速度、更新积分、结束游戏等。
当前,通过组件开发俄罗斯方块游戏的这种方式,符合目前大多数游戏开发团队的需求。
比如,将一些核心的功能提炼出来,做成组件,单独调试组件,然后再进行集成和联调,可以在最大限度上避免开发过程中开发人员之间的冲突。
同时,核心功能以组件的形式提供,还可以复用,大幅提高开发效率。
如何快速理解HarmonyOS核心技术并开发出更多优秀 App?李宁老师撰写的这本《鸿蒙征途:App开发实战》可以给你更多解答。
本书作者李宁是首批HarmonyOS系统课程开发者,某大型软件公司前高级技术专家,IT 畅销书作者,企业 IT 内训讲师,腾讯课堂特约讲师,CSDN 学院高级讲师。曾出版多本IT畅销书,写过数百篇技术文章。主要著作包括《Kotlin程序开发入门精要》《Swift 权威指南》《Android开发权威指南》《Android深度探索》等。
该书系统讲解了HarmonyOS核心技术和分布式特性,以理论与实战相结合的方式向读者呈现HarmonyOS App开发的整个过程,具有丰富的案例及实战项目,并提供了所有案例和实战项目源代码及配套视频。
而且,该书内容通俗易懂,循序渐进,既是HarmonyOS初学者的入门图书,也是HarmonyOS开发人员的进阶读物,是一本基于 Java 编程技术零基础从入门到实践全场景开发指南。
内容上,全书共分为两个部分。第一部分详细讲解HarmonyOS App 开发所需的知识,并提供大量的真实案例代码供读者练习;第二部分给出两个实战项目,分别为应用类 App 项目(在线电子词典)和游戏类 App 项目(俄罗斯方块)。这两个项目实战,可以帮助我们更好地回顾和总结全书讲解的知识点,将理论快速转化为实践。
HarmonyOS开源教练、开放原子项目导师刘果对该书给出了很高的评价。“本书详细介绍了从搭建HarmonyOS应用开发环境,到创建、分析、调试及运行HarmonyOS应用的全过程。通过本书,开发人员能更好地了解HarmonyOS操作系统一次开发、多端部署的跨设备特点。对HarmonyOS应用开发入门者来说,这是一本不可多得的好书。”
华为云 MVP 朱有鹏也评价道,“李宁老师基于多年的研究和教学经验,深度参与了HarmonyOS官方组织的内部评测,投入了大量精力体验HarmonyOS应用开发框架和API,并且实现了不少有趣的案例,本书是李宁老师HarmonyOS应用开发经验的凝结。仔细阅读本书,读者可以更快速、更高效、更深入地理解HarmonyOS,掌握HarmonyOS应用开发技能。”
可以说,这确实是一本既适用于HarmonyOS初学者,也适用于HarmonyOS开发人员的全场景开发指南。
还在等什么?HarmonyOS生态正等你来搭建~
(声明:本文转载自人民邮电出版社IT专业图书旗舰品牌“异步图书”微信公众号。)