-
-
- 纯血鸿蒙HarmonyOS NEXT原生开发之旅
-
- 作者:杨春鹏|责编:王金柱//秦山玉
- 出版社:清华大学
- ISBN:9787302685951
-
售价:43.6
-
内容大纲
本书全面系统地介绍了基于HarmonyOS NEXT系统进行原生应用开发的实用技巧。全书共12章,内容涵盖从基础工具使用到高级功能实现的各个方面。第1章详细介绍了开发环境的搭建、ArkTS语言基础及UI描述。第2章深入探讨了Ability组件和信息传递机制。第3章和第4章分别讲解了UI开发的基础知识和进阶技巧,包括ArkUI框架和自定义组件。第5章探讨了一次开发多端部署的策略。第6章介绍了多媒体应用的开发方法。第7章讨论了进程间通信和任务管理。第8章涉及窗口管理和通知功能。第9章讲解了网络编程的基本方法。第10章关注于应用安全管理。第11章详细介绍了服务卡片的开发流程。第12章通过一个购物应用案例,将前面章节的知识综合运用,展示了一个完整的项目实战过程。
本书适合初学者和转型到鸿蒙系统开发的有经验的程序员阅读,也可以作为相关培训机构和高校相关专业的教学用书。
-
作者介绍
杨春鹏,资深软件工程师,有超过十年的行业经验,曾就职于快手、容猫、四维等大厂,涉猎大前端、Python,鸿蒙等领域技术,持有鸿蒙高级开发者证书,多次参与企业和高校鸿蒙技术培训。业余时间热爱分享,是阿里云、CSDN技术社区专家博主,发表技术文章数百篇。
-
目录
第1章 初识鸿蒙HarmonyOS NEXT
1.1 DevEco Studio开发工具
1.1.1 下载和安装DevEco Studio
1.1.2 DevEco Studio的基本使用
1.1.3 手机运行Hello World应用
1.1.4 了解基本工程目录
1.2 ArkTS语言之基本UI描述
1.2.1 基本概念
1.2.2 创建组件
1.2.3 属性配置
1.2.4 事件配置
1.2.5 子组件配置
1.3 ArkTS语言之状态管理
1.3.1 @State
1.3.2 @Prop
1.3.3 @Link
1.3.4 @Observed和@ObjectLink
1.3.5 @Consume和@Provide
1.3.6 @Watch
1.4 ArkTS语言之状态管理进阶
1.4.1 LocalStorage:页面级UI状态存储
1.4.2 AppStorage:应用全局的UI状态存储
1.4.3 PersistentStorage:持久化存储UI状态
1.5 ArkTS语言之动态构建UI元素
1.5.1 @Builder
1.5.2 @BuilderParam
1.5.3 @Styles
1.5.4 @Extend
1.6 实战:自定义导航
1.7 本章小结
第2章 Ability开发
2.1 Stage模型的概述
2.1.1 重要概念
2.1.2 应用/组件级配置
2.2 UIAbility组件
2.2.1 UlAbility组件的概述
2.2.2 UIAbility组件的生命周期
2.2.3 UIAbility组件的启动模式
2.2.4 UIAbility组件的基本用法
2.2.5 UlAbility组件与UI的数据同步
2.3 信息传递的载体want
2.3.1 want的概述
2.3.2 显式want与隐式want的匹配规则
2.4 实战:显示want启动Ability
2.5 实战:隐式want打开浏览器
2.6 本章小结
第3章 UI开发基础
3.1 ArkUI概述
3.2 ArkTS的声明式开发范式
3.3 常用组件
3.4 基础组件详解
3.4.1 AlphabetIndexer
3.4.2 Blank
3.4.3 Button
3.4.4 CalendarPicker
3.4.5 Checkbox
3.4.6 CheckboxGroup
3.4.7 ContainerSpan
3.4.8 DataPanel
3.4.9 DatePicker
3.4.10 Divider
3.4.11 Gauge
3.4.12 Image
3.4.13 ImageAnimator
3.4.14 ImageSpan
3.4.15 LoadingProgress
3.4.16 Marquee
3.4.17 Menu
3.4.18 MenuItem
3.4.19 MenuItemGroup
3.4.20 Radio
3.4.21 Rating
3.4.22 RichText
3.4.23 Select
3.4.24 Slider
3.4.25 Text
3.4.26 TextArea
3.4.27 TextClock
3.4.28 TextInput
3.4.29 TextPicker
3.4.30 TextTimer
3.4.31 TimePicker
3.4.32 Toggle
3.5 实战:城市列表选择案例
3.5.1 数据模块的定义
3.5.2 主页布局
3.5.3 实现城市列表组件
3.5.4 实现搜索组件
3.5.5 项目小结
3.6 本章小结
第4章 UI开发进阶
4.1 容器组件详解
4.1.1 Badge
4.1.2 Column和Row
4.1.3 ColumnSplit和RowSplit
4.1.4 Counter
4.1.5 Flex
4.1.6 WaterFlow和FlowItem
4.1.7 Stack
4.1.8 GridRow和GridCol
4.1.9 Grid和GridItem
4.1.10 Hyperlink
4.1.11 List、ListItem和
ListItemGroup
4.1.12 Navigator
4.1.13 Panel
4.1.14 Refresh
4.1.15 RelativeContainer
4.1.16 Scroll
4.1.17 SideBarContainer
4.1.18 Swiper
4.1.19 Tabs和TabContent
4.2 绘制组件详解
4.2.1 Circle
4.2.2 Ellipse
4.2.3 Line
4.2.4 Polyline
4.2.5 Polygon
4.2.6 Path
4.2.7 Rect
4.2.8 Shape
4.3 画布组件Canvas
4.3.1 画布组件及对象
4.3.2 Canvas组件示例
4.4 弹窗详解
4.4.1 警告弹窗(AlertDialog)
4.4.2 列表选择弹窗(ActionSheet)
4.4.3 自定义弹窗(CustomDialog)
4.4.4 日历选择器弹窗(CalendarPickerDialog)
4.4.5 日期滑动选择器弹窗(DatePickerDialog)
4.4.6 时间滑动选择器弹窗(TimePickerDialog)
4.4.7 文本滑动选择器弹窗(TextPickerDialog)
4.5 自定义组件生命周期
4.5.1 自定义组件生命周期概述
4.5.2 自定义组件生命周期示例
4.6 实战:待办列表案例
4.6.1 TODO类定义
4.6.2 常量数据
4.6.3 列表项页面
4.6.4 列表项增删功能页面
4.7 本章小结
第5章 一次开发多端部署
5.1 “一多”开发工程目录管理
5.1.1 创建工程
5.1.2 新建Module
5.1.3 修改Module配置
5.1.4 调整目录结构,修改依赖关系
5.1.5 引用ohpm包中的代码
5.2 自适应布局
5.2.1 拉伸能力
5.2.2 均分能力
5.2.3 占比能力
5.2.4 缩放能力
5.2.5 延伸能力
5.2.6 隐藏能力
5.2.7 折行能力
5.3 响应式布局
5.3.1 断点
5.3.2 媒体查询
5.3.3 栅格布局
5.4 实战:页签栏布局
5.4.1 案例准备
5.4.2 案例实现
5.5 本章小结
第6章 多媒体应用开发
6.1 音频开发
6.1.1 音频开发概述
6.1.2 音频播放示例
6.1.3 音频录制示例
6.2 视频开发
6.3 实战:语音录制和声音动效的实现
6.3.1 案例要求与工程结构
6.3.2 案例实现
6.4 本章小结
第7章 进程通信
7.1 ExtensionAbility组件
7.1.1 ExtensionAbility组件概述
7.1.2 FormExtensionAbility组件
7.2 进程间通信
7.2.1 进程模型
7.2.2 公共事件简介
7.2.3 订阅公共事件
7.2.4 发布公共事件
7.3 线程间通信
7.3.1 线程模型
7.3.2 使用Emitter进行线程间通信
7.4 任务管理
7.4.1 Background Tasks Kit简介
7.4.2 短时任务的开发
7.4.3 长时任务的开发
7.4.4 延迟任务的开发
7.5 Stage模型的应用配置文件
7.6 实战:在Worker子线程中解压文件
7.6.1 工程结构和模块类型
7.6.2 实现思路
7.6.3 效果演示
7.7 本章小结
第8章 窗口管理
8.1 窗口开发概述
8.2 管理应用窗口
8.2.1 设置应用主窗口
8.2.2 设置应用子窗口
8.2.3 窗口的沉浸式能力
8.2.4 设置悬浮窗口
8.2.5 监听窗口不可交互与可交互事件
8.3 通知
8.3.1 通知概述
8.3.2 通知消息样式
8.3.3 撤回通知消息
8.4 实战:窗口管理应用
8.4.1 窗口管理应用功能说明
8.4.2 窗口管理应用的实现
8.5 本章小结
第9章 网络编程
9.1 HTTP数据请求
9.1.1 request接口开发
9.1.2 requestInStream接口开发
9.1.3 引入第三方库ohos_axios
9.2 Web组件的页面加载
9.2.1 加载网络页面
9.2.2 加载本地页面
9.2.3 加载HTML格式的文本数据
9.3 实战:通过HTTP请求数据
9.3.1 准备一个HTTP服务接口
9.3.2 使用List组件进行卡片布局
9.3.3 通过生命周期发起HTTP请求
9.3.4 通过生命周期使用第三方库发起HTTP请求
9.3.5 Web组件加载详情页面
9.4 本章小结
第10章 安全管理
10.1 访问控制概述
10.1.1 应用沙箱
10.1.2 应用权限等级和授权方法
10.1.3 系统控件
10.2 访问控制开发流程
10.2.1 权限列表
10.2.2 申请权限
10.2.3 授予权限
10.3 实战:获取位置授权
10.3.1 场景描述
10.3.2 声明访问的权限
10.3.3 申请授权
10.3.4 获取地理位置
10.4 本章小结
第11章 服务卡片开发
11.1 服务卡片概述
11.1.1 服务卡片架构
11.1.2 服务卡片的开发模式
11.1.3 服务卡片的制约
11.2 ArkTS卡片运行机制
11.3 ArkTS卡片相关模块
11.4 ArkTS卡片的开发
11.4.1 创建一个ArkTS卡片
11.4.2 配置卡片参数
11.4.3 卡片生命周期管理
11.5 实战:电子相册案例
11.5.1 项目概述
11.5.2 项目页面代码解读
11.5.3 添加卡片事件
11.6 本章小结
第12章 项目实战:多端部署之购物应用
12.1 项目概述
12.1.1 购物应用的功能
12.1.2 应用效果演示
12.2 代码结构
12.3 页面结构
12.3.1 启动页
12.3.2 主页
12.3.3 首页标签页
12.3.4 新品标签页
12.3.5 购物车标签页
12.3.6 我的标签页
12.3.7 商品详情页
12.3.8 订单确认页
12.3.9 订单支付页
12.3.10 订单列表页
12.4 本章小结
附录A ArkTS语言基础
A.1 编程语言
A.2 TypeScript语法
A.3 语法进阶
A.4 类