關(guān)于我們
書單推薦
新書推薦
|
鴻蒙HarmonyOS應(yīng)用開發(fā)從入門到精通(第2版) 讀者對(duì)象:普通讀者
華為自主研發(fā)的 HarmonyOS(鴻蒙系統(tǒng))是一款面向未來(lái)、面向全場(chǎng)景(移動(dòng)辦公、運(yùn)動(dòng)健康、社交通信、媒體娛樂等)的分布式操作系統(tǒng)。本書采用 HarmonyOS 2.0 版本作為基石,詳細(xì)介紹如何基于 HarmonyOS 進(jìn)行應(yīng)用的開發(fā),包括 HarmonyOS 架構(gòu)、DevEco Studio、應(yīng)用結(jié)構(gòu)、Ability、任務(wù)調(diào)度、公共事件、通知、剪貼板、Java UI、JS UI、多模輸入、線程管理、視頻、圖像、相機(jī)、音頻、媒體會(huì)話管理、媒體數(shù)據(jù)管理、安全管理、二維碼、通用文字識(shí)別、藍(lán)牙、WLAN、網(wǎng)絡(luò)管理、電話服務(wù)、設(shè)備管理、數(shù)據(jù)管理等多個(gè)主題。本書輔以大量的實(shí)戰(zhàn)案例,圖文并茂,讓讀者易于理解和掌握。同時(shí),本書的案例選型偏重于解決實(shí)際問題,具有很強(qiáng)的前瞻性、應(yīng)用性和趣味性。加入 HarmonyOS 生態(tài),讓我們一起構(gòu)建萬(wàn)物互聯(lián)的新時(shí)代!
本書主要面向的是對(duì)移動(dòng)應(yīng)用或?qū)?HarmonyOS 應(yīng)用感興趣的學(xué)生、開發(fā)人員和架構(gòu)師。
柳偉衛(wèi)
---------------------------- 柳偉衛(wèi),網(wǎng)名老衛(wèi)、waylau,在IT公司擔(dān)任項(xiàng)目經(jīng)理、架構(gòu)師、高級(jí)技術(shù)顧問等職位,是CSDN、 開源中國(guó)、阿里云開發(fā)者、華為開發(fā)者等技術(shù)社區(qū)專家,慕課網(wǎng)、華為開發(fā)者聯(lián)盟社區(qū)認(rèn)證講師,HarmonyOS技術(shù)達(dá)人,曾獲2021、2022年度牛人之星、2022年度OpenHarmony開源貢獻(xiàn)之星。著有《跟老衛(wèi)學(xué)HarmonyOS開發(fā)》等開源書,并出版了《鴻蒙HarmonyOS手機(jī)應(yīng)用開發(fā)實(shí)戰(zhàn)》《鴻蒙HarmonyOS應(yīng)用開發(fā)從入門到精通》《Spring Boot 2.0企業(yè)級(jí)應(yīng)用開發(fā)實(shí)戰(zhàn)》《Spring Cloud 微服務(wù)架構(gòu)開發(fā)實(shí)戰(zhàn)》《Spring 5 開發(fā)大全》《Cloud Native 分布式架構(gòu)原理與實(shí)踐》《大型互聯(lián)網(wǎng)應(yīng)用輕量級(jí)架構(gòu)實(shí)戰(zhàn)》等專著。
第1章 鴻蒙緣起——HarmonyOS簡(jiǎn)介
1.1 HarmonyOS產(chǎn)生的背景2
1.1.1 為什么需要HarmonyOS2
1.1.2 HarmonyOS概述3
1.1.3 OpenHarmony、HarmonyOS、HarmonyOS NEXT與鴻蒙的
聯(lián)系與區(qū)別4
1.1.4 HarmonyOS應(yīng)用開發(fā)4
1.2 技術(shù)理念5
1.2.1 一次開發(fā),多端部署5
1.2.2 可分可合,自由流轉(zhuǎn)7
1.2.3 統(tǒng)一生態(tài),原生智能8
1.3 架構(gòu)介紹8
1.3.1 內(nèi)核層9
1.3.2 系統(tǒng)服務(wù)層10
1.3.3 框架層11
1.3.4 應(yīng)用層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編程語(yǔ)言的發(fā)展16
1.7.2 HarmonyOS編程語(yǔ)言的選擇17
第2章 先利其器——開發(fā)環(huán)境搭建
2.1 注冊(cè)華為開發(fā)者聯(lián)盟賬號(hào)19
2.1.1 開發(fā)者享受的權(quán)益19
2.1.2 注冊(cè)、認(rèn)證準(zhǔn)備的資料19
2.1.3 注冊(cè)賬號(hào)19
2.1.4 登錄賬號(hào)20
2.1.5 實(shí)名認(rèn)證20
2.2 DevEco Studio下載安裝22
2.2.1 運(yùn)行環(huán)境要求23
2.2.2 下載和安裝DevEco Studio23
2.3 設(shè)置DevEco Studio24
2.3.1 基本設(shè)置24
2.3.2 詳細(xì)設(shè)置26
第3章 牛刀小試—— 開發(fā)第一個(gè)HarmonyOS應(yīng)用
3.1 使用Java創(chuàng)建一個(gè)新應(yīng)用29
3.1.1 選擇創(chuàng)建新工程29
3.1.2 選擇設(shè)備應(yīng)用類型的模板29
3.1.3 配置項(xiàng)目的信息29
3.1.4 自動(dòng)生成工程代碼30
3.2 運(yùn)行項(xiàng)目30
3.2.1 啟動(dòng)遠(yuǎn)程模擬器30
3.2.2 啟動(dòng)本地模擬器31
3.2.3 在模擬器里面運(yùn)行項(xiàng)目33
3.3 使用DevEco Studio預(yù)覽器33
3.3.1 如何安裝預(yù)覽器33
3.3.2 如何使用預(yù)覽器34
3.4 使用ArkTS創(chuàng)建一個(gè)新應(yīng)用34
3.4.1 選擇創(chuàng)建新工程34
3.4.2 選擇設(shè)備應(yīng)用類型的模板34
3.4.3 配置項(xiàng)目的信息35
3.4.4 自動(dòng)生成工程代碼35
3.4.5 查看應(yīng)用運(yùn)行效果36
第4章 應(yīng)用初探——探索HarmonyOS應(yīng)用
4.1 App38
4.1.1 什么是App38
4.1.2 代碼層次的應(yīng)用39
4.2 Ability39
4.2.1 Ability類39
4.2.2 AbilitySlice類40
4.2.3 UI界面40
4.3 庫(kù)文件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基礎(chǔ)知識(shí)
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模型的設(shè)計(jì)思想50
5.2.2 Stage模型的Ability生命周期51
5.2.3 Stage模型的Ability啟動(dòng)模式51
5.3 Page Ability53
5.3.1 Page Ability基本概念53
5.3.2 多個(gè)AbilitySlice構(gòu)成一個(gè)Page54
5.3.3 AbilitySlice路由配置54
5.3.4 不同Page間導(dǎo)航55
5.4 實(shí)戰(zhàn):多個(gè)AbilitySlice間的路由和導(dǎo)航55
5.4.1 創(chuàng)建應(yīng)用55
5.4.2 新建Page Ability55
5.4.3 修改PayAbilitySlice樣式布局57
5.4.4 實(shí)現(xiàn)AbilitySlice之間的路由和
導(dǎo)航59
5.4.5 運(yùn)行61
5.5 Page與AbilitySlice生命周期62
5.5.1 Page生命周期62
5.5.2 AbilitySlice生命周期64
5.5.3 Page與AbilitySlice生命周期的
關(guān)聯(lián)64
5.6 實(shí)戰(zhàn):Page與AbilitySlice生命周期的例子65
5.6.1 修改MainAbilitySlice65
5.6.2 修改PayAbilitySlice66
5.6.3 運(yùn)行68
5.7 Service Ability70
5.7.1 創(chuàng)建Service70
5.7.2 啟動(dòng)Service72
5.7.3 連接Service73
5.7.4 Service Ability生命周期74
5.8 實(shí)戰(zhàn):Service Ability生命周期的例子75
5.8.1 創(chuàng)建Service75
5.8.2 創(chuàng)建遠(yuǎn)程對(duì)象77
5.8.3 修改MainAbilitySlice78
5.8.4 修改ability_main.xml81
5.8.5 運(yùn)行82
5.9 Data Ability83
5.9.1 URI83
5.9.2 訪問Data84
5.10 實(shí)戰(zhàn):通過DataAbilityHelper訪問文件85
5.10.1 創(chuàng)建DataAbility85
5.10.2 修改UserDataAbility88
5.10.3 創(chuàng)建文件90
5.10.4 修改MainAbilitySlice90
5.10.5 創(chuàng)建FileUtils類92
5.10.6 運(yùn)行93
5.11 實(shí)戰(zhàn):通過DataAbilityHelper訪問
數(shù)據(jù)庫(kù)93
5.11.1 創(chuàng)建DataAbility93
5.11.2 初始化數(shù)據(jù)庫(kù)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 運(yùn)行103
5.12 Intent104
5.12.1 Operation與Parameters104
5.12.2 根據(jù)Ability的全稱啟動(dòng)應(yīng)用105
5.12.3 實(shí)戰(zhàn):根據(jù)Operation的其他屬性
啟動(dòng)應(yīng)用106
5.13 實(shí)戰(zhàn):Stage模型Ability內(nèi)頁(yè)面的跳轉(zhuǎn)和數(shù)據(jù)傳遞111
5.13.1 新建Ability內(nèi)頁(yè)面112
5.13.2 頁(yè)面跳轉(zhuǎn)及傳參113
5.13.3 參數(shù)接收115
5.13.4 運(yùn)行116
5.14 Want概述117
5.14.1 Want的用途117
5.14.2 Want的類型117
5.14.3 Want參數(shù)屬性119
5.15 實(shí)戰(zhàn):通過顯式Want啟動(dòng)
Ability120
5.15.1 新建Ability內(nèi)頁(yè)面120
5.15.2 新建Ability120
5.15.3 使用顯式Want啟動(dòng)Ability121
5.15.4 運(yùn)行123
5.16 實(shí)戰(zhàn):通過隱式Want打開應(yīng)用
管理123
5.16.1 使用隱式Want啟動(dòng)Ability123
5.16.2 運(yùn)行124
第6章 安全管理
6.1 權(quán)限基本概念126
6.2 權(quán)限運(yùn)作機(jī)制127
6.3 權(quán)限約束與限制127
6.4 應(yīng)用權(quán)限列表127
6.4.1 權(quán)限分類127
6.4.2 敏感權(quán)限128
6.4.3 非敏感權(quán)限128
6.4.4 受限開放的權(quán)限130
6.5 FA模型應(yīng)用權(quán)限開發(fā)流程130
6.5.1 權(quán)限申請(qǐng)130
6.5.2 自定義權(quán)限131
6.5.3 訪問權(quán)限控制133
6.5.4 接口說明134
6.5.5 動(dòng)態(tài)申請(qǐng)權(quán)限開發(fā)步驟134
6.6 Stage模型訪問控制開發(fā)步驟136
6.6.1 權(quán)限申請(qǐng)136
6.6.2 權(quán)限授權(quán)137
6.7 實(shí)戰(zhàn):訪問控制授權(quán)137
6.7.1 場(chǎng)景介紹138
6.7.2 聲明訪問的權(quán)限138
6.7.3 申請(qǐng)授權(quán)user_grant權(quán)限138
6.7.4 運(yùn)行140
6.8 生物特征識(shí)別約束與限制140
6.9 生物特征識(shí)別開發(fā)流程141
6.9.1 接口說明141
6.9.2 開發(fā)準(zhǔn)備142
6.9.3 開發(fā)過程142
第7章 Ability公共事件與通知
7.1 公共事件與通知概述145
7.1.1 公共事件和通知145
7.1.2 約束與限制145
7.2 公共事件服務(wù)146
7.2.1 接口說明146
7.2.2 發(fā)布公共事件147
7.2.3 訂閱公共事件150
7.2.4 退訂公共事件152
7.3 實(shí)戰(zhàn):公共事件服務(wù)發(fā)布事件152
7.3.1 修改ability_main.xml152
7.3.2 修改MainAbilitySlice153
7.3.3 運(yùn)行155
7.4 實(shí)戰(zhàn):公共事件服務(wù)訂閱事件155
7.4.1 修改ability_main.xml156
7.4.2 創(chuàng)建CommonEventSubscriber156
7.4.3 修改MainAbility157
7.4.4 修改配置文件158
7.4.5 運(yùn)行159
7.5 高級(jí)通知服務(wù)160
7.5.1 接口說明160
7.5.2 創(chuàng)建NotificationSlot162
7.5.3 發(fā)布通知163
7.5.4 取消通知164
7.6 實(shí)戰(zhàn):通知發(fā)布與取消164
7.6.1 修改ability_main.xml164
7.6.2 修改MainAbilitySlice165
7.7 實(shí)戰(zhàn):Stage模型的訂閱、發(fā)布、取消公共事件168
7.7.1 添加按鈕168
7.7.2 添加Text顯示接收的事件169
7.7.3 設(shè)置按鈕的點(diǎn)擊事件方法169
7.7.4 運(yùn)行171
第8章 用ArkUI開發(fā)UI
8.1 ArkUI概述173
8.1.1 ArkUI基本概念173
8.1.2 ArkUI主要特征174
8.1.3 JS、TS、ArkTS、ArkUI、ArkCompiler之間的聯(lián)系174
8.2 聲明式開發(fā)范式175
8.2.1 聲明式開發(fā)范式與類Web開發(fā)
范式175
8.2.2 聲明式開發(fā)范式的基礎(chǔ)能力176
8.2.3 聲明式開發(fā)范式的整體架構(gòu)176
8.2.4 聲明式開發(fā)范式的基本組成177
8.3 常用組件177
8.4 基礎(chǔ)組件詳解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 自適應(yīng)布局238
8.9.2 響應(yīng)式布局240
8.10 實(shí)戰(zhàn):使用ArkUI實(shí)現(xiàn)“登錄”
界面240
8.10.1 使用Column容器實(shí)現(xiàn)整體
布局240
8.10.2 使用Image組件實(shí)現(xiàn)標(biāo)志展示241
8.10.3 使用TextInput組件實(shí)現(xiàn)賬號(hào)密碼的輸入241
8.10.4 使用Button組件實(shí)現(xiàn)登錄按鈕242
8.10.5 使用Text組件實(shí)現(xiàn)注冊(cè)按鈕242
8.10.6 完整代碼242
8.11 實(shí)戰(zhàn):使用ArkUI實(shí)現(xiàn)“計(jì)算器”244
8.11.1 新增Calculator.ets文件244
8.11.2 實(shí)現(xiàn)遞歸運(yùn)算244
8.11.3 實(shí)現(xiàn)輸入字符串轉(zhuǎn)為字符串
數(shù)組246
8.11.4 新增CalculatorButtonInfo.ets文件247
8.11.5 實(shí)現(xiàn)CalculatorButton組件247
8.11.6 構(gòu)造整體頁(yè)面249
8.11.7 運(yùn)行250
第9章 用Java開發(fā)UI
9.1 用Java開發(fā)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 實(shí)戰(zhàn):通過XML創(chuàng)建布局255
9.3.1 理解XML布局文件255
9.3.2 創(chuàng)建XML布局文件256
9.3.3 加載XML布局257
9.3.4 顯示XML布局258
9.4 實(shí)戰(zhàn):通過Java創(chuàng)建布局259
9.4.1 新建AbilitySlice259
9.4.2 創(chuàng)建布局260
9.4.3 在布局中添加組件261
9.4.4 顯示布局262
9.5 實(shí)戰(zhàn):常用顯示類組件——Text262
9.5.1 設(shè)置背景262
9.5.2 設(shè)置字體大小和顏色264
9.5.3 設(shè)置字體風(fēng)格和字重264
9.5.4 設(shè)置文本對(duì)齊方式265
9.5.5 設(shè)置文本換行和最大顯示行數(shù)266
9.5.6 設(shè)置自動(dòng)調(diào)節(jié)字體大小267
9.5.7 實(shí)現(xiàn)跑馬燈效果269
9.5.8 場(chǎng)景示例270
9.6 實(shí)戰(zhàn):常用顯示類組件——
Image272
9.6.1 創(chuàng)建Image272
9.6.2 設(shè)置透明度273
9.6.3 設(shè)置縮放系數(shù)274
9.7 實(shí)戰(zhàn):常用顯示類組件——ProgressBar275
9.7.1 創(chuàng)建ProgressBar275
9.7.2 設(shè)置方向275
9.7.3 設(shè)置顏色276
9.7.4 設(shè)置提示文字277
9.8 實(shí)戰(zhàn):常用交互類組件——
Button278
9.8.1 創(chuàng)建Button278
9.8.2 設(shè)置點(diǎn)擊事件280
9.8.3 設(shè)置橢圓按鈕282
9.8.4 設(shè)置圓形按鈕283
9.9 實(shí)戰(zhàn):常用交互類組件——TextField288
9.9.1 創(chuàng)建TextField288
9.9.2 設(shè)置多行顯示289
9.9.3 場(chǎng)景示例290
9.10 實(shí)戰(zhàn):常用交互類組件——Checkbox291
9.10.1 創(chuàng)建Checkbox292
9.10.2 設(shè)置選中和取消選中時(shí)的顏色292
9.11 實(shí)戰(zhàn):常用交互類組件——RadioButton/RadioContainer293
9.11.1 創(chuàng)建RadioButton/RadioContainer293
9.11.2 設(shè)置顯示單選結(jié)果295
9.12 實(shí)戰(zhàn):常用交互類組件——
Switch298
9.12.1 創(chuàng)建Switch298
9.12.2 設(shè)置文本299
9.13 實(shí)戰(zhàn):常用交互類組件——ScrollView299
9.13.1 創(chuàng)建ScrollView300
9.13.2 配置Text顯示的內(nèi)容300
9.14 實(shí)戰(zhàn):常用交互類組件——
Tab/TabList301
9.14.1 創(chuàng)建TabList302
9.14.2 響應(yīng)焦點(diǎn)變化304
9.15 實(shí)戰(zhàn):常用交互類組件——Picker305
9.15.1 創(chuàng)建Picker305
9.15.2 格式化Picker的顯示306
9.15.3 日期滑動(dòng)選擇器DatePicker307
9.15.4 時(shí)間滑動(dòng)選擇器TimePicker308
9.16 實(shí)戰(zhàn):常用交互類組件——ListContainer309
9.16.1 創(chuàng)建ListContainer309
9.16.2 創(chuàng)建ListContainer子布局309
9.16.3 創(chuàng)建ListContainer數(shù)據(jù)
包裝類310
9.16.4 創(chuàng)建ListContainer數(shù)據(jù)
提供者310
9.16.5 修改MainAbilitySlice312
9.17 實(shí)戰(zhàn):常用交互類組件——RoundProgressBar313
9.17.1 創(chuàng)建RoundProgressBar313
9.17.2 設(shè)置開始和結(jié)束角度313
9.18 實(shí)戰(zhàn):常用布局——DirectionalLayout314
9.18.1 創(chuàng)建DirectionalLayout315
9.18.2 設(shè)置水平排列316
9.18.3 設(shè)置權(quán)重317
9.19 實(shí)戰(zhàn):常用交互類組件——DependentLayout318
9.19.1 創(chuàng)建DependentLayout319
9.19.2 相對(duì)于同級(jí)組件320
9.19.3 相對(duì)于父組件320
9.19.4 場(chǎng)景示例320
9.20 實(shí)戰(zhàn):常用交互類組件——StackLayout322
9.21 實(shí)戰(zhàn):常用交互類組件——TableLayout323
第10章 設(shè)備管理
10.1 設(shè)備管理概述327
10.1.1 傳感器327
10.1.2 控制類小器件328
10.1.3 位置329
10.2 實(shí)戰(zhàn):傳感器示例330
10.2.1 接口說明330
10.2.2 創(chuàng)建應(yīng)用330
10.2.3 修改ability_main.xml330
10.2.4 修改MainAbilitySlice331
10.2.5 運(yùn)行334
10.3 實(shí)戰(zhàn):Light示例336
10.3.1 接口說明336
10.3.2 創(chuàng)建應(yīng)用336
10.3.3 修改ability_main.xml336
10.3.4 修改MainAbilitySlice337
10.3.5 運(yùn)行340
10.4 實(shí)戰(zhàn):獲取設(shè)備的位置340
10.4.1 接口說明341
10.4.2 創(chuàng)建應(yīng)用341
10.4.3 聲明權(quán)限341
10.4.4 修改ability_main.xml342
10.4.5 修改MainAbilitySlice343
10.4.6 運(yùn)行346
10.5 實(shí)戰(zhàn):(逆)地理編碼轉(zhuǎn)化347
10.5.1 接口說明347
10.5.2 創(chuàng)建應(yīng)用347
10.5.3 修改ability_main.xml348
10.5.4 修改MainAbilitySlice348
10.5.5 運(yùn)行351
第11章 數(shù)據(jù)管理
11.1 數(shù)據(jù)管理概述353
11.2 關(guān)系型數(shù)據(jù)庫(kù)353
11.2.1 基本概念354
11.2.2 運(yùn)作機(jī)制354
11.2.3 默認(rèn)配置354
11.2.4 約束與限制354
11.2.5 接口說明355
11.2.6 開發(fā)過程357
11.3 對(duì)象關(guān)系映射數(shù)據(jù)庫(kù)358
11.3.1 基本概念359
11.3.2 運(yùn)作機(jī)制359
11.3.3 實(shí)體對(duì)象屬性支持的類型360
11.3.4 接口說明360
11.4 實(shí)戰(zhàn):使用對(duì)象關(guān)系映射數(shù)據(jù)庫(kù)362
11.4.1 修改build.gradle362
11.4.2 新增User363
11.4.3 新增UserStore364
11.4.4 創(chuàng)建DataAbility365
11.4.5 初始化數(shù)據(jù)庫(kù)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 運(yùn)行375
11.5 輕量級(jí)偏好數(shù)據(jù)庫(kù)377
11.5.1 基本概念377
11.5.2 運(yùn)作機(jī)制377
11.5.3 約束與限制378
11.5.4 接口說明378
11.6 實(shí)戰(zhàn):使用輕量級(jí)偏好數(shù)據(jù)庫(kù)379
11.6.1 修改ability_main.xml379
11.6.2 修改MainAbilitySlice381
11.6.3 運(yùn)行385
11.7 數(shù)據(jù)存儲(chǔ)管理386
11.7.1 基本概念386
11.7.2 運(yùn)作機(jī)制387
11.7.3 接口說明387
11.8 實(shí)戰(zhàn):使用數(shù)據(jù)存儲(chǔ)管理388
11.8.1 修改ability_main.xml388
11.8.2 修改MainAbilitySlice389
11.8.3 運(yùn)行391
11.9 實(shí)戰(zhàn):Stage模型的關(guān)系型數(shù)據(jù)庫(kù)開發(fā)391
11.9.1 操作RdbStore391
11.9.2 賬目信息的表示394
11.9.3 操作賬目信息表394
11.9.4 設(shè)計(jì)界面397
11.9.5 運(yùn)行399
11.10 實(shí)戰(zhàn):Stage模型的首選項(xiàng)開發(fā)399
11.10.1 操作Preferences400
11.10.2 賬目信息的表示401
11.10.3 設(shè)計(jì)界面402
11.10.4 運(yùn)行404
第12章 線程管理
12.1 線程管理概述406
12.2 場(chǎng)景介紹406
12.2.1 傳統(tǒng)Java多線程管理406
12.2.2 HarmonyOS多線程管理408
12.3 接口說明408
12.3.1 GlobalTaskDispatcher409
12.3.2 ParallelTaskDispatcher409
12.3.3 SerialTaskDispatcher409
12.3.4 SpecTaskDispatcher410
12.4 實(shí)戰(zhàn):線程管理示例410
12.4.1 修改ability_main.xml410
12.4.2 自定義任務(wù)411
12.4.3 執(zhí)行任務(wù)派發(fā)412
12.4.4 運(yùn)行414
12.5 線程間通信概述414
12.5.1 基本概念415
12.5.2 運(yùn)作機(jī)制415
12.5.3 約束限制416
12.6 實(shí)戰(zhàn):線程間通信示例416
12.6.1 修改ability_main.xml416
12.6.2 自定義事件處理器417
12.6.3 執(zhí)行事件發(fā)送418
12.6.4 運(yùn)行420
第13章 視頻
13.1 視頻概述422
13.2 實(shí)戰(zhàn):媒體編解碼能力查詢422
13.2.1 接口說明422
13.2.2 創(chuàng)建應(yīng)用422
13.2.3 修改ability_main.xml423
13.2.4 修改MainAbilitySlice423
13.2.5 運(yùn)行425
13.3 實(shí)戰(zhàn):視頻編解碼425
13.3.1 接口說明425
13.3.2 創(chuàng)建應(yīng)用426
13.3.3 修改ability_main.xml426
13.3.4 修改MainAbilitySlice427
13.4 實(shí)戰(zhàn):視頻播放431
13.4.1 接口說明431
13.4.2 創(chuàng)建應(yīng)用432
13.4.3 修改ability_main.xml432
13.4.4 修改MainAbilitySlice433
13.4.5 運(yùn)行438
13.5 實(shí)戰(zhàn):視頻錄制438
13.5.1 接口說明438
13.5.2 創(chuàng)建應(yīng)用439
13.5.3 修改ability_main.xml439
13.5.4 修改MainAbilitySlice440
13.5.5 運(yùn)行443
13.6 Stage模型的視頻開發(fā)443
13.6.1 視頻開發(fā)指導(dǎo)443
13.6.2 視頻開發(fā)步驟444
13.7 實(shí)戰(zhàn):實(shí)現(xiàn)Stage模型的視頻
播放器447
13.7.1 獲取本地視頻448
13.7.2 視頻播放控制452
13.7.3 創(chuàng)建播放器界面456
13.7.4 運(yùn)行462
第14章 圖像
14.1 圖像概述464
14.1.1 基本概念464
14.1.2 約束與限制464
14.2 實(shí)戰(zhàn):圖像解碼和編碼464
14.2.1 接口說明464
14.2.2 創(chuàng)建應(yīng)用465
14.2.3 修改ability_main.xml465
14.2.4 修改MainAbilitySlice467
14.2.5 解碼操作說明470
14.2.6 編碼操作說明471
14.3 實(shí)戰(zhàn):位圖操作471
14.3.1 接口說明471
14.3.2 創(chuàng)建應(yīng)用472
14.3.3 修改ability_main.xml473
14.3.4 修改MainAbilitySlice473
14.3.5 創(chuàng)建PixelMap操作說明475
14.3.6 從位圖對(duì)象中獲取信息操作
說明475
14.3.7 讀取和寫入像素操作說明476
14.4 實(shí)戰(zhàn):圖像屬性解碼477
14.4.1 接口說明477
14.4.2 創(chuàng)建應(yīng)用477
14.4.3 修改ability_main.xml478
14.4.4 修改MainAbilitySlice478
14.4.5 運(yùn)行481
14.5 實(shí)現(xiàn)Stage模型的圖片開發(fā)481
14.5.1 圖片開發(fā)基本概念481
14.5.2 圖片開發(fā)主要流程482
14.5.3 圖片解碼482
14.5.4 圖像變換484
14.5.5 位圖操作486
14.5.6 圖片編碼487
14.5.7 圖片工具488
第15章 網(wǎng)絡(luò)管理
15.1 網(wǎng)絡(luò)管理概述491
15.1.1 支持的場(chǎng)景491
15.1.2 約束與限制491
15.2 實(shí)戰(zhàn):使用當(dāng)前網(wǎng)絡(luò)打開一個(gè)URL鏈接491
15.2.1 接口說明491
15.2.2 創(chuàng)建應(yīng)用492
15.2.3 聲明權(quán)限492
15.2.4 修改ability_main.xml492
15.2.5 修改MainAbilitySlice493
15.2.6 運(yùn)行497
15.3 實(shí)戰(zhàn):使用當(dāng)前網(wǎng)絡(luò)進(jìn)行Socket數(shù)據(jù)傳輸497
15.3.1 接口說明497
15.3.2 創(chuàng)建應(yīng)用498
15.3.3 聲明權(quán)限498
15.3.4 修改ability_main.xml498
15.3.5 修改MainAbilitySlice499
15.3.6 運(yùn)行503
15.4 實(shí)戰(zhàn):流量統(tǒng)計(jì)504
15.4.1 接口說明504
15.4.2 創(chuàng)建應(yīng)用504
15.4.3 聲明權(quán)限504
15.4.4 修改ability_main.xml505
15.4.5 修改MainAbilitySlice506
15.4.6 運(yùn)行509
15.5 實(shí)戰(zhàn):在Stage模型中通過HTTP請(qǐng)求數(shù)據(jù)509
15.5.1 準(zhǔn)備一個(gè)HTTP服務(wù)接口510
15.5.2 添加使用Button組件來(lái)觸發(fā)
點(diǎn)擊510
15.5.3 發(fā)起HTTP請(qǐng)求510
15.5.4 聲明權(quán)限512
15.5.5 運(yùn)行512
15.6 Web組件概述512
15.6.1 加載本地網(wǎng)頁(yè)512
15.6.2 加載在線網(wǎng)頁(yè)513
15.6.3 加載沙箱路徑下的本地資源
文件513
15.6.4 網(wǎng)頁(yè)縮放514
15.6.5 文本縮放515
15.6.6 Web組件事件515
15.6.7 Web和JavaScript交互515
15.6.8 處理頁(yè)面導(dǎo)航518
15.7 實(shí)戰(zhàn):在Stage模型中通過Web組件
加載在線網(wǎng)頁(yè)518
15.7.1 準(zhǔn)備一個(gè)在線網(wǎng)頁(yè)地址519
15.7.2 聲明網(wǎng)絡(luò)訪問權(quán)限519
15.7.3 發(fā)起HTTP請(qǐng)求520
15.7.4 運(yùn)行520
第16章 綜合案例1:JS實(shí)現(xiàn)智能穿戴應(yīng)用
16.1 案例概述522
16.1.1 傳統(tǒng)華容道游戲522
16.1.2 數(shù)字華容道游戲522
16.2 代碼實(shí)現(xiàn)523
16.2.1 技術(shù)重點(diǎn)523
16.2.2 整體布局523
16.2.3 整體樣式524
16.2.4 游戲核心邏輯525
16.3 應(yīng)用運(yùn)行530
第17章 綜合案例2:Java實(shí)現(xiàn)智慧屏應(yīng)用
17.1 案例概述532
17.2 代碼實(shí)現(xiàn)532
17.2.1 技術(shù)重點(diǎn)532
17.2.2 創(chuàng)建應(yīng)用532
17.2.3 設(shè)置布局533
17.2.4 設(shè)置全屏535
17.2.5 應(yīng)用的主體邏輯536
17.2.6 初始化視頻數(shù)據(jù)540
17.2.7 播放、暫停視頻541
17.3 應(yīng)用運(yùn)行544
第18章 綜合案例3:Java實(shí)現(xiàn)手機(jī)應(yīng)用
18.1 案例概述546
18.1.1 俄羅斯方塊游戲概述546
18.1.2 俄羅斯方塊游戲規(guī)則546
18.2 代碼實(shí)現(xiàn)546
18.2.1 技術(shù)重點(diǎn)547
18.2.2 設(shè)置布局547
18.2.3 設(shè)置全屏550
18.2.4 應(yīng)用的主體邏輯551
18.2.5 初始化游戲553
18.2.6 創(chuàng)建網(wǎng)格數(shù)據(jù)554
18.2.7 繪制網(wǎng)格560
18.2.8 啟動(dòng)游戲562
18.2.9 左移操作564
18.2.10 右移操作565
18.2.11 轉(zhuǎn)換操作567
18.2.12 重置操作570
18.3 應(yīng)用運(yùn)行570
第19章 綜合案例4:ArkTS實(shí)現(xiàn)手機(jī)應(yīng)用
19.1 仿微信應(yīng)用概述572
19.1.1 “微信”頁(yè)面572
19.1.2 “聯(lián)系人”頁(yè)面572
19.1.3 “發(fā)現(xiàn)”頁(yè)面572
19.1.4 “我”頁(yè)面573
19.2 實(shí)戰(zhàn):“微信”頁(yè)面573
19.2.1 創(chuàng)建“微信”頁(yè)面ChatPage573
19.2.2 定義聯(lián)系人Person574
19.2.3 定義聯(lián)系人數(shù)據(jù)574
19.2.4 定義樣式575
19.3 實(shí)戰(zhàn):“聯(lián)系人”頁(yè)面577
19.3.1 創(chuàng)建“聯(lián)系人”頁(yè)面ContactPage577
19.3.2 定義樣式578
19.4 實(shí)戰(zhàn):“發(fā)現(xiàn)”頁(yè)面579
19.4.1 創(chuàng)建“發(fā)現(xiàn)”頁(yè)面DiscoveryPage579
19.4.2 定義樣式580
19.5 實(shí)戰(zhàn):“我”頁(yè)面582
19.6 實(shí)戰(zhàn):組裝所有頁(yè)面583
19.6.1 將Tabs組件作為導(dǎo)航欄583
19.6.2 使用Swiper組件實(shí)現(xiàn)頁(yè)面
滑動(dòng)585
附錄 本書第1版與第2版的差異對(duì)比586
你還可能感興趣
我要評(píng)論
|