HarmonyOSApp开发从0到1

HarmonyOSApp开发从0到1"

作者:张诏添、李凯杰
ISBN:9787302602842
定价:¥89
字数:千字
页数:
出版时间:2022.07.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书系统阐述了HarmonyOS开发基础知识。

全书共分为8章:第1章为HarmonyOS的概述,第2、第3章为HarmonyOS的开发准备和基础知识,第4、第5章为HarmonyOS开发的完整案例,第6-8章为HarmonyOS的进阶开发。书中主要内容包括:HarmonyOS技术特性、Page Ability、生命周期、UI框架、真机调试与运行、分布式调度、分布式迁移与回迁、轻量级偏好数据库、分布式数据库。

书中包含大量的应用市例,不仅可以学会理论知识还可以灵活运用。书中通过多个完整的案例详细阐述了如何在HarmonyOS操作系统上开发App,内容完整、步骤清晰。

本书可作为HarmonyOS开发初学者的入门书籍,也可作为从事HarmonyOS开发的技术人员及培训机构的参考书籍。

前言

致读者

作为全国第1个校园HarmonyOS自学组织的成立者,笔者组织了两轮“木棉花”成员自学HarmonyOS,其中第一届成员一共有26人,第二届成员一共有9人,成员绝大部分为大一、大二的同学,其中不乏目前拥有较高成就的成员,但这两届成员中一共有24人退出了,退出的原因也不完全一样。

经过与这些退出成员以及想要学习HarmonyOS应用开发的50位同学交谈发现,退出的原因或者阻碍他们想要学习HarmonyOS应用开发的原因总结起来主要为8个。快来看一看你是不是也有这些焦虑:

1. 大部分学习者会感觉时间压力大

时间问题其实是两个问题,一个是本身的价值,另外一个是玩法。本身的价值说到底就是学习HarmonyOS这个全新的操作系统能给你带来什么。如果说学习完HarmonyOS后给你100万元,你会不会选择学呢?答案是不言而喻的,所以说,要回答这个问题就是要思考其所给你带来的价值,能为你带来一份好工作、能为你提供项目经历就能在简历上添上有价值的一笔、能为你带来直接的效益等,这些都是因人而异的。关于工作,目前已经有上百家企业在招聘HarmonyOS开发工程师了。关于项目比赛,华为公司举办的HarmonyOS开发者创新大赛、各平台的征文比赛等都很值得去参加。

关于玩法,就是丰富学习HarmonyOS的路径,就如笔者一样,在51CTO创建了专栏,分享了学习成果,与其他开发者交流,参与直播分享,参与开源项目AwesomeHarmonyOS_木棉花等。这些玩法都是大家可以参与的,归根到底就是学习→开源→再学习→再开源,虽然只是多了开源这一步,但能学到的东西还是很多的。

2.  纠结编程语言

相信大家都听说过一句话,程序=数据结构+算法,这个公式并没有编程语言这一项。其实也是对的,编程语言只是一种工具,语言与语言之间具有一定的相通性,详情可以参看5.17节JavaScript与Java的对比,在这一节笔者列举了用不同编程语言开发同样项目的对比。各位学习者不需要过于纠结编程语言,你需要什么语言,就去学习什么语言。要牢牢记住,编程语言只是一个工具,哪个用着趁手就用哪个。

3.  疑惑所掌握语言的用处

上述就提到了编程语言之间具有一定的相通性,C语言也不例外。C语言中的变量、循环及函数等知识都能为学习HarmonyOS提供较大的帮助,并不存在没有用这一说法。更何况,程序多为MVC模式,即模型(Model)视图(View)控制器(Controller),在不同语言的程序中,MVC都采用同样的模式。

4. Android与HarmonyOS

关于这一点的疑惑并不是没有道理的,都觉得学习HarmonyOS有一种赌博的成分存在,但这种赌博并不是没有依据的,目前HarmonyOS硬件的合作伙伴约有1000家,应用合作伙伴约有300家,开源共建单位有58家,社区代码贡献者约有580名,HarmonyOS注册开发者约有128万人,OpenHarmony下载次数约为21万次,HarmonyOS产品有58个,这一数据无不说明HarmonyOS发展的前景十分广阔。更何况,正因为HarmonyOS是一个刚起步的操作系统,更少人涉足的道路,也更容易留下自己的足迹,也更容易创造出自己的舞台。

5.  上手难

查阅资料时发现有很多知识不懂,这是学习的一个难点。笔者作为成功自学HarmonyOS的过来人,为大家分享这一经过多人实践过的学习路径,能够为大家更好地迈入学习HarmonyOS的门槛。

6.  基础差

HarmonyOS刚开始时确实缺少系统性的资料学习,但截至目前,HarmonyOS的学习资料已经较为完善了,学习的环境十分好。笔者也总结出一条适合各层次的读者自学HarmonyOS的路径,除此之外,AwesomeHarmonyOS_木棉花是一个关于HarmonyOS资料的开源项目,里面有较为齐全的资料,网址为https://gitee.com/hiharmonica/awesomeharmonyoskapok。

7.  无从下手

