首页>参考读物>计算机科学与技术>软件与程序设计

HarmonyOS应用开发:快速入门与项目实战
作者 : 主编:夏德旺 谢 立副主编:樊 乐  赵小刚
丛书名 : 移动开发
出版日期 : 2021-11-12
ISBN : 978-7-111-69445-8
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 277
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书共9个章节,第1章为HarmonyOS简介,主要介绍HarmonyOS的发展历程、设计理念、整体架构、特性以及典型应用场景;第2章为HarmonyOS应用开发入门,是后面章节的基础和铺垫,主要介绍HarmonyOS开发环境准备和开发基础知识;第3章到第8章通过6个不同类型的项目案例,贯穿讲解鸿蒙应用开发的相关核心知识点,每个项目案例都先展示zui终UI效果图和核心知识点,让读者带着任务学习,激发读者兴趣,每个项目案例都有详细的开发步骤及核心代码讲解,实战性强,确保读者在认真学习完本书后,能够独立做HarmonyOS应用开发项目;第9章为HarmonyOS常用第三方组件介绍,主要介绍BGABadgeView、BottomNavigationBar、Glide、VideoCache和Updownfile组件的功能、使用以及开发步骤。

图书特色

系统讲解HarmonyOS应用开发核心知识,深入浅出基于Java和JavaScript两种语言的项目案例开发实战
面向移动应用设计开发和测试工程师、小程序开发人员、HarmonyOS开发人员的实战宝典。

图书前言

为什么要写这本书
2019年8月9日,华为在东莞举行华为开发者大会,正式发布鸿蒙操作系统(HarmonyOS)且发布了智慧屏;2020年9月10日,华为HarmonyOS升级至HarmonyOS 2.0版本;2021年4月22日,HarmonyOS应用开发在线体验网站上线。
HarmonyOS的问世打破了操作系统的垄断,拉开了永久性改变操作系统全球格局的序幕。我国的软件行业枝繁叶茂,但没有根,从HarmonyOS开始,我们将逐步构建中国基础软件的根。
HarmonyOS同时具备分布式任务调度和分布式数据管理能力,它不再是简单的移动操作系统,而是一个全新的打破了开发界限的全场景分布式操作系统。HarmonyOS可以搭载在手机、智慧屏、车机以及各类物联网设备上,同时可以做到有效协同,寄托了华为乃至整个业界对中国操作系统行业的希望。但生态构建并非一朝一夕的事情,因此让更多的开发者、生态链上下游的伙伴参与HarmonyOS生态圈的建设,为HarmonyOS注入新生力量是非常有必要的。本书通过项目案例实战的方式对HarmonyOS应用开发相关知识进行讲解,旨在让更多的人了解HarmonyOS应用开发并参与到HarmonyOS生态圈的建设中。
本书特色
本书内容基于HarmonyOS 2.0 Beta版。从技术层面上讲,HarmonyOS目前可以使用Java和JavaScript两种语言进行应用程序开发。使用Java语言时,其开发思路类似于Android应用的开发;而使用JavaScript语言时,其开发思路类似于微信小程序的开发,因此,许多Android和微信小程序的开发者能够迅速入门HarmonyOS应用程序开发。在本书中,我们分别用Java和JavaScript两种语言进行应用程序的案例开发演示。
本书定位为HarmonyOS应用程序开发的入门图书,以基础知识和实例相结合的方式系统地介绍了HarmonyOS应用程序开发的常用技术、相关经验和技巧等。相信通过对这些知识的学习,读者能够独立、完整地开发HarmonyOS应用程序。
读者对象
移动应用设计、开发、测试工程师
小程序开发人员
HarmonyOS开发人员
其他对HarmonyOS开发技术感兴趣的人员
如何阅读本书
本书共分为9章。
第1章从宏观的角度对HarmonyOS进行简要的介绍,包括HarmonyOS的发展历程、设计理念、整体架构、技术特性、应用场景等内容。
第2章详细介绍了HarmonyOS移动应用开发的入门知识,包括环境搭建等一些基础的环境准备工作、配置文件的使用等。
第3章通过一个计算器案例详细讲解HarmonyOS App开发技能。通过布局文件实现了一个复杂的UI页面,同时能够通过编写相应Java代码控制相关UI组件和实现相应的计算器逻辑。
第4章通过一个通讯录的案例,进一步学习了利用Java UI框架开发App的功能、线性布局和相对布局的混合使用、实现使用日志打印和Toast信息提示等功能。同时重点讲解了列表组件的使用、数据交互等内容。
第5章同样也是一个通讯录的案例,讲解了如何利用JavaScript UI框架开发App以及hml、css和js文件的编写,并且着重讲解了JavaScript开发的FA如何与Java开发的PA之间进行数据交互,以及如何通过fetch模块与服务端进行HTTP网络交互等内容。
第6章通过一个相册的案例,重点讲解了HarmonyOS权限控制的概念以及动态权限申请的使用流程,然后讲解了如何读取系统相册数据库中的数据并进行UI渲染。
第7章通过一个封装视频播放器的案例,完整地梳理了开发视频播放功能的相关流程和知识点,并讲解了视频播放相关API的使用,以及定时任务、子线程与UI线程通信、属性动画等知识点。
第8章讲解了如何在真机下进行应用调试,以及分布式任务调度开发的流程,同时讲解了如何在上一章播放器开发的基础上进一步开发分布式播放器,分布式播放器可以在多种搭载HarmonyOS的终端设备上进行流转。
第9章介绍了一些常用的HarmonyOS第三方组件,包括UI布局类、控件封装类、动画播放类、音视频处理类、开发框架类以及工具类等内容。
勘误和支持
由于作者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎通过邮箱dwxiad@isoftstone.com与我联系,期待得到你们的真挚反馈,让我们在技术之路上互勉共进。

