鸿蒙HarmonyOS手机应用开发实战
- ISBN:9787302596424
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:712
- 出版时间:2022-01-01
- 条形码:9787302596424 ; 978-7-302-59642-4
本书特色
本书以HarmonyOS 2版本为基础,详细介绍了如何在HarmonyOS环境下进行手机应用的开发。内容涵盖HarmonyOS架构、DevEco Studio、应用结构、Ability、任务调度、公共事件、通知、剪贴板、Java UI、JS UI、多模输入、线程管理、视频、图像、相机、音频、媒体会话管理、媒体数据管理、安全管理、二维码、通用文字识别、蓝牙、WLAN、网络管理、电话服务、设备管理、数据管理、原子化服务、流转等多个主题。本书辅以大量的解决实际问题的开发案例,具有很强的实用性、趣味性。
内容简介
华为自主研发的HarmonyOS(鸿蒙系统)是一款面向未来、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。借助HarmonyOS全场景分布式系统和设备生态定义全新的硬件、交互和服务体验。 《鸿蒙HarmonyOS手机应用开发实战》采用新的HarmonyOS2版本作为基石,详细介绍如何基于HarmonyOS进行手机应用的开发,内容涵盖HarmonyOS架构、DevEcoStudio、应用结构、Ability、任务调度、公共事件、通知、剪切板、JavaUI、JSUI、多模输入、线程管理、视频、图像、相机、音频、媒体会话管理、媒体数据管理、安全管理、二维码、通用文字识别、蓝牙、WLAN、网络管理、电话服务、设备管理、数据管理、原子化服务、流转等多个主题。 《鸿蒙HarmonyOS手机应用开发实战》列举了大量解决实际问题的案例,具有很强的前瞻性、应用性、趣味性。 《鸿蒙HarmonyOS手机应用开发实战》主要面向的是对移动应用或HarmonyOS应用感兴趣的学生、开发人员、架构师。 华为自主研发的HarmonyOS(鸿蒙系统)是一款面向未来、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统,借助HarmonyOS全场景分布式系统和设备生态,定义全新的硬件、交互和服务体验。 《鸿蒙HarmonyOS手机应用开发实战》以HarmonyOS2版本为基础,详细介绍了如何在HarmonyOS环境下进行手机应用的开发。 《鸿蒙HarmonyOS手机应用开发实战》内容涵盖HarmonyOS架构、DevEcoStudio、应用结构、Ability、任务调度、公共事件、通知、剪贴板、JavaUI、JSUI、多模输入、线程管理、视频、图像、相机、音频、媒体会话管理、媒体数据管理、安全管理、二维码、通用文字识别、蓝牙、WLAN、网络管理、电话服务、设备管理、数据管理、原子化服务、流转等多个主题。 《鸿蒙HarmonyOS手机应用开发实战》辅以大量的解决实际问题的开发案例,具有很强的实用性、趣味性。 《鸿蒙HarmonyOS手机应用开发实战》内容可分为以下三部分: 入门(第1-4章)介绍HarmonyOS的背景及开发环境搭建,并创建了一个简单的HarmonyOS应用。 进阶(第5-29章)介绍HarmonyOS的核心功能的开发,内容包括Ability、UI开发、线程管理、视频、图像、相机、音频、媒体会话管理、媒体数据管理、安全管理、二维码、通用文字识别、蓝牙、WLAN、网络管理、电话服务、设备管理、数据管理等。 实战(第30章)演示HarmonyOS在游戏领域的综合实战案例——俄罗斯方块游戏。 《鸿蒙HarmonyOS手机应用开发实战》面向对移动应用或HarmonyOS应用感兴趣的学生、开发人员、系统架构师。
目录
第1章 HarmonyOS简介 1
1.1 HarmonyOS产生的背景 1
1.1.1 为什么需要HarmonyOS 1
1.1.2 什么是HarmonyOS 3
1.1.3 鸿蒙生态、OpenHarmony、HarmonyOS的区别与联系 4
1.1.4 HarmonyOS应用开发 4
1.2 特性介绍 5
1.2.1 硬件互助,资源共享 5
1.2.2 一次开发,多端部署 8
1.2.3 统一OS,弹性部署 8
1.3 架构介绍 8
1.3.1 内核层 9
1.3.2 系统服务层 9
1.3.3 框架层 10
1.3.4 应用层 11
1.4 获取开发支持 12
第2章 开发环境搭建 13
2.1 注册华为开发者联盟账号 13
2.1.1 开发者享受的权益 13
2.1.2 注册、认证准备的资料 14
2.1.3 注册账号 14
2.1.4 登录账号 15
2.1.5 实名认证 15
2.2 DevEco Studio下载安装 19
2.2.1 运行环境要求 20
2.2.2 下载和安装Node.js 20
2.2.3 下载和安装DevEco Studio 20
2.3 设置DevEco Studio(可选) 21
2.3.1 npm设置 21
2.3.2 设置Gradle代理 22
2.3.3 设置DevEco Studio代理 23
2.3.4 下载HarmonyOS SDK 24
2.4 DevEco Studio功能介绍 26
2.4.1 创建新的工程 26
2.4.2 添加Module 27
2.4.3 删除Module 30
2.5 DevEco Studio常见问题小结 30
2.5.1 问题1:访问Gradle仓库慢 31
2.5.2 问题2:模拟器端口被占用无法启动 32
第3章 开发**个HarmonyOS应用 33
3.1 创建一个新工程 33
3.1.1 选择创建新工程 33
3.1.2 选择设备应用类型的模板 33
3.1.3 配置项目的信息 34
3.1.4 自动生成工程代码 35
3.2 运行工程 35
3.2.1 单击“运行”按钮 35
3.2.2 选择模拟器 36
3.2.3 启动模拟器 36
3.2.4 再次运行工程 38
3.3 在本地真机中运行应用 39
3.3.1 连接真实的设备 39
3.3.2 运行应用 40
3.4 使用远程真机运行应用 40
3.4.1 启动远程真机设备 40
3.4.2 运行应用 41
3.4.3 对应用进行签名 41
3.4.4 再次运行应用 44
3.5 使用DevEco Studio预览器 45
3.5.1 如何安装预览器 45
3.5.2 如何使用预览器 45
第4章 探索HarmonyOS应用 46
4.1 App 46
4.2 Ability 48
4.3 库文件 50
4.4 资源文件 50
4.5 配置文件 53
4.6 pack.info 63
第5章 Ability基础知识 64
5.1 Ability概述 64
5.2 Ability的三层架构 65
5.3 Page Ability 69
5.4 实战:多个AbilitySlice间的路由和导航 72
5.5 Page与AbilitySlice的生命周期 79
5.6 实战:Page与AbilitySlice生命周期的例子 82
5.7 Service Ability 92
5.8 实战:Service Ability生命周期的例子 97
5.9 Data Ability 105
5.10 实战:使用DataAbilityHelper访问文件 107
5.11 实战:使用DataAbilityHelper访问数据库 117
5.12 Intent 127
第6章 Ability任务调度 140
6.1 分布式任务调度概述 140
6.2 分布式任务调度能力简介 142
6.3 分布式任务调度实现原理 145
6.4 实现分布式任务调度 147
6.5 实战:分布式任务调度启动远程FA 148
6.6 实战:分布式任务调度启动和关闭远程PA 157
第7章 Ability公共事件与通知 169
7.1 公共事件与通知概述 169
7.2 公共事件服务 170
7.3 实战:公共事件服务发布事件 176
7.4 实战:公共事件服务订阅事件 180
7.5 高级通知服务 183
7.6 实战:通知发布与取消 188
第8章 剪贴板 193
8.1 剪贴板概述 193
8.2 场景介绍 193
8.3 接口说明 194
8.3.1 SystemPasteboard 194
8.3.2 PasteData 195
8.3.3 PasteData.Record 195
8.3.4 PasteData.DataProperty 196
8.3.5 IPasteDataChangedListener 196
8.4 实战:剪贴板数据的写入 196
8.4.1 修改ability_main.xml 196
8.4.2 修改MainAbilitySlice 197
8.4.3 运行 199
8.5 实战:剪切板数据的读取 199
8.5.1 修改ability_main.xml 199
8.5.2 修改MainAbilitySlice 200
8.5.3 运行 202
第9章 用Java开发UI 204
9.1 用Java开发UI概述 204
9.2 组件与布局 206
9.3 实战:通过XML创建布局 207
9.4 实战:通过Java创建布局 211
9.5 实战:常用显示类组件——Text 215
9.6 实战:常用显示类组件——Image 227
9.7 实战:常用显示类组件——ProgressBar 230
9.8 实战:常用交互类组件——Button 234
9.9 实战:常用交互类组件——TextField 247
9.10 实战:常用交互类组件——Checkbox 251
9.11 实战:常用交互类组件——RadioButton/RadioContainer 253
9.12 实战:常用交互类组件——Switch 259
9.13 实战:常用交互类组件——ScrollView 261
9.14 实战:常用交互类组件——Tab/TabList 263
9.15 实战:常用交互类组件——Picker 268
9.16 实战:常用交互类组件——ListContainer 272
9.17 实战:常用交互类组件——RoundProgressBar 276
9.18 实战:常用交互类组件——DirectionalLayout 278
9.19 实战:常用交互类组件——DependentLayout 283
9.20 实战:常用交互类组件——StackLayout 286
9.21 实战:常用交互类组件——TableLayout 288
第10章 用JS开发UI 290
10.1 用JS开发UI概述 290
10.2 实战:创建JS FA应用 291
10.3 组件与布局 297
10.4 实战:点赞按钮 299
10.5 实战:JS FA调用PA 301
第11章 多模输入UI开发 307
11.1 多模输入概述 307
11.2 接口说明 308
11.3 实战:多模输入事件 311
第12章 线程管理 314
12.1 线程管理概述 314
12.2 场景介绍 314
12.3 接口说明 317
12.4 实战:线程管理示例 318
12.5 线程间通信概述 323
12.6 实战:线程间通信示例 324
第13章 视频 330
13.1 视频概述 330
13.2 实战:媒体编解码能力查询 330
13.3 实战:视频编解码 334
13.4 实战:视频播放 340
13.5 实战:视频录制 347
第14章 图像 353
14.1 图像概述 353
14.2 实战:图像解码和编码 354
14.3 实战:位图操作 361
14.4 实战:图像属性解码 368
第15章 相机 373
15.1 相机概述 373
15.2 实战:相机设备创建 375
15.3 实战:相机设备配置 382
15.4 实战:相机帧捕获 387
第16章 音频 394
16.1 音频概述 394
16.2 实战:音频播放 395
16.3 实战:音频采集 402
16.4 实战:短音播放 408
第17章 媒体会话管理 414
17.1 媒体会话管理概述 414
17.2 接口说明 416
17.3 实战:AVSession媒体框架客户端 419
17.4 实战:AVSession媒体框架服务端 424
第18章 媒体数据管理 429
18.1 媒体数据管理概述 429
18.2 实战:媒体元数据的获取 430
18.3 实战:媒体存储数据操作 436
18.4 实战:视频与图像缩略图获取 444
第19章 安全管理 451
19.1 权限的基本概念 451
19.2 权限运作机制 452
19.3 权限约束与限制 452
19.4 应用权限列表 453
19.5 应用权限开发流程 455
19.6 生物特征识别认证概述 461
19.7 生物特征识别运作机制 461
19.8 生物特征识别的约束与限制 462
19.9 生物特征识别的开发流程 462
第20章 二维码 466
20.1 二维码概述 466
20.2 场景介绍 467
20.3 接口说明 468
20.4 实战:生成二维码 468
第21章 通用文字识别 474
21.1 通用文字识别概述 474
21.2 场景介绍 475
21.3 接口说明 475
21.4 实战:通用文字识别示例 477
第22章 蓝牙 484
22.1 蓝牙概述 484
22.2 实战:传统蓝牙本机管理 485
22.3 实战:传统蓝牙远端设备操作 494
22.4 实战:BLE扫描和广播 503
第23章 WLAN 512
23.1 WLAN概述 512
23.2 实战:WLAN的基础功能 513
23.3 实战:不信任热点配置 522
23.4 实战:WLAN消息通知 527
第24章 网络管理 533
24.1 网络管理概述 533
24.2 实战:使用当前网络打开一个URL链接 534
24.3 实战:使用当前网络进行Socket数据传输 540
24.4 实战:流量统计 546
第25章 电话服务 553
25.1 电话服务概述 553
25.2 实战:获取当前蜂窝网络信号信息 554
25.3 实战:观察蜂窝网络的状态变化 559
第26章 设备管理 568
26.1 设备管理概述 568
26.2 实战:传感器示例 572
26.3 实战:Light示例 578
26.4 实战:获取设备的位置 582
26.5 实战:(逆)地理编码转化 589
第27章 数据管理 595
27.1 数据管理概述 595
27.2 关系型数据库 596
27.3 对象关系映射数据库 601
27.4 实战:使用对象关系映射数据库 605
27.5 轻量级偏好数据库 619
27.6 实战:使用轻量级偏好数据库 622
27.7 数据存储管理 630
27.8 实战:使用数据存储管理 632
第28章 原子化服务 637
28.1 原子化服务概述 637
28.2 服务中心 639
28.3 实战:原子化服务HelloDog 641
第29章 流转 657
29.1 流转概述 657
29.2 流转架构 658
29.3 跨端迁移 661
29.4 实战:实现跨端迁移与回迁 665
29.5 多端协同 674
29.6 实战:实现多端协同 677
第30章 综合案例:俄罗斯方块游戏 687
30.1 案例概述 687
30.2 代码实现 688
30.3 应用运行 711
参考文献 713
作者简介
柳伟卫,网名老卫、waylau,在IT公司担任过项目经理、架构师、高级技术顾问等职位,拥有十余年开发经验,具有丰富的软件开发管理及系统架构经验。曾主导过多个省、***大型分布式系统的设计与研发,参与过面向全球的供应链系统服务化改造。在工作实践中,积累了大量的分布式系统、微服务架构以及性能调优经验。喜欢开源,长期活跃于各大开源社区,编著了《Netty4。x用户指南》《Netty实战(精髓)》等30余本开源技术教程,广受网友好评,是CSDN、开源中国、阿里云开发者、华为开发者等技术社区专家。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0