鸿蒙HARMONYOS应用开发从入门到精通(第2版)
全新正版 极速发货
¥
78.98
6.1折
¥
129
全新
库存16件
作者柳伟卫 著 著
出版社北京大学出版社
ISBN9787301355466
出版时间2025-01
装帧平装
开本16开
定价129元
货号1203467028
上书时间2024-12-20
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
柳伟卫
----------------------------
柳伟卫,网名老卫、waylau,在IT公司担任项目经理、架构师、高级技术顾问等职位,是CSDN、 开源中国、阿里云开发者、华为开发者等技术社区专家,慕课网、华为开发者联盟社区认证讲师,HarmonyOS技术达人,曾获2021、2022年度牛人之星、2022年度OpenHarmony开源贡献之星。著有《跟老卫学HarmonyOS开发》等开源书,并出版了《鸿蒙HarmonyOS手机应用开发实战》《鸿蒙HarmonyOS应用开发从入门到精通》《Spring Boot 2.0企业级应用开发实战》《Spring Cloud 微服务架构开发实战》《Spring 5 开发大全》《Cloud Native 分布式架构原理与实践》《大型互联网应用轻量级架构实战》等专著。
目录
第1章 鸿蒙缘起——HarmonyOS简介
1.1 HarmonyOS产生的背景2
1.1.1 为什么需要HarmonyOS2
1.1.2 HarmonyOS概述3
1.1.3 OpenHarmony、HarmonyOS、HarmonyOS NEXT与鸿蒙的
联系与区别4
1.1.4 HarmonyOS应用开发4
1.2 技术理念5
1.2.1 一次开发,多端部署5
1.2.2 可分可合,自由流转7
1.2.3 统一生态,原生智能8
1.3 架构介绍8
1.3.1 内核层9
1.3.2 系统服务层10
1.3.3 框架层11
1.3.4 应用层11
1.4 HarmonyOS 2新特性概述12
1.4.1 Harmony 2.0 Canary13
1.4.2 HarmonyOS v2.2 Beta213
1.5 HarmonyOS 3新特性概述14
1.5.1 HarmonyOS 3.1 Release14
1.5.2 HarmonyOS 3.2 Release15
1.6 HarmonyOS 4新特性概述16
1.7 Java与ArkTS如何抉择16
1.7.1 HarmonyOS编程语言的发展16
1.7.2 HarmonyOS编程语言的选择17
第2章 先利其器——开发环境搭建
2.1 注册华为开发者联盟账号19
2.1.1 开发者享受的权益19
2.1.2 注册、认证准备的资料19
2.1.3 注册账号19
2.1.4 登录账号20
2.1.5 实名认证20
2.2 DevEco Studio下载安装22
2.2.1 运行环境要求23
2.2.2 下载和安装DevEco Studio23
2.3 设置DevEco Studio24
2.3.1 基本设置24
2.3.2 详细设置26
第3章 牛刀小试—— 开发第一个HarmonyOS应用
3.1 使用Java创建一个新应用29
3.1.1 选择创建新工程29
3.1.2 选择设备应用类型的模板29
3.1.3 配置项目的信息29
3.1.4 自动生成工程代码30
3.2 运行项目30
3.2.1 启动远程模拟器30
3.2.2 启动本地模拟器31
3.2.3 在模拟器里面运行项目33
3.3 使用DevEco Studio预览器33
3.3.1 如何安装预览器33
3.3.2 如何使用预览器34
3.4 使用ArkTS创建一个新应用34
3.4.1 选择创建新工程34
3.4.2 选择设备应用类型的模板34
3.4.3 配置项目的信息35
3.4.4 自动生成工程代码35
3.4.5 查看应用运行效果36
第4章 应用初探——探索HarmonyOS应用
4.1 App38
4.1.1 什么是App38
4.1.2 代码层次的应用39
4.2 Ability39
4.2.1 Ability类39
4.2.2 AbilitySlice类40
4.2.3 UI界面40
4.3 库文件40
4.4 资源文件40
4.4.1 限定词目录41
4.4.2 资源组目录42
4.5 配置文件43
4.5.1 config.json配置文件的组成44
4.5.2 app.json5配置文件的组成45
4.5.3 module.json5配置文件的组成46
4.6 pack.info47
第5章 Ability基础知识
5.1 Ability概述49
5.1.1 Ability分类49
5.1.2 FA49
5.1.3 PA49
5.1.4 UIAbility49
5.1.5 ExtensionAbility50
5.2 Stage模型介绍50
5.2.1 Stage模型的设计思想50
5.2.2 Stage模型的Ability生命周期51
5.2.3 Stage模型的Ability启动模式51
5.3 Page Ability53
5.3.1 Page Ability基本概念53
5.3.2 多个AbilitySlice构成一个Page54
5.3.3 AbilitySlice路由配置54
5.3.4 不同Page间导航55
5.4 实战:多个AbilitySlice间的路由和导航55
5.4.1 创建应用55
5.4.2 新建Page Ability55
5.4.3 修改PayAbilitySlice样式布局57
5.4.4 实现AbilitySlice之间的路由和
导航59
5.4.5 运行61
5.5 Page与AbilitySlice生命周期62
5.5.1 Page生命周期62
5.5.2 AbilitySlice生命周期64
5.5.3 Page与AbilitySlice生命周期的
关联64
5.6 实战:Page与AbilitySlice生命周期的例子65
5.6.1 修改MainAbilitySlice65
5.6.2 修改PayAbilitySlice66
5.6.3 运行68
5.7 Service Ability70
5.7.1 创建Service70
5.7.2 启动Service72
5.7.3 连接Service73
5.7.4 Service Ability生命周期74
5.8 实战:Service Ability生命周期的例子75
5.8.1 创建Service75
5.8.2 创建远程对象77
5.8.3 修改MainAbilitySlice78
5.8.4 修改ability_main.xml81
5.8.5 运行82
5.9 Data Ability83
5.9.1 URI83
5.9.2 访问Data84
5.10 实战:通过DataAbilityHelper访问文件85
5.10.1 创建DataAbility85
5.10.2 修改UserDataAbility88
5.10.3 创建文件90
5.10.4 修改MainAbilitySlice90
5.10.5 创建FileUtils类92
5.10.6 运行93
5.11 实战:通过DataAbilityHelper访问
数据库93
5.11.1 创建DataAbility93
5.11.2 初始化数据库96
5.11.3 重写query方法97
5.11.4 重写insert方法98
5.11.5 重写update方法98
5.11.6 重写delete方法99
5.11.7 修改MainAbilitySlice99
5.11.8 运行103
5.12 Intent104
5.12.1 Operation与Parameters104
5.12.2 根据Ability的全称启动应用105
5.12.3 实战:根据Operation的其他属性
启动应用106
5.13 实战:Stage模型Ability内页面的跳转和数据传递111
5.13.1 新建Ability内页面112
5.13.2 页面跳转及传参113
5.13.3 参数接收115
5.13.4 运行116
5.14 Want概述117
5.14.1 Want的用途117
5.14.2 Want的类型117
5.14.3 Want参数属性119
5.15 实战:通过显式Want启动
Ability120
5.15.1 新建Ability内页面120
5.15.2 新建Ability120
5.15.3 使用显式Want启动Ability121
5.15.4 运行123
5.16 实战:通过隐式Want打开应用
管理123
5.16.1 使用隐式Want启动Ability123
5.16.2 运行124
第6章 安全管理
6.1 权限基本概念126
6.2 权限运作机制127
6.3 权限约束与限制127
6.4 应用权限列表127
6.4.1 权限分类127
6.4.2 敏感权限128
6.4.3 非敏感权限128
6.4.4 受限开放的权限130
6.5 FA模型应用权限开发流程130
6.5.1 权限申请130
6.5.2 自定义权限131
6.5.3 访问权限控制133
6.5.4 接口说明134
6.5.5 动态申请权限开发步骤134
6.6 Stage模型访问控制开发步骤136
6.6.1 权限申请136
6.6.2 权限授权137
6.7 实战:访问控制授权137
6.7.1 场景介绍138
6.7.2 声明访问的权限138
6.7.3 申请授权user_grant权限138
6.7.4 运行140
6.8 生物特征识别约束与限制140
6.9 生物特征识别开发流程141
6.9.1 接口说明141
6.9.2 开发准备142
6.9.3 开发过程142
第7章 Ability公共事件与通知
7.1 公共事件与通知概述145
7.1.1 公共事件和通知145
7.1.2 约束与限制145
7.2 公共事件服务146
7.2.1 接口说明146
7.2.2 发布公共事件147
7.2.3 订阅公共事件150
7.2.4 退订公共事件152
7.3 实战:公共事件服务发布事件152
7.3.1 修改ability_main.xml152
7.3.2 修改MainAbilitySlice153
7.3.3 运行155
7.4 实战:公共事件服务订阅事件155
7.4.1 修改ability_main.xml156
7.4.2 创建CommonEventSubscriber156
7.4.3 修改MainAbility157
7.4.4 修改配置文件158
7.4.5 运行159
7.5 高级通知服务160
7.5.1 接口说明160
7.5.2 创建NotificationSlot162
7.5.3 发布通知163
7.5.4 取消通知164
7.6 实战:通知发布与取消164
7.6.1 修改ability_main.xml164
7.6.2 修改MainAbilitySlice165
7.7 实战:Stage模型的订阅、发布、取消公共事件168
7.7.1 添加按钮168
7.7.2 添加Text显示接收的事件169
7.7.3 设置按钮的点击事件方法169
7.7.4 运行171
第8章 用ArkUI开发UI
8.1 ArkUI概述173
8.1.1 ArkUI基本概念173
8.1.2 ArkUI主要特征174
8.1.3 JS、TS、ArkTS、ArkUI、ArkCompiler之间的联系174
8.2 声明式开发范式175
8.2.1 声明式开发范式与类Web开发
范式175
8.2.2 声明式开发范式的基础能力176
8.2.3 声明式开发范式的整体架构176
8.2.4 声明式开发范式的基本组成177
8.3 常用组件177
8.4 基础组件详解178
8.4.1 Blank178
8.4.2 Button179
8.4.3 Checkbox180
8.4.4 CheckboxGroup181
8.4.5 DataPanel182
8.4.6 DatePicker182
8.4.7 Divider183
8.4.8 Gauge184
8.4.9 Image185
8.4.10 ImageAnimator187
8.4.11 LoadingProgress189
8.4.12 Marquee189
8.4.13 Navigation189
8.4.14 PatternLock190
8.4.15 Progress191
8.4.16 QRCode191
8.4.17 Radio192
8.4.18 Rating192
8.4.19 RichText192
8.4.20 ScrollBar193
8.4.21 Search195
8.4.22 Select195
8.4.23 Slider196
8.4.24 Span197
8.4.25 Stepper与StepperItem198
8.4.26 Text199
8.4.27 TextArea201
8.4.28 TextClock201
8.4.29 TextInput202
8.4.30 TextPicker203
8.4.31 TextTimer203
8.4.32 TimePicker204
8.4.33 Toggle204
8.4.34 Web205
8.5 容器组件详解206
8.5.1 Column和Row207
8.5.2 ColumnSplit和RowSplit208
8.5.3 Flex209
8.5.4 Grid和GridItem210
8.5.5 GridRow和GridCol211
8.5.6 List、ListItem和
ListItemGroup211
8.5.7 AlphabetIndexer212
8.5.8 Badge214
8.5.9 Counter215
8.5.10 Navigator216
8.5.11 Panel218
8.5.12 Refresh219
8.5.13 RelativeContainer219
8.5.14 Scroll221
8.5.15 SideBarContainer222
8.5.16 Stack223
8.5.17 Swiper223
8.5.18 Tabs和TabContent224
8.6 媒体组件详解225
8.7 绘制组件详解225
8.7.1 Circle和Ellipse226
8.7.2 Line227
8.7.3 Polyline228
8.7.4 Polygon229
8.7.5 Path230
8.7.6 Rect233
8.7.7 Shape234
8.8 画布组件详解237
8.9 常用布局238
8.9.1 自适应布局238
8.9.2 响应式布局240
8.10 实战:使用ArkUI实现“登录”
界面240
8.10.1 使用Column容器实现整体
布局240
8.10.2 使用Image组件实现标志展示241
8.10.3 使用TextInput组件实现账号密码的输入241
8.10.4 使用Button组件实现登录按钮242
8.10.5 使用Text组件实现注册按钮242
8.10.6 完整代码242
8.11 实战:使用ArkUI实现“计算器”244
8.11.1 新增Calculator.ets文件244
8.11.2 实现递归运算244
8.11.3 实现输入字符串转为字符串
数组246
8.11.4 新增CalculatorButtonInfo.ets文件247
8.11.5 实现CalculatorButton组件247
8.11.6 构造整体页面249
8.11.7 运行250
第9章 用Java开发UI
9.1 用Java开发UI概述252
9.1.1 组件和布局252
9.1.2 Component和
ComponentContainer252
9.1.3 LayoutConfig253
9.1.4 组件树253
9.2 组件与布局253
9.2.1 编写布局的方式254
9.2.2 组件分类254
9.3 实战:通过XML创建布局255
9.3.1 理解XML布局文件255
9.3.2 创建XML布局文件256
9.3.3 加载XML布局257
9.3.4 显示XML布局258
9.4 实战:通过Java创建布局259
9.4.1 新建AbilitySlice259
9.4.2 创建布局260
9.4.3 在布局中添加组件261
9.4.4 显示布局262
9.5 实战:常用显示类组件——Text262
9.5.1 设置背景262
9.5.2 设置字体大小和颜色264
9.5.3 设置字体风格和字重264
9.5.4 设置文本对齐方式265
9.5.5 设置文本换行和最大显示行数266
9.5.6 设置自动调节字体大小267
9.5.7 实现跑马灯效果269
9.5.8 场景示例270
9.6 实战:常用显示类组件——
Image272
9.6.1 创建Image272
9.6.2 设置透明度273
9.6.3 设置缩放系数274
9.7 实战:常用显示类组件——ProgressBar275
9.7.1 创建ProgressBar275
9.7.2 设置方向275
9.7.3 设置颜色276
9.7.4 设置提示文字277
9.8 实战:常用交互类组件——
Button278
9.8.1 创建Button278
9.8.2 设置点击事件280
9.8.3 设置椭圆按钮282
9.8.4 设置圆形按钮283
9.9 实战:常用交互类组件——TextField288
9.9.1 创建TextField288
9.9.2 设置多行显示289
9.9.3 场景示例290
9.10 实战:常用交互类组件——Checkbox291
9.10.1 创建Checkbox292
9.10.2 设置选中和取消选中时的颜色292
9.11 实战:常用交互类组件——RadioButton/RadioContainer293
9.11.1 创建RadioButton/RadioContainer293
9.11.2 设置显示单选结果295
9.12 实战:常用交互类组件——
Switch298
9.12.1 创建Switch298
9.12.2 设置文本299
9.13 实战:常用交互类组件——ScrollView299
9.13.1 创建ScrollView300
9.13.2 配置Text显示的内容300
9.14 实战:常用交互类组件——
Tab/TabList301
9.14.1 创建TabList302
9.14.2 响应焦点变化304
9.15 实战:常用交互类组件——Picker305
9.15.1 创建Picker305
9.15.2 格式化Picker的显示306
9.15.3 日期滑动选择器DatePicker307
9.15.4 时间滑动选择器TimePicker308
9.16 实战:常用交互类组件——ListContainer309
9.16.1 创建ListContainer309
9.16.2 创建ListContainer子布局309
9.16.3 创建ListContainer数据
包装类310
9.16.4 创建ListContainer数据
提供者310
9.16.5 修改MainAbilitySlice312
9.17 实战:常用交互类组件——RoundProgressBar313
9.17.1 创建RoundProgressBar313
9.17.2 设置开始和结束角度313
9.18 实战:常用布局——DirectionalLayout314
9.18.1 创建DirectionalLayout315
9.18.2 设置水平排列316
9.18.3 设置权重317
9.19 实战:常用交互类组件——DependentLayout318
9.19.1 创建DependentLayout319
9.19.2 相对于同级组件320
9.19.3 相对于父组件320
9.19.4 场景示例320
9.20 实战:常用交互类组件——StackLayout322
9.21 实战:常用交互类组件——TableLayout323
第10章 设备管理
10.1 设备管理概述327
10.1.1 传感器327
10.1.2 控制类小器件328
10.1.3 位置329
10.2 实战:传感器示例330
10.2.1 接口说明330
10.2.2 创建应用330
10.2.3 修改ability_main.xml330
10.2.4 修改MainAbilitySlice331
10.2.5 运行334
10.3 实战:Light示例336
10.3.1 接口说明336
10.3.2 创建应用336
10.3.3 修改ability_main.xml336
10.3.4 修改MainAbilitySlice337
10.3.5 运行340
10.4 实战:获取设备的位置340
10.4.1 接口说明341
10.4.2 创建应用341
10.4.3 声明权限341
10.4.4 修改ability_main.xml342
10.4.5 修改MainAbilitySlice343
10.4.6 运行346
10.5 实战:(逆)地理编码转化347
10.5.1 接口说明347
10.5.2 创建应用347
10.5.3 修改ability_main.xml348
10.5.4 修改MainAbilitySlice348
10.5.5 运行351
第11章 数据管理
11.1 数据管理概述353
11.2 关系型数据库353
11.2.1 基本概念354
11.2.2 运作机制354
11.2.3 默认配置354
11.2.4 约束与限制354
11.2.5 接口说明355
11.2.6 开发过程357
11.3 对象关系映射数据库358
11.3.1 基本概念359
11.3.2 运作机制359
11.3.3 实体对象属性支持的类型360
11.3.4 接口说明360
11.4 实战:使用对象关系映射数据库362
11.4.1 修改build.gradle362
11.4.2 新增User363
11.4.3 新增UserStore364
11.4.4 创建DataAbility365
11.4.5 初始化数据库368
11.4.6 新增queryAll方法369
11.4.7 新增insert方法369
11.4.8 新增update方法370
11.4.9 新增deleteAll方法370
11.4.10 修改ability_main.xml371
11.4.11 修改MainAbilitySlice372
11.4.12 运行375
11.5 轻量级偏好数据库37
— 没有更多了 —
以下为对购买帮助不大的评价