第 1章 HarmonyOS概述 1
1.1 Android系统概述 1
1.2 HarmonyOS、Open Harmony与HMS概述 2
1.3 Harmony理想的分布式世界 3
1.4 HarmonyOS学习前置条件 4
1.5 HarmonyOS环境搭建 4
1.6 HarmonyOS项目管理与目录介绍 6
1.7 HarmonyOS的Ability概念 8
1.8 HarmonyOS模拟器运行 9
1.9 【实战】HarmonyOS第 一个应用开发 12
1.9.1 实战目标 12
1.9.2 通过XML显式编写第 一个页面 12
1.9.3 通过Java代码调用第 一个页面 15
1.9.4 通过Java代码编写第二个页面 16
1.9.5 在第 一个页面的按钮上添加监听器 17
1.9.6 展示效果 18
1.9.7 项目结构 19
1.10 HarmonyOS调试 19
1.10.1 HiLog日志输出 19
1.10.2 Debug 20
1.11 课后习题 21
第 2章 Page Ability开发 22
2.1 组件与布局 24
2.2 Page的生命周期 24
2.3 AbilitySlice生命周期 26
2.4 Page与AbilitySlice生命周期关联 27
2.5 【实战】AbilitySlice参数的传递与回调 27
2.5.1 实战目标 27
2.5.2 通过XML显式编写页面 28
2.5.3 通过AbilitySlice管理第 一个页面 29
2.5.4 通过AbilitySlice管理第二个页面 31
2.5.5 展示效果 32
2.5.6 项目结构 33
2.6 【实战】Intent根据Ability全称启动应用页面 34
2.6.1 实战目标 34
2.6.2 通过XML显式编写页面 34
2.6.3 编写Ability容器 35
2.6.4 编写跳转代码 36
2.6.5 展示效果 37
2.6.6 项目结构 38
2.7 课后习题 39
第3章 Service Ability开发 40
3.1 Service的生命周期 40
3.2 【实战】启动和停止后台Service 41
3.2.1 实战目标 41
3.2.2 通过XML显式编写页面 42
3.2.3 编写Service 43
3.2.4 编写主页面AbilitySlice的跳转功能 45
3.2.5 展示效果 46
3.2.6 项目结构 47
3.3 前台Service 48
3.4 【实战】启动和停止前台Service 48
3.4.1 实战目标 48
3.4.2 修改MyServiceAbility 48
3.4.3 修改Service类型 50
3.4.4 展示效果 51
3.4.5 项目结构 52
3.5 课后习题 53
第4章 Data Ability开发 54
4.1 Data概念 54
4.2 创建Data 54
4.3 数据库存储 55
4.4 编写数据库操作方法 56
4.5 注册Data 56
4.6 【实战】通过Data实现增加与查询 57
4.6.1 实战目标 57
4.6.2 通过XML显式编写页面 57
4.6.3 通过Gradle配置文件引入相关JAR包 58
4.6.4 编写实体类 60
4.6.5 创建MyDataAbility 61
4.6.6 编写MainAbilitySlice 69
4.6.7 展示效果 72
4.6.8 项目结构 73
4.7 课后习题 73
第5章 Java UI框架的组件 74
5.1 Java UI组件 74
5.2 Java UI框架的组件概述 74
5.2.1 Component和ComponentContainer 74
5.2.2 LayoutConfig 75
5.2.3 组件树 75
5.2.4 常见组件 76
5.2.5 组件的公有属性 77
5.2.6 组件的交互与事件 80
5.3 【实战】体验Image放大与缩小 81
5.3.1 实战目标 81
5.3.2 传入图片到项目之中 81
5.3.3 通过XML显式编写页面 82
5.3.4 通过AbilitySlice管理页面 83
5.3.5 展示效果 83
5.3.6 项目结构 84
5.4 【实战】体验使用TabList编写仿微信页面 85
5.4.1 实战目标 85
5.4.2 通过XML显式编写页面 85
5.4.3 通过AbilitySlice管理页面 86
5.4.4 展示效果 87
5.4.5 项目结构 88
5.5 常见组件的实战 89
5.5.1 【实战】体验PageSlider组件 89
5.5.2 【实战】体验ScrollView组件 93
5.5.3 【实战】体验CommonDialog组件 96
5.5.4 【实战】体验PopupDialog组件 97
5.5.5 【实战】体验ToastDialog组件 99
5.5.6 【实战】体验ProgressBar组件 101
5.5.7 【实战】体验Checkbox组件 103
5.6 课后习题 105
第6章 Java UI的布局 106
6.1 Java UI框架的常用布局 106
6.1.1 DirectionalLayout定向布局 106
6.1.2 DependentLayout依赖布局 114
6.1.3 StackLayout堆叠布局 119
6.1.4 TableLayout表格布局 122
6.1.5 PositionLayout位置布局 131
6.1.6 AdaptiveBoxLayout自适应布局 135
6.2 Java UI框架的自定义组件与自定义布局 141
6.2.1 自定义组件 141
6.2.2 自定义布局 142
6.3 【实战】HarmonyOS提交表单综合练习 143
6.3.1 实战目标 143
6.3.2 编写页面 143
6.3.3 编写实体类 148
6.3.4 编写MainAbilitySlice 149
6.3.5 展示效果 150
6.3.6 项目结构 151
6.4 课后习题 151
第7章 ArkUI框架的组件 152
7.1 ArkUI框架概述 152
7.1.1 ArkUI框架的目录结构 152
7.1.2 创建项目 153
7.1.3 ArkUI框架的引用规则 155
7.1.4 ArkUI框架的config.json配置文件 155
7.2 【实战】ArkUI框架的第 一个应用开发 156
7.2.1 实战目标 156
7.2.2 通过HML显式编写第 一个页面 157
7.2.3 通过CSS编写第 一个页面的样式 157
7.2.4 编写第 一个页面的JavaScript脚本 159
7.2.5 使用HML显式编写第二个页面、样式、脚本 160
7.2.6 展示效果 161
7.2.7 项目结构 161
7.3 ArkUI框架组件 162
7.3.1 ArkUI框架组件的分类 162
7.3.2 ArkUI框架组件的公有属性 163
7.3.3 ArkUI框架组件的渲染属性 164
7.3.4 ArkUI框架组件的公有样式 171
7.3.5 ArkUI框架组件的公有事件 177
7.3.6 ArkUI框架获取组件的方式 181
7.3.7 ArkUI框架组件的公有方法 181
7.4 常见组件的实战体验 182
7.4.1 【实战】体验text组件 182
7.4.2 【实战】体验input组件 183
7.4.3 【实战】体验button组件 184
7.4.4 【实战】体验list组件 185
7.4.5 【实战】体验picker组件 186
7.4.6 【实战】体验dialog组件 187
7.4.7 【实战】体验stepper组件 189
7.4.8 【实战】体验tabs组件 191
7.4.9 【实战】体验image组件 192
7.5 课后习题 193
第8章 ArkUI框架的布局 194
8.1 ArkUI框架的常用布局 194
8.1.1 div基础容器 194
8.1.2 Iist列表容器 200
8.1.3 【实战】体验stack堆叠容器 207
8.1.4 tabs页签容器 208
8.1.5 swiper滑动容器 210
8.2 【实战】使用ArkUI框架进行仿微信页面练习 215
8.2.1 实战目标 215
8.2.2 使用HML显式编写页面 215
8.2.3 使用CSS编写页面样式 216
8.2.4 使用JavaScript编写页面脚本 217
8.2.5 改写资源文件 218
8.2.6 展示效果 218
8.2.7 项目结构 218
8.3 ArkUI框架的生命周期 219
8.3.1 页面的生命周期 219
8.3.2 应用的生命周期 220
8.4 【实战】体验ArkUI框架的跨JavaScript调用 221
8.5 课后习题 222