上架指导

计算机\移动开发

封底文字

HarmonyOS为移动应用开发打开了一片新的领域,轻松构建分布式应用的特色让广大开发者跃跃欲试。本书由软通动力专家编著,是一本非常好的基于实战总结的HarmonyOS应用开发指导书,可以帮助开发者迅速掌握HarmonyOS应用开发技能,同时本书也体现了软通动力作为HarmonyOS生态链企业的深厚技术积累。

——李传钊 鸿蒙社区组织“深鸿会”发起人、华为开发者专家(HDE)、开放原子教育认证银牌讲师





这两年在百所高校及各大开发者社区推广HarmonyOS的过程中,很多开发者的第一个问题是:“HarmonyOS应用开发使用的是什么编程语言?”但从学习效果来看,从开发样例出发的学习效率是最高的,而不是从学习编程语言或单点技能开始。本书包含6个实战项目,图文并茂,其中每个项目在一开始就提炼出知识点,然后是详细的一步步操作指导,由浅入深地介绍了应用开发过程。推荐HarmonyOS应用开发初学者阅读!

——欧建深 华为HarmonyOS开源与开发者运营总监

图书目录


前言
第1章 HarmonyOS简介 ·················1
1.1 HarmonyOS的发展历程 ··················1
1.2 HarmonyOS的设计理念 ··················2
1.3 HarmonyOS的整体架构 ··················3
1.3.1 内核层 ··································3
1.3.2 系统服务层 ····························4
1.3.3 框架层 ··································4
1.3.4 应用层 ··································4
1.4 HarmonyOS的技术特性 ··················5
1.4.1 分布式软总线 ·························5
1.4.2 分布式设备虚拟化 ···················6
1.4.3 分布式数据管理 ······················6
1.4.4 分布式任务调度 ······················7
1.4.5 一次开发,多端部署 ················8
1.4.6 统一OS,弹性部署 ··················8
1.5 HarmonyOS的应用场景 ··················9
1.5.1 HarmonyOS不只是用于手机 ······9
1.5.2 HarmonyOS的典型应用 ··········11
1.6 小结 ········································12
第2章 HarmonyOS应用开发入门 ···13
2.1 开发环境准备 ······························13
2.1.1 开发环境的搭建流程 ··············13
2.1.2 安装Node.js ·························14
2.1.3 安装和配置DevEco Studio ·······16
2.1.4 创建Hello World项目 ·············23
2.2 开发基础知识 ······························30
2.2.1 应用基础知识 ·······················30
2.2.2 应用配置文件 ·······················31
2.2.3 应用资源文件 ·······················32
2.2.4 工程管理 ·····························33
2.3 小结 ·········································40
第3章 实战项目一:计算器(Java UI) ···························41
3.1 UI效果图与知识点·······················41
3.2 核心概念 ·····································43
3.2.1 组件和布局 ··························43
3.2.2 Component和ComponentContainer的介绍 ·························43
3.2.3 Component和ComponentContainer的关系 ·························44
3.2.4 常用布局介绍 ·······················44
3.3 项目开发准备工作 ························44
3.3.1 新建工程和模块 ····················44
3.3.2 导入外部资源文件 ·················46
3.4 编写布局文件代码 ························46
3.5 编写计算器逻辑 ···························55
3.6 小结 ·········································60
第4章 实战项目二:本地通讯录(Java UI) ·················61
4.1 UI效果图与知识点·······················61
4.2 开发准备工作 ······························62
4.3 联系人列表页面静态数据呈现 ·······67
4.4 自定义圆形图片的实现 ·················77
4.5 添加联系人以及实时刷新联系人列表 ·····················85
4.6 查看联系人详情 ···························92
4.7 删除联系人 ··································98
4.8 通过对接SQLite实现数据持久化 ···105
4.9 使用第三方开源库实现弹出式菜单 ···························115
4.10 通过HTTP网络通信与服务端交互 ···························118
4.11 自定义第三方组件库 ··················124
4.12 小结 ·········································129
第5章 实战项目三:本地通讯录(JS FA与Java PA交互版本) ·················130
5.1 UI效果图与知识点······················130
5.2 开发准备工作 ·····························132
5.3 联系人列表页面静态数据呈现 ······135
5.4 打通FA和PA数据 ·····················140
5.5 添加弹出式菜单 ··························147
5.6 添加联系人 ·································153
5.7 删除联系人 ·································162
5.8 通过HTTP网络通信与服务端交互(JS) ·······················164
5.9 小结 ······································167
第6章 实战项目四:自定义相册 (Java) ··················168
6.1 UI效果图与知识点······················168
6.2 开发准备工作 ·····························169
6.3 添加一个表格布局 ·······················170
6.4 动态权限申请 ·····························171
6.5 读取系统相册的数据并更新UI显示 ·························180
6.6 小结 ······································180
第7章 实战项目五:自定义视频播放器(Java)·············181
7.1 UI效果图与知识点······················181
7.2 开发准备工作 ·····························182
7.3 播放一个本地视频 ·······················183
7.4 实现网络视频播放 ·······················187
7.5 添加自定义控制栏 ·······················188
7.6 实现控制栏显示与隐藏的动态切换 ··················192
7.7 实现带动画效果的加载等待框 ······194
7.8 实现视频的播放和暂停功能 ·········196
7.9 实现控制栏的全屏切换功能 ·········196
7.10 实现视频总时长与当前播放时间实时显示·······················197
7.11 实现控制栏的播放进度条的实时更新 ···························198
7.12 实现视频播放进度跳转 ··············199
7.13 实现倍速播放的功能 ··················200
7.14 小结 ·········································201
第8章 实战项目六:分布式视频播放器(Java)·············202
8.1 UI效果图与知识点······················202
8.2 开发准备工作 ·····························203
8.3 真机调试 ······························205
8.3.1 真机设备运行流程 ················205
8.3.2 生成密钥和证书请求文件 ·······206
8.3.3 创建AGC项目 ····················208
8.3.4 创建HarmonyOS应用 ···········210
8.3.5 申请调试证书和Profile文件 ···211
8.3.6 配置签名信息 ······················217
8.3.7 在Phone或Tablet中运行应用 ···218
8.4 分布式任务调度开发介绍 ·············219
8.5 分布式任务调度开发测试预置条件 ·······················220
8.6 分布式视频播放器开发权限配置 ·······················220
8.7 搜索并展示进行分布式协同的设备列表 ···················221
8.8 跨设备启动FA并进行数据交互····236
8.9 小结 ································238
第9章 HarmonyOS常用第三方组件介绍 ·················239
9.1 Glide组件开发指南 ·····················239
9.2 Lottie组件开发指南 ····················244
9.3 FileUpDown组件开发指南 ···········249
9.4 VideoCache组件开发指南 ············255
9.5 BottomNavigationBar组件开发指南 ····················261

教学资源推荐
作者: 苏莉蔚 主编 刘威 副主编 姜楠 白洪涛 孙元 参编
作者: [美]雷蒙德·盖拉多(Raymond Gallardo) 斯科特·霍梅尔(Scott Hommel) 索娅·坎南(Sowmya Kannan) 琼尼·戈登(Joni Gordon) 沙伦·比奥卡·扎卡沃(Sharon Biocca Zakhour)著
作者: 杨颂华 熊海灵 主编 杨明 黄春伦 等编著
作者: 陈作聪 苏静 王龙 等编著
参考读物推荐
作者: [美] 比尔·瓦格纳(Bill Wagner) 著
作者: 郭鑫 顾彦玲 等编著
作者: 李明江 著