经过个人的自学和组织两届成员自学HarmonyOS,笔者摸索出了一条适合各个层次的读者学习HarmonyOS的路径。做到清楚了解首先要学习什么及为什么应先学这个,也明白了学习完这一步后下一步又应该学习什么,做到心中有数,学习不乱,对于每步学习的内容都有项目配套学习并检测知识掌握程度。

8.  与本专业的重合度不高

这些问题的答案自然是否定的。HarmonyOS是每个人的HarmonyOS,适合每个人去学习。说到专业,笔者是数学专业,这与计算机、与HarmonyOS也基本毫不相关,但笔者也照样能够学习HarmonyOS,学习程度也非常不错呢!在笔者看来,学习HarmonyOS与专业并不直接挂钩,它只需两个品质: 始于足下和持之以恒。

作为大二的学生能走到51CTO社区明星、基金会优秀开发者、华为校园大使、华为公司HDE官方认证的位置是不容易的,作为过来人在这个过程中会遇到很多障碍,例如时间管理障碍、学习迷茫障碍和寻求学习帮助障碍等,不仅是技术门槛,最大的问题在于上述这些任何学习途径都会遇到的障碍。

(1) 时间管理障碍包括正常的学业冲突、正常的工作冲突和合理的娱乐时间冲突等。老话说的是“只要愿挤时间总会有的”,笔者想说的是“兴趣和目标是挤时间的最好老师”。正常的学业或工作时间不能删减,但娱乐时间是可以不定期地适当删减的,以游戏类的项目为初始学习的起点,不仅能在学中玩,激起更大的学习积极性,而且玩自己成功开发出来的游戏更有一种喜悦之情。

(2) 学习迷茫障碍具体指在学习的不同阶段都会感到的迷茫,这本书的章节是按照笔者自身作为一名读者学习HarmonyOS的路径安排的,跟着这本书去学习,便可较好地度过每个阶段的迷茫时期。当你处于迷茫阶段时,有一个公式很适用; 进阶之路=(学习+实践项目+总结+敢于走在前列)×不断重复。

(3) 寻求学习帮助障碍是指在学习中遇到问题却不知道该去哪里寻求帮助,在这本书中详细地讲述了避坑点。对于遇到的其他问题,除了与笔者交流之外,还可以在51CTO平台、深鸿会组织等地方与其他开发者一起交流学习。关于这点,最后想说的是一个公式: 克服困难=51CTO社区+官网+深鸿会+自己。

本书读者对象

本书面向想学习HarmonyOS App开发的学习者。本书对编写的每行代码进行讲解,即使读者没有相应的编程经验,也能在本书的一步步指导下完成书中整个项目的编写,从而实现项目的所有功能并将项目运行起来。

关于本书

第1章介绍HarmonyOS。解释这个全新操作系统的定位、技术架构的4个层,以及其含有的独特技术特性,然后简要叙述系统安全的原理。

第2章详细介绍了搭建HarmonyOS应用开发的环境,然后通过编译和运行Hello World典型项目,指导读者使用预览器和模拟器运行代码。

第3章开始讨论HarmonyOS开发的基础知识。这一章涉及的知识有程序、配置文件、资源文件、其他文件、3个Ability、JS生命周期和Java UI框架。对于使用过程序设计语言的程序员来讲,学习这一章的内容将会感觉十分轻松,但对于其他读者来讲,仔细阅读这一章非常有必要。

第4章详细介绍了用编程语言JavaScript开发的运行在HarmonyOS智能手机上的“数字华容道”项目。整个项目采用任务向导的方式,每个任务完成项目中的一部分功能,每小节包括运行效果、实现思路、代码详细讲解3部分。在本章对编写的每行代码进行讲解,即便读者没有JavaScript开发的编程经验,也能在本章的指导下一步步完成整个项目代码的编写,从而实现项目的所有功能并将项目运行起来。

第5章详细介绍了用编程语言Java开发的运行在HarmonyOS智能手机上的“俄罗斯方块”项目。整个项目采用任务向导的方式,每个任务完成项目中的一部分功能,每小节包括运行效果、实现思路、代码详细讲解3部分。在本章对编写的每行代码进行讲解,即便读者没有Java开发的编程经验,也能在本章的指导下一步步完成整个项目代码的编写,从而实现项目的所有功能并将项目运行起来,然后,给出了用编程语言JavaScript开发的“俄罗斯方块”项目的代码,并对这两个用不同编程语言开发的同一个项目进行对比。

第6章讨论的是应用运行在真机上的步骤,并且介绍了HarmonyOS App上架发布的流程,读者可在这里了解将HarmonyOS项目上架到应用商店的步骤。

第7章详细讨论了分布式能力。在这里读者会了解到分布式任务调度、带数据传递的分布式任务调度、分布式迁移与回迁,对于每个分布式能力都配有相应的小项目,读者会清楚地了解其实现的原理。

第8章是本书的最后一章,将讨论数据管理服务。数据管理是应用开发中很重要的一门技术。在这一章会介绍轻量级偏好数据库和分布式数据库,通过这两个数据库,读者能实现本地数据和远程数据的存储。

因笔者能力有限,书中难免存在疏漏之处,恳请读者批评指正。

张诏添李凯杰2022年5月

本书源代码

目录

第1章初识鸿蒙: HarmonyOS介绍

1.1系统特征

1.21+8+N全场景终端设备

1.3技术架构

1.3.1内核层

1.3.2系统服务层

1.3.3框架层

1.3.4应用层

1.4硬件互助,资源共享

1.4.1分布式软总线

1.4.2分布式设备虚拟化

1.4.3分布式数据管理

1.4.4分布式任务调度

1.5一次开发,多端部署

1.6统一OS,弹性部署

1.7系统安全

1.7.1正确的人

1.7.2正确的设备

1.7.3正确地使用数据

1.8OpenHarmony

1.9小结

第2章万事开头难: 项目准备工作

2.1搭建开发环境

2.2Hello World

第3章万事俱备: 基础知识

3.1开发基础知识

3.1.1程序

3.1.2配置文件

3.1.3资源文件

3.1.4其他

3.2Page Ability

3.2.1Page的生命周期

3.2.2AbilitySlice的生命周期

3.2.3Page与AbilitySlice的生命周期关联

3.3Service Ability

3.4Data Ability

3.5JS生命周期

3.6Java UI框架

第4章小试牛刀: “数字华容道”游戏项目

4.1在主页面删除标题栏和添加项目标志

4.2在主页面中添加一个按钮并响应其单击事件

4.3添加副页面并实现其与主页面之间的相互跳转

4.4修改页面中按钮的文本和显示的文本

4.5添加简单游戏页面并实现副页面向其跳转

4.6在简单游戏页面的画布中绘制网格

4.7在简单游戏页面的画布中绘制数字

4.8在简单游戏页面中绘制随机生成的数字

4.9在简单游戏页面的画布中添加一个滑动事件

4.10在画布上响应滑动事件: 格子滑动

4.11在画布上显示文本: 游戏结束

4.12在画布上隐藏游戏结束的文本

4.13在游戏结束时显示隐藏的文本

4.14在游戏结束后不再响应滑动事件

4.15在游戏结束后网格的颜色变浅

4.16在简单游戏页面实现统计步数

4.17添加普通游戏页面并实现副页面向其跳转

4.18添加困难游戏页面并实现副页面向其跳转

4.19添加信息页面

第5章初出茅庐: “俄罗斯方块”游戏项目

5.1创建Hello World

5.2在主页面中删除标题栏和修改其背景颜色

5.3在主页面中添加两个按钮并响应其单击事件

5.4添加副页面并实现主页面向其跳转

5.5完善副页面的信息并实现其向主页面跳转

5.6验证应用和每个页面的生命周期事件

5.7在游戏页面绘制网格并实现从主页面向其跳转

5.8在游戏页面网格中随机生成方块

5.9在游戏页面实现方块的下落

5.10在游戏页面添加5个按钮并向主页面跳转

5.11在游戏页面实现方块向左移动

5.12在游戏页面实现方块向右移动

5.13在游戏页面实现方块形态的改变

5.14在游戏页面实现整行相同色彩方格的消除

5.15在游戏页面显示游戏结束的文本

5.16在游戏页面实现游戏重新开始功能

5.17JavaScript与Java的对比

第6章持续动力: 应用运行与发布

6.1使用本地真机运行应用

6.2应用发布

第7章初显风范: 分布式

7.1分布式任务调度

7.1.1获取设备的UDID

7.1.2实现分布式任务调度

7.1.3数据传递的分布式任务调度

7.2分布式迁移

7.2.1概念

7.2.2实现分布式迁移

7.2.3实现分布式回迁

第8章告别读者: 数据管理

8.1轻量级偏好数据库

8.1.1概念

8.1.2实现轻量级偏好数据库

8.2分布式数据库

8.2.1概念

8.2.2实现分布式数据库

作者简介

编辑推荐

本书面向想要学习鸿蒙App开发的初学者。以“数字华容道”和“俄罗斯方块”两个经典游戏案例贯穿其中,对编写的每行代码进行讲解,即使读者没有相应的编程经验,也能在本书的一步步指导下完成书中整个项目的编写,从而实现项目的所有功能并将项目运行起来。

作者寄语

张诏添,HarmonyOS App开发者,参与了Awesome-HarmonyOS和荔园HarmonyOS等开源项目。国内第1个校园 HarmonyOS自学组织——木棉花的创始人。先后荣获51CTO社区明星、2021年度电子发烧友论坛优秀开发者称号,获51CTO社区首批MVP认证。曾受邀在2021华为开发者大会校园公开课、OpenHarmony高校共建启航计划分享会及多个学术讲座报告会上发表演讲,参与51CTO社区直播主题分享会,接受OpenHarmony教育进高校主题视频采访。

李凯杰,HarmonyOS App开发者,参与了Awesome-HarmonyOS和荔园HarmonyOS等开源项目。曾受邀在OpenHarmony高校共建启航计划分享会和多个学术讲座报告上发表演讲。

电子资料

www.luweidong.cn

下一个