本書是系統(tǒng)地介紹鴻蒙應(yīng)用開發(fā)知識(shí)的圖書,較全面地介紹了鴻蒙應(yīng)用開發(fā)所涉及的知識(shí)點(diǎn),使用概念介紹、代碼編寫、代碼講解的模式,將所講的內(nèi)容通過(guò)小案例用由淺入深、分步拆解的方式進(jìn)行介紹,希望為你帶來(lái)更好的學(xué)習(xí)體驗(yàn)。
本書共分為9章。第1章介紹了HarmonyOS的特性、基礎(chǔ)知識(shí)及鴻蒙應(yīng)用如何在單機(jī)和多設(shè)備上運(yùn)行與調(diào)試。第2章和第8章介紹了鴻蒙應(yīng)用的布局與組件。第3章~第7章介紹了鴻蒙應(yīng)用開發(fā)的各項(xiàng)知識(shí),包括Ability、分布式通信、數(shù)據(jù)管理、公共事件和通知、服務(wù)卡片。第9章介紹了鴻蒙應(yīng)用開發(fā)過(guò)程中的線程管理。
本書適合移動(dòng)終端應(yīng)用設(shè)計(jì)、開發(fā)工程師,以及對(duì)鴻蒙應(yīng)用開發(fā)感興趣或準(zhǔn)備從事相關(guān)行業(yè)的開發(fā)者及院校師生閱讀參考。
1.本書內(nèi)容豐富,針對(duì)HarmonyOS 2.0,全面地介紹了鴻蒙2.0應(yīng)用開發(fā)所涉及的知識(shí)點(diǎn),使用概念介紹、代碼編寫、代碼講解的模式,將所講的內(nèi)容通過(guò)小案例用由淺入深、分步拆解的方式進(jìn)行介紹,可以給你更好的學(xué)習(xí)體驗(yàn)。
2.作者權(quán)威,作者是華為認(rèn)證的HarmonyOS系統(tǒng)課程開發(fā)者、華為開發(fā)者專家
2019年10月,華為鴻蒙操作系統(tǒng)(HarmonyOS)正式發(fā)布1.0版本。它是一款面向萬(wàn)物互聯(lián)的全場(chǎng)景分布式操作系統(tǒng)。經(jīng)過(guò)短短兩年,HarmonyOS目前已經(jīng)運(yùn)行在2.2億部終端設(shè)備上,發(fā)展速度十分驚人,其巨大的商業(yè)價(jià)值逐漸被市場(chǎng)認(rèn)可。HarmonyOS可以非常方便地連接不同的設(shè)備,打破硬件之間的物理屏障,使不同的硬件設(shè)備之間可以便捷、迅速地進(jìn)行數(shù)據(jù)通信。目前,物聯(lián)網(wǎng)正從萬(wàn)物互聯(lián)階段進(jìn)入萬(wàn)物智聯(lián)階段,HarmonyOS可以作為這一階段的基礎(chǔ)設(shè)施。搭載了HarmonyOS的硬件設(shè)備,可以很自然地融入鴻蒙生態(tài)中。隨著設(shè)備數(shù)量的不斷增加,HarmonyOS的優(yōu)勢(shì)會(huì)更加明顯。
鴻蒙開發(fā)分為應(yīng)用開發(fā)和設(shè)備開發(fā),本書介紹的內(nèi)容是其中的應(yīng)用開發(fā),基于HarmonyOS的SDK和開發(fā)工具DevEco Studio來(lái)完成。鴻蒙應(yīng)用開發(fā)主要使用的編程語(yǔ)言為Java和JavaScript,并支持C/C 語(yǔ)言來(lái)做Native開發(fā)。不同語(yǔ)言之間可以混合使用,滿足了多種多樣的開發(fā)需求。本書使用Java語(yǔ)言進(jìn)行講解,系統(tǒng)地介紹鴻蒙應(yīng)用開發(fā)的基礎(chǔ)知識(shí),適合作為入門鴻蒙應(yīng)用開發(fā)的基礎(chǔ)教程。
本書是系統(tǒng)地介紹鴻蒙應(yīng)用開發(fā)知識(shí)的圖書,較全面地介紹了鴻蒙應(yīng)用開發(fā)所涉及的知識(shí)點(diǎn),使用概念介紹、代碼編寫、代碼講解的模式,將所講的內(nèi)容通過(guò)小案例用由淺入深、分步拆解的方式進(jìn)行介紹,希望為你帶來(lái)更好的學(xué)習(xí)體驗(yàn)。本書適合移動(dòng)終端應(yīng)用設(shè)計(jì)、開發(fā)工程師,以及對(duì)鴻蒙應(yīng)用開發(fā)感興趣或準(zhǔn)備從事相關(guān)行業(yè)的開發(fā)者及院校師生閱讀參考。
本書共分為9章。第1章介紹了HarmonyOS的特性、基礎(chǔ)知識(shí)及鴻蒙應(yīng)用如何在單機(jī)和多設(shè)備上運(yùn)行與調(diào)試。第2章和第8章介紹了鴻蒙應(yīng)用的布局與組件。通過(guò)學(xué)習(xí)第2章,你可以掌握不同布局方式適用的場(chǎng)景,了解應(yīng)用中各個(gè)組件的擺放是如何實(shí)現(xiàn)的和如何給組件加上豐富的樣式。第8章介紹了一些高級(jí)組件的使用方法,使用這些組件可以開發(fā)功能更為復(fù)雜的頁(yè)面。第3章~第7章介紹了鴻蒙應(yīng)用開發(fā)的各項(xiàng)知識(shí),包括Ability、分布式通信、數(shù)據(jù)管理、公共事件和通知、服務(wù)卡片。第9章介紹了鴻蒙應(yīng)用開發(fā)過(guò)程中的線程管理。
如果你是一名初學(xué)者,那么請(qǐng)?jiān)陂_始閱讀本書前,學(xué)習(xí)一些Java語(yǔ)言的基礎(chǔ)知識(shí)。如果你是一名有經(jīng)驗(yàn)的資深A(yù)ndroid移動(dòng)開發(fā)人員,那么可以將本書作為案頭參考資料,了解Android移動(dòng)開發(fā)和鴻蒙開發(fā)的共同點(diǎn)與區(qū)別,從而快速上手鴻蒙應(yīng)用開發(fā)。
需要說(shuō)明的是,由于HarmonyOS的SDK和開發(fā)工具DevEco Studio的版本不斷更新,本書中的部分內(nèi)容可能與的軟件頁(yè)面不一致,請(qǐng)你見諒,不過(guò)這不會(huì)影響本書的閱讀體驗(yàn)。
由于作者水平有限,編寫時(shí)間倉(cāng)促,雖然經(jīng)過(guò)多次勘誤,但是書中難免出現(xiàn)一些表述不準(zhǔn)確的地方,懇請(qǐng)你批評(píng)指正。
感謝你的支持,其實(shí)對(duì)于一門技術(shù)來(lái)講,需要介紹的內(nèi)容有很多,但是一本書的篇幅是有限的,能講到的重點(diǎn)也是有限的。我想介紹的內(nèi)容不限于此,希望以后可以繼續(xù)與你探討。
在本書的寫作過(guò)程中,得到了華為和51CTO鴻蒙社區(qū)的大力支持!特別感謝王雪燕、于小飛在本書寫作過(guò)程中提供的支持,感謝電子工業(yè)出版社博文視點(diǎn)公司的石悅老師在本書出版過(guò)程中的幫助。感謝我的博士生導(dǎo)師魯斌教授對(duì)我的支持。后,感謝我的家人的陪伴和支持。
希望本書能夠幫助到你,祝愿你在未來(lái)的學(xué)習(xí)道路上一切順利,旅途愉快。
后,借用華為消費(fèi)者業(yè)務(wù)品牌主題曲《我的夢(mèng)》中的一句歌詞與你共勉:
就讓光芒折射淚濕的瞳孔
映出心中想擁有的彩虹
帶我奔向那片有你的天空
因?yàn)槟闶俏业膲?mèng)
第1章 HarmonyOS開篇 | 1
1.1 HarmonyOS概述 | 1
1.1.1 HarmonyOS技術(shù)特性 | 2
1.1.2 HarmonyOS架構(gòu) | 5
1.2 HarmonyOS環(huán)境搭建 | 7
1.2.1 DevEco Studio安裝 | 7
1.2.2 SDK安裝 | 10
1.2.3 HDC工具配置 | 17
1.2.4 賬號(hào)注冊(cè)與實(shí)名認(rèn)證 | 21
1.3 HarmonyOS應(yīng)用程序知識(shí) | 25
1.3.1 App與HAP | 25
1.3.2 Ability概述 | 27
1.4 個(gè)程序:Hello World! | 27
1.4.1 創(chuàng)建項(xiàng)目 | 28
1.4.2 項(xiàng)目目錄 | 31
1.4.3 配置文件 | 34
1.4.4 模擬器運(yùn)行 | 36
1.4.5 應(yīng)用簽名與真機(jī)運(yùn)行 | 45
1.4.6 自動(dòng)簽名 | 56
1.4.7 應(yīng)用程序的斷點(diǎn)調(diào)試 | 58
1.4.8 HiLog日志 | 63
1.5 本章小結(jié) | 68
第2章 HarmonyOS頁(yè)面開發(fā) | 69
2.1 組件與組件容器 | 69
2.1.1 Component | 69
2.1.2 ComponentContainer | 70
2.1.3 開發(fā)用戶頁(yè)面的方式 | 71
2.1.4 邊距 | 72
2.2 常用布局 | 76
2.2.1 DirectionalLayout | 76
2.2.2 DependentLayout | 89
2.2.3 StackLayout | 95
2.2.4 TableLayout | 98
2.2.5 PositionLayout | 105
2.2.6 AdaptiveBoxLayout | 107
2.3 常用組件 | 110
2.3.1 Component | 110
2.3.2 Text和TextField | 112
2.3.3 Button | 118
2.3.4 RadioButton和RadioContainer | 122
2.3.5 Checkbox | 129
2.3.6 Image | 131
2.3.7 ProgressBar和RoundProgressBar | 136
2.3.8 ToastDialog | 140
2.4 常用的資源類型 | 143
2.4.1 資源目錄 | 144
2.4.2 資源文件的使用 | 145
2.4.3 限定詞目錄 | 153
2.4.4 樣式與樣式選擇 | 155
2.5 動(dòng)畫開發(fā) | 160
2.5.1 幀動(dòng)畫 | 160
2.5.2 數(shù)值動(dòng)畫 | 163
2.5.3 屬性動(dòng)畫 | 168
2.6 組件的事件監(jiān)聽 | 171
2.6.1 事件類別 | 171
2.6.2 事件監(jiān)聽的五種寫法 | 174
2.7 本章小結(jié) | 180
第3章 Ability開發(fā) | 181
3.1 Ability概述 | 181
3.2 Page Ability | 182
3.2.1 Page Ability的創(chuàng)建 | 183
3.2.2 Page Ability的生命周期 | 188
3.2.3 Page Ability的導(dǎo)航 | 191
3.3 Service Ability | 202
3.3.1 Service Ability的創(chuàng)建 | 203
3.3.2 Service Ability的生命周期 | 206
3.4 Ability屬性配置 | 215
3.4.1 Ability的配置文件 | 215
3.4.2 Ability的啟動(dòng)模式 | 218
3.5 Intent | 220
3.5.1 Intent對(duì)象的結(jié)構(gòu) | 220
3.5.2 Intent對(duì)象的操作 | 221
3.6 本章小結(jié) | 222
第4章 分布式通信 | 224
4.1 遠(yuǎn)程啟動(dòng)FA | 224
4.1.1 獲取遠(yuǎn)程設(shè)備的信息 | 225
4.1.2 啟動(dòng)FA | 231
4.2 應(yīng)用遷移 | 236
4.2.1 IAbilityContinuation接口 | 236
4.2.2 應(yīng)用遷移案例 | 239
4.2.3 IAbilityContinuation接口的其他回調(diào)方法 | 243
4.3 應(yīng)用回遷 | 246
4.4 跨設(shè)備啟動(dòng)服務(wù) | 248
4.5 跨設(shè)備連接服務(wù) | 252
4.6 跨設(shè)備服務(wù)調(diào)用 | 256
4.7 本章小結(jié) | 264
第5章 數(shù)據(jù)管理 | 266
5.1 本地?cái)?shù)據(jù)管理 | 266
5.1.1 關(guān)系型數(shù)據(jù)庫(kù)與SQLite | 266
5.1.2 關(guān)系型數(shù)據(jù)庫(kù)的操作 | 269
5.1.3 對(duì)象關(guān)系映射數(shù)據(jù)庫(kù) | 283
5.1.4 Preferences | 299
5.2 分布式數(shù)據(jù)管理 | 310
5.2.1 分布式數(shù)據(jù)服務(wù) | 310
5.2.2 分布式數(shù)據(jù)服務(wù)開發(fā) | 312
5.3 分布式文件服務(wù) | 326
5.3.1 分布式文件服務(wù)概述 | 326
5.3.2 分布式文件服務(wù)開發(fā) | 327
5.4 Data Ability | 334
5.4.1 Data Ability概述 | 334
5.4.2 Data Ability的創(chuàng)建 | 335
5.4.3 Data Ability的文件訪問(wèn) | 339
5.4.4 Data Ability的數(shù)據(jù)庫(kù)訪問(wèn) | 346
5.5 本章小節(jié) | 356
第6章 公共事件和通知 | 357
6.1 公共事件 | 358
6.1.1 公共事件發(fā)布 | 358
6.1.2 事件訂閱 | 365
6.1.3 公共事件退訂 | 370
6.2 通知 | 371
6.3 IntentAgent | 383
6.3.1 IntentAgent概述 | 383
6.3.2 IntentAgent開發(fā) | 384
6.4 本章小結(jié) | 391
第7章 服務(wù)卡片與原子化服務(wù) | 392
7.1 卡片 | 392
7.1.1 創(chuàng)建卡片 | 395
7.1.2 卡片的開發(fā) | 401
7.2 原子化服務(wù) | 418
7.2.1 原子化服務(wù)概述 | 418
7.2.2 原子化服務(wù)開發(fā) | 419
7.3 本章小結(jié) | 423
第8章 高級(jí)編程 | 424
8.1 ListContrainer | 424
8.1.1 ListContainer的使用 | 424
8.1.2 ListContainer中的事件方法 | 431
8.2 ScrollView | 433
8.2.1 ScrollView的使用 | 433
8.2.2 ScrollView中的事件方法 | 437
8.3 PageSlider與PageSliderIndicator | 440
8.3.1 PageSlider的使用 | 440
8.3.2 PageSlider中的方法 | 446
8.3.3 PageSliderIndicator的使用 | 449
8.3.4 PageSliderIndicator中的事件方法 | 455
8.4 WebView | 457
8.4.1 WebView的使用 | 457
8.4.2 WebView中的事件方法 | 459
8.5 Fraction | 472
8.5.1 Fraction概述 | 472
8.5.2 Fraction的使用 | 474
8.6 本章小結(jié) | 483
第9章 線程管理 | 484
9.1 線程管理開發(fā) | 484
9.1.1 線程優(yōu)先級(jí) | 485
9.1.2 TaskDispatcher開發(fā) | 485
9.2 線程間通信 | 498
9.2.1 EventHandler運(yùn)行機(jī)制 | 499
9.2.2 線程間通信相關(guān)的對(duì)象 | 500
9.2.3 線程間通信開發(fā) | 503
9.3 本章小結(jié) | 511