鴻蒙HarmonyOS應用開發入門
柳偉衛
- 出版商: 清華大學
- 出版日期: 2024-01-01
- 定價: $534
- 售價: 8.5 折 $454
- 語言: 簡體中文
- 頁數: 255
- 裝訂: 平裝
- ISBN: 7302649111
- ISBN-13: 9787302649113
-
相關分類:
Operating-system、資訊科學
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$301機器人操作中的力學原理
相關主題
商品描述
HarmonyOS是一款面向未來、面向全場景的分佈式操作系統,借助HarmonyOS全場景分佈式系統和設備生態,定義全新的硬件、交互和服務體驗。本書採用**的HarmonyOS 3版本作為基礎,詳細介紹如何基於HarmonyOS 3來進行應用開發,包括HarmonyOS架構、DevEco Studio、應用結構、Ability、UI開發、公共事件、窗口管理、網絡編程、安全管理、數據管理等多個主題,還介紹如何從0開始開發計算器、視頻播放器、購物應用、微信應用等。本書輔以大量的實戰案例,圖文並茂,讓讀者易於理解掌握。同時,案例的選型偏重於解決實際問題,具有很強的前瞻性、應用性和趣味性。加入鴻蒙生態,讓我們一起構建萬物互聯的新時代! 《鴻蒙HarmonyOS應用開發入門》適合HarmonyOS應用開發初學者和進階讀者作為自學用書,也適合培訓機構作為培訓教材,還適合大、中專院校的相關專業作為教學參考書。
目錄大綱
目 錄
第1章 HarmonyOS介紹1
1.1 HarmonyOS概述1
1.1.1 什麽是HarmonyOS1
1.1.2 HarmonyOS應用開發2
1.2 HarmonyOS的特徵2
1.2.1 硬件互助,資源共享2
1.2.2 一次開發,多端部署6
1.2.3 統一OS,彈性部署7
1.3 HarmonyOS 3的新特性7
1.3.1 Ability組件的生命周期8
1.3.2 ArkUI開發框架9
1.3.3 ArkTS編程語言9
1.3.4 ExtensionAbility機制9
1.4 DevEco Studio的安裝9
1.4.1 下載DevEco Studio9
1.4.2 安裝DevEco Studio10
1.4.3 配置DevEco Studio11
1.5 實戰:創建第一個HarmonyOS應用14
1.5.1 選擇創建新項目14
1.5.2 選擇模板15
1.5.3 配置項目信息16
1.5.4 自動生成工程代碼17
1.5.5 預覽項目17
1.5.6 運行項目17
1.6 應用工程結構介紹19
1.6.1 工程級目錄19
1.6.2 entry模塊級目錄20
1.6.3 配置文件21
1.7 總結23
1.8 習題24
第2章 Ability的開發25
2.1 Ability概述25
2.1.1 單Ability應用和多Ability應用25
2.1.2 HarmonyOS應用模型25
2.2 FA模型介紹26
2.2.1 FA模型中的Ability26
2.2.2 FA模型的生命周期27
2.2.3 FA模型的進程線程模型27
2.3 Stage模型介紹27
2.3.1 Stage模型的設計思想28
2.3.2 Stage模型的Ability生命周期28
2.3.3 Stage模型的Ability啟動模式28
2.4 實戰:Ability內頁面的跳轉和數據傳遞30
2.4.1 新建Ability內頁面30
2.4.2 頁面跳轉及傳參32
2.4.3 參數接收34
2.4.4 運行35
2.5 Want概述36
2.5.1 Want的用途36
2.5.2 Want的類型36
2.5.3 Want參數屬性37
2.6 實戰:顯式Want啟動Ability38
2.6.1 新建Ability內頁面39
2.6.2 新建Ability39
2.6.3 使用顯式Want啟動Ability40
2.6.4 運行41
2.7 實戰:隱式Want打開應用管理41
2.7.1 使用隱式Want啟動Ability42
2.7.2 運行42
2.8 總結43
2.9 習題43
第3章 UI開發(上)45
3.1 ArkUI概述45
3.1.1 ArkUI的基本概念45
3.1.2 ArkUI的主要特徵46
3.1.3 JS、TS、ArkTS、ArkUI和ArkCompiler之間的聯系47
3.2 聲明式開發範式48
3.2.1 聲明式開發範式與類Web開發範式48
3.2.2 聲明式開發範式的基礎能力48
3.2.3 聲明式開發範式的整體架構49
3.2.4 聲明式開發範式的基本組成50
3.3 常用的組件50
3.4 基礎組件詳解51
3.4.1 Blank51
3.4.2 Button52
3.4.3 Checkbox54
3.4.4 CheckboxGroup54
3.4.5 DataPanel55
3.4.6 DatePicker56
3.4.7 Divider57
3.4.8 Gauge58
3.4.9 Image59
3.4.10 ImageAnimator61
3.4.11 LoadingProgress63
3.4.12 Marquee63
3.4.13 Navigation63
3.4.14 PatternLock64
3.4.15 Progress65
3.4.16 QRCode66
3.4.17 Radio66
3.4.18 Rating66
3.4.19 RichText67
3.4.20 ScrollBar67
3.4.21 Search69
3.4.22 Select69
3.4.23 Slider70
3.4.24 Span71
3.4.25 Stepper與StepperItem72
3.4.26 Text73
3.4.27 TextArea74
3.4.28 TextClock75
3.4.29 TextInput75
3.4.30 TextPicker76
3.4.31 TextTimer76
3.4.32 TimePicker77
3.4.33 Toggle77
3.4.34 Web78
3.5 總結79
3.6 習題79
第4章 UI開發(下)80
4.1 容器組件詳解80
4.1.1 Column和Row80
4.1.2 ColumnSplit和RowSplit82
4.1.3 Flex82
4.1.4 Grid和GridItem83
4.1.5 GridRow和GridCol84
4.1.6 List、ListItem和ListItemGroup85
4.1.7 AlphabetIndexer86
4.1.8 Badge87
4.1.9 Counter88
4.1.10 Navigator89
4.1.11 Panel92
4.1.12 Refresh92
4.1.13 RelativeContainer92
4.1.14 Scroll93
4.1.15 SideBarContainer94
4.1.16 Stack95
4.1.17 Swiper95
4.1.18 Tabs和TabContent96
4.2 媒體組件詳解97
4.3 繪制組件詳解98
4.3.1 Circle和Ellipse98
4.3.2 Line99
4.3.3 Polyline100
4.3.4 Polygon101
4.3.5 Path102
4.3.6 Rect104
4.3.7 Shape106
4.4 畫布組件詳解108
4.5 常用佈局109
4.5.1 自適應佈局109
4.5.2 響應式佈局111
4.6 實戰:使用ArkUI實現“登錄”頁面111
4.6.1 使用Column容器實現整體佈局112
4.6.2 使用Image組件實現標志展示112
4.6.3 使用TextInput組件實現賬號和密碼的輸入112
4.6.4 使用Button組件實現“登錄”按鈕113
4.6.5 使用Text組件實現“註冊”按鈕113
4.6.6 完整代碼113
4.7 實戰:使用ArkUI實現“計算器”114
4.7.1 新增Calculator.ets的文件114
4.7.2 實現遞歸運算114
4.7.3 實現將輸入的字符串轉為字符串數組116
4.7.4 新增CalculatorButtonInfo.ets文件117
4.7.5 實現CalculatorButton組件117
4.7.6 構造整體頁面118
4.7.7 運行120
4.8 總結120
4.9 習題120
第5章 公共事件122
5.1 公共事件概述122
5.1.1 公共事件的分類122
5.1.2 公共事件的開發123
5.2 實戰:訂閱、發布、取消公共事件124
5.2.1 添加按鈕124
5.2.2 添加Text顯示接收的事件125
5.2.3 設置按鈕的單擊事件方法125
5.2.4 運行126
5.3 總結127
5.4 習題127
第6章 窗口管理128
6.1 窗口開發概述128
6.1.1 應用窗口的分類128
6.1.2 窗口模塊的用途128
6.1.3 窗口沉浸式能力129
6.2 窗口管理129
6.2.1 設置應用主窗口的屬性及目標頁面129
6.2.2 設置應用子窗口的屬性及目標頁面130
6.2.3 體驗窗口沉浸式能力130
6.3 實戰:實現窗口沉浸式效果130
6.3.1 修改onWindowStageCreate方法130
6.3.2 運行131
6.4 總結132
6.5 習題132
第7章 網絡編程133
7.1 HTTP數據請求概述133
7.1.1 HTTP請求方法133
7.1.2 HTTP狀態碼134
7.2 實戰:通過HTTP請求數據134
7.2.1 準備一個HTTP服務接口134
7.2.2 添加使用Button組件來觸發單擊134
7.2.3 發起HTTP請求135
7.2.4 運行136
7.3 Web組件概述136
7.3.1 加載本地網頁136
7.3.2 加載在線網頁137
7.3.3 網頁縮放137
7.3.4 文本縮放138
7.3.5 Web組件事件138
7.3.6 Web和JavaScript交互138
7.3.7 處理頁面導航140
7.4 實戰:Web組件加載在線網頁141
7.4.1 準備一個在線網頁地址141
7.4.2 聲明網絡訪問權限141
7.4.3 發起HTTP請求142
7.4.4 運行142
7.5 總結142
7.6 習題143
第8章 安全管理145
8.1 訪問控制概述145
8.1.1 權限包含的基本概念145
8.1.2 權限等級說明146
8.1.3 權限類型146
8.1.4 權限列表147
8.2 訪問控制開發步驟154
8.2.1 權限申請154
8.2.2 權限授權155
8.3 實戰:訪問控制授權155
8.3.1 場景介紹155
8.3.2 聲明訪問的權限155
8.3.3 申請授權user_grant權限156
8.3.4 運行157
8.4 總結157
8.5 習題158
第9章 數據管理159
9.1 分佈式數據服務概述159
9.1.1 分佈式數據服務的基本概念159
9.1.2 分佈式數據服務的運作機制161
9.1.3 分佈式數據服務的約束與限制162
9.2 分佈式數據服務的開發步驟163
9.2.1 導入模塊163
9.2.2 構造分佈式數據庫管理類實例163
9.2.3 獲取/創建分佈式數據庫163
9.2.4 訂閱分佈式數據庫的數據變化164
9.2.5 將數據寫入分佈式數據庫164
9.2.6 查詢分佈式數據庫數據165
9.3 關系數據庫概述165
9.3.1 基本概念165
9.3.2 運作機制166
9.3.3 默認配置與限制166
9.4 實戰:關系數據庫的開發166
9.4.1 操作RdbStore166
9.4.2 賬目信息的表示168
9.4.3 操作賬目信息表169
9.4.4 設計界面171
9.4.5 運行173
9.5 首選項概述174
9.5.1 首選項的運作機制174
9.5.2 約束與限制175
9.6 實戰:首選項開發175
9.6.1 操作Preferences175
9.6.2 賬目信息的表示177
9.6.3 設計界面177
9.6.4 運行179
9.7 總結180
9.8 習題180
第10章 多媒體開發182
10.1 音頻開發182
10.1.1 音頻開發的基本概念182
10.1.2 音頻播放開發指導182
10.1.3 如何選擇音頻播放開發方式184
10.1.4 AVPlayer API的開發步驟184
10.2 圖片開發187
10.2.1 圖片開發的基本概念187
10.2.2 圖片開發的主要流程187
10.2.3 圖片解碼188
10.2.4 圖像變換190
10.2.5 位圖操作192
10.2.6 圖片編碼193
10.2.7 圖片工具194
10.3 視頻開發195
10.3.1 視頻開發指導195
10.3.2 視頻開發步驟196
10.4 實戰:實現視頻播放器199
10.4.1 獲取本地視頻199
10.4.2 視頻播放控制203
10.4.3 創建播放器界面206
10.4.4 運行212
10.5 總結213
10.6 習題213
第11章 綜合實戰:購物應用214
11.1 購物應用概述214
11.1.1 購物應用的功能214
11.1.2 購物應用效果展示214
11.2 實戰:實現商品列表頁簽215
11.2.1 創建一個頁面216
11.2.2 創建模型216
11.2.3 創建組件222
11.2.4 加載主界面229
11.3 實戰:實現購物車頁簽229
11.3.1 創建一個頁面229
11.3.2 創建組件230
11.4 實戰:實現我的頁簽232
11.4.1 創建一個頁面232
11.4.2 創建組件233
11.5 實戰:商品詳情頁面235
11.5.1 創建一個頁面235
11.5.2 創建組件236
11.6 總結241
11.7 習題241
第12章 綜合實戰:仿微信應用242
12.1 仿微信應用概述242
12.1.1 “微信”頁面242
12.1.2 “聯系人”頁面243
12.1.3 “發現”頁面243
12.1.4 “我”頁面244
12.2 實戰:“微信”頁面244
12.2.1 創建“微信”頁面ChatPage244
12.2.2 定義聯系人Person245
12.2.3 定義聯系人數據246
12.2.4 定義樣式246
12.3 實戰:“聯系人”頁面248
12.3.1 創建“聯系人”頁面ContactPage248
12.3.2 定義樣式249
12.4 實戰:“發現”頁面250
12.4.1 創建“發現”頁面DiscoveryPage250
12.4.2 定義樣式251
12.5 實戰:“我”頁面252
12.6 實戰:組裝所有頁面253
12.6.1 Tabs組件作為導航欄253
12.6.2 Swiper組件實現頁面滑動255
12.7 總結255
12.8 習題255