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