黨的二十大報(bào)告中指出: 教育、科技、人才是全面建設(shè)社會(huì)主義現(xiàn)代化國(guó)家的基礎(chǔ)性、戰(zhàn)略性支撐。必須堅(jiān)持科技是第一生產(chǎn)力、人才是第一資源、創(chuàng)新是第一動(dòng)力,深入實(shí)施科教興國(guó)戰(zhàn)略、人才強(qiáng)國(guó)戰(zhàn)略、創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略,這三大戰(zhàn)略共同服務(wù)于創(chuàng)新型國(guó)家的建設(shè)。高等教育與經(jīng)濟(jì)社會(huì)發(fā)展緊密相連,對(duì)促進(jìn)就業(yè)創(chuàng)業(yè)、助力經(jīng)濟(jì)社會(huì)發(fā)展、增進(jìn)人民福祉具有重要意義。
鴻蒙操作系統(tǒng)(HarmonyOS)自2019年被中國(guó)華為公司發(fā)布以來(lái),一直受到了廣泛關(guān)注。HarmonyOS的誕生恰逢我國(guó)近年來(lái)在高精尖及基礎(chǔ)領(lǐng)域受到國(guó)外擠壓的關(guān)鍵時(shí)期,其發(fā)布對(duì)我國(guó)操作系統(tǒng)國(guó)產(chǎn)化具有戰(zhàn)略意義。
HarmonyOS是一款面向全場(chǎng)景智慧生活方式的分布式操作系統(tǒng),是一個(gè)可以進(jìn)行部署移動(dòng)辦公、運(yùn)動(dòng)健康、社交通信、媒體娛樂(lè)等各種場(chǎng)景應(yīng)用的操作系統(tǒng)。HarmonyOS具有硬件互助、資源共享,一次開(kāi)發(fā)、多端部署,統(tǒng)一OS、彈性部署等諸多優(yōu)點(diǎn),勢(shì)必會(huì)成為萬(wàn)物互聯(lián)時(shí)代的新寵。
目前,基于HarmonyOS開(kāi)發(fā)SDK已經(jīng)發(fā)布到了第9版,并還在不斷完善中。華為公司在更新SDK的同時(shí),也在不斷完善相關(guān)的開(kāi)發(fā)工具鏈,包括集成開(kāi)發(fā)環(huán)境、模擬器、預(yù)覽器等,不斷為開(kāi)發(fā)者提供功能更加強(qiáng)大、體驗(yàn)更加友好的開(kāi)發(fā)支持。
本書(shū)系統(tǒng)闡述了HarmonyOS移動(dòng)應(yīng)用開(kāi)發(fā)的相關(guān)技術(shù),并附有豐富的案例,可以幫助開(kāi)發(fā)者掌握鴻蒙移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù),快速進(jìn)入鴻蒙移動(dòng)應(yīng)用開(kāi)發(fā)領(lǐng)域。
本書(shū)中的程序?qū)崿F(xiàn)是基于ArkTS語(yǔ)言的,ArkTS是基于TypeScript語(yǔ)言的,而TypeScript語(yǔ)言又是JavaScript語(yǔ)言的超集。本書(shū)適合具有一定的相關(guān)語(yǔ)言基礎(chǔ)的讀者,適合具有一定計(jì)算機(jī)或軟件開(kāi)發(fā)基礎(chǔ)的大學(xué)生或軟件開(kāi)發(fā)者。
本書(shū)主要內(nèi)容
第1章概述,主要介紹了什么是HarmonyOS,HarmonyOS的特性、體系架構(gòu)、支持的開(kāi)發(fā)語(yǔ)言等,在應(yīng)用開(kāi)發(fā)方面,HarmonyOS支持多種開(kāi)發(fā)語(yǔ)言。
第2章介紹了第1個(gè)HarmonyOS應(yīng)用,通過(guò)搭建開(kāi)發(fā)環(huán)境、利用向?qū)ч_(kāi)發(fā)了第1個(gè)基于ArkTS的HarmonyOS應(yīng)用,介紹了鴻蒙應(yīng)用的項(xiàng)目結(jié)構(gòu)、資源和配置等。
第3章介紹了TypeScript語(yǔ)言基礎(chǔ),簡(jiǎn)明扼要地介紹了TypeScript語(yǔ)言的基本內(nèi)容,包括基本類型和運(yùn)算符、控制語(yǔ)句與函數(shù)、類和接口、模塊、裝飾器等。ArkTS是基于TypeScript的語(yǔ)言,因此開(kāi)發(fā)者需要具備一定的相關(guān)基礎(chǔ)。
第4章介紹了ArkUI開(kāi)發(fā)框架,包括聲明式開(kāi)發(fā)范式、基于ArkUI的項(xiàng)目結(jié)構(gòu)、聲明式語(yǔ)法等。ArkUI是基于ArkTS的UI開(kāi)發(fā)框架,是HarmonyOS應(yīng)用UI開(kāi)發(fā)的主要框架。
第5章介紹了組件,包括組件屬性、組件事件、狀態(tài)管理及系統(tǒng)內(nèi)置的組件等。組件是構(gòu)成界面的基本元素,應(yīng)用通過(guò)各種組件可構(gòu)造出豐富的界面內(nèi)容。
第6章介紹了布局和頁(yè)面跳轉(zhuǎn),布局方面介紹了一些常用布局用法及系統(tǒng)內(nèi)置布局簡(jiǎn)介、組件的生命周期等。布局是可以容納組件的組件,布局和組件構(gòu)成了頁(yè)面,頁(yè)面之間可以通過(guò)路由進(jìn)行跳轉(zhuǎn),頁(yè)面之間跳轉(zhuǎn)可以傳遞參數(shù)。
第7章概述了Ability,并介紹了FA模型下的PageAbility和Stage模型下的UIAbility,包括創(chuàng)建、啟動(dòng)和停止、生命周期等,本章還介紹了跨設(shè)備遷移。在HarmonyOS應(yīng)用中,Ability是能力的抽象,是系統(tǒng)的調(diào)度單元。
第8章介紹了服務(wù)和數(shù)據(jù)能力,介紹了服務(wù)的定義、生命周期、訪問(wèn)等,介紹了數(shù)據(jù)能力的創(chuàng)建和訪問(wèn)。服務(wù)是鴻蒙操作系統(tǒng)提供的后臺(tái)運(yùn)行的能力,數(shù)據(jù)能力可以使應(yīng)用進(jìn)行數(shù)據(jù)共享。
第9章介紹了數(shù)據(jù)存儲(chǔ),包括首選項(xiàng)數(shù)據(jù)存儲(chǔ)、關(guān)系數(shù)據(jù)存儲(chǔ)和分布式數(shù)據(jù)服務(wù)。數(shù)據(jù)存儲(chǔ)是為HarmonyOS應(yīng)用提供數(shù)據(jù)持久化,分布式數(shù)據(jù)服務(wù)使數(shù)據(jù)可以透明地存在于多個(gè)設(shè)備上,使應(yīng)用的數(shù)據(jù)能夠輕松地實(shí)現(xiàn)跨設(shè)備數(shù)據(jù)同步和共享。
第10章介紹了公共事件和通知,介紹了公共事件的概念、公共事件的處理接口及使用方法、通知的概念及使用方法。
第11章介紹了多媒體開(kāi)發(fā)相關(guān)技術(shù),包括圖像處理、音頻播放、視頻播放等,通過(guò)對(duì)多媒體數(shù)據(jù)的處理,可以使所開(kāi)發(fā)的應(yīng)用更加豐富多彩。
第12章介紹了網(wǎng)絡(luò)訪問(wèn),包括Socket、WebSocket和HTTP方式。HarmonyOS應(yīng)用可以通過(guò)網(wǎng)絡(luò)訪問(wèn)互聯(lián)網(wǎng)上的服務(wù)和數(shù)據(jù),打造互聯(lián)網(wǎng)應(yīng)用。
第13章介紹了一個(gè)天氣查詢的綜合應(yīng)用實(shí)例,通過(guò)綜合運(yùn)用相關(guān)技術(shù),呈現(xiàn)一個(gè)完整的HarmonyOS移動(dòng)應(yīng)用開(kāi)發(fā)方法和過(guò)程。
本書(shū)第1章、第2章、第6章、第7章、第8章、第9章由劉安戰(zhàn)(中原工學(xué)院)撰寫,第3章、第11章、第13章由余雨萍(中原工學(xué)院)撰寫,第4章、第5章由陳爭(zhēng)艷(河南財(cái)政金融學(xué)院)撰寫,第10章由張玉瑩(中原工學(xué)院)撰寫,第12章由馬超凡(中原工學(xué)院)撰寫,本書(shū)最后由劉安戰(zhàn)進(jìn)行了通篇審閱、修改和定稿。
閱讀建議
本書(shū)是一本鴻蒙應(yīng)用開(kāi)發(fā)的入門書(shū)籍,但是由于技術(shù)的依賴性,筆者認(rèn)為學(xué)習(xí)本書(shū)需要具備一定的軟件開(kāi)發(fā)基礎(chǔ)。
希望學(xué)習(xí)本書(shū)的讀者具備一定的JavaScript和JSON基礎(chǔ),以及一定的高級(jí)語(yǔ)言軟件開(kāi)發(fā)基礎(chǔ)。大學(xué)計(jì)算機(jī)或軟件相關(guān)專業(yè)的高年級(jí)學(xué)生一般均具備學(xué)習(xí)本書(shū)的能力。如果讀者具有移動(dòng)應(yīng)用開(kāi)發(fā)的相關(guān)經(jīng)驗(yàn),則學(xué)習(xí)本書(shū)會(huì)更加輕松和快捷。
本書(shū)資源
本書(shū)配套的源代碼及PPT資源可以通過(guò)掃描目錄上方的二維碼獲取。
致謝
首先感謝家人的支持,否則筆者可能無(wú)法完成本書(shū)。
感謝團(tuán)隊(duì)成員,是大家的通力合作和互相幫助才使我們能夠完成本書(shū)。感謝工作單位的領(lǐng)導(dǎo)和相關(guān)老師的支持和幫助。
感謝學(xué)生周鵬、丁毅露、韓磊、趙胡斐、趙月芽、朱美穎等參與代碼調(diào)試、資源整理等工作。
感謝華為公司的陶銘、譚景盟、周宣宣、王玉等在成書(shū)過(guò)程的支持及幫助,同時(shí)感謝華為公司一大批優(yōu)秀的工程師,如果沒(méi)有他們的努力,恐怕不會(huì)有HarmonyOS的蓬勃發(fā)展。在成書(shū)過(guò)程中我們參考了華為公司提供的在線官方技術(shù)文檔和相關(guān)示例。
感謝來(lái)自業(yè)內(nèi)的多位同仁在成書(shū)過(guò)程中的支持和幫助。感謝鴻蒙相關(guān)的技術(shù)社區(qū)提供的學(xué)習(xí)和交流平臺(tái),包括華為開(kāi)發(fā)者社區(qū)、51CTO開(kāi)源基礎(chǔ)軟件區(qū)等。
感謝清華大學(xué)出版社工作人員的辛勤工作,特別是趙佳霓編輯,從選題到出版過(guò)程中付出了很多辛勤的努力。
劉安戰(zhàn)
2023.5.16
第1章概述
1.1什么是HarmonyOS
1.2HarmonyOS的特性
1.2.1硬件互助,資源共享
1.2.2一次開(kāi)發(fā),多端部署
1.2.3統(tǒng)一操作系統(tǒng),彈性部署
1.3HarmonyOS體系架構(gòu)
1.3.1內(nèi)核層
1.3.2系統(tǒng)服務(wù)層
1.3.3框架層
1.3.4應(yīng)用層
1.4支持的開(kāi)發(fā)語(yǔ)言
小結(jié)
第2章第1個(gè)HarmonyOS應(yīng)用
2.1搭建開(kāi)發(fā)環(huán)境
2.1.1開(kāi)發(fā)環(huán)境介紹
2.1.2下載并安裝DevEco Studio
2.2開(kāi)發(fā)第1個(gè)HarmonyOS項(xiàng)目
2.2.1開(kāi)發(fā)上架應(yīng)用基本過(guò)程
2.2.2創(chuàng)建并運(yùn)行Hello World項(xiàng)目
2.2.3安裝配置SDK
2.2.4項(xiàng)目啟動(dòng)過(guò)程
2.3應(yīng)用項(xiàng)目結(jié)構(gòu)
2.3.1邏輯結(jié)構(gòu)
2.3.2目錄結(jié)構(gòu)
2.4資源和配置
2.4.1資源及引用
2.4.2配置文件
小結(jié)
第3章TypeScript基礎(chǔ)
3.1TypeScript語(yǔ)言簡(jiǎn)介
3.2TypeScript簡(jiǎn)單使用
3.3基本類型和運(yùn)算符
3.3.1數(shù)據(jù)類型
3.3.2運(yùn)算符
3.4控制語(yǔ)句和函數(shù)
3.4.1控制語(yǔ)句
3.4.2函數(shù)
3.5類和接口
3.5.1類和對(duì)象
3.5.2接口
3.6模塊
3.6.1模塊導(dǎo)出與導(dǎo)入
3.6.2CommonJS模塊用法
3.7裝飾器
小結(jié)
第4章ArkUI開(kāi)發(fā)框架
4.1概述
4.2聲明式開(kāi)發(fā)范式
4.3基于ArkUI的項(xiàng)目
4.3.1文件結(jié)構(gòu)
4.3.2資源
4.4聲明式語(yǔ)法
4.4.1UI描述規(guī)范
4.4.2組件化
4.4.3組件渲染控制語(yǔ)法
小結(jié)
第5章組件
5.1概述
5.2組件屬性
5.2.1通用屬性
5.2.2自定義屬性
5.3組件事件
5.3.1組件事件配置方式
5.3.2通用事件方法
5.4狀態(tài)管理
5.4.1狀態(tài)模型
5.4.2組件狀態(tài)
5.4.3應(yīng)用程序狀態(tài)
5.5系統(tǒng)內(nèi)置組件簡(jiǎn)介
小結(jié)
第6章布局和頁(yè)面跳轉(zhuǎn)
6.1布局
6.1.1布局概述
6.1.2常用布局
6.1.3系統(tǒng)內(nèi)置布局簡(jiǎn)介
6.2頁(yè)面跳轉(zhuǎn)
6.2.1導(dǎo)航容器組件跳轉(zhuǎn)
6.2.2路由方式跳轉(zhuǎn)
6.2.3頁(yè)面?zhèn)鬟f參數(shù)
6.3組件生命周期
6.4商品列表實(shí)例
6.4.1實(shí)例說(shuō)明
6.4.2實(shí)例實(shí)現(xiàn)
小結(jié)
第7章Ability
7.1Ability概述
7.2FA模型中的PageAbility
7.2.1PageAbility創(chuàng)建
7.2.2PageAbility的生命周期
7.2.3PageAbility調(diào)度及實(shí)例
7.3Stage模型中的UIAbility
7.3.1UIAbility創(chuàng)建
7.3.2UIAbility的生命周期
7.3.3UIAbility交互及實(shí)例
7.4跨設(shè)備遷移
小結(jié)
第8章服務(wù)和數(shù)據(jù)能力
8.1服務(wù)能力
8.1.1服務(wù)能力的定義
8.1.2服務(wù)生命周期
8.1.3命令訪問(wèn)服務(wù)
8.1.4連接訪問(wèn)服務(wù)
8.2數(shù)據(jù)能力
8.2.1數(shù)據(jù)能力概述
8.2.2數(shù)據(jù)能力創(chuàng)建和訪問(wèn)
8.2.3實(shí)例
小結(jié)
第9章數(shù)據(jù)存儲(chǔ)
9.1數(shù)據(jù)存儲(chǔ)概述
9.2首選項(xiàng)數(shù)據(jù)存儲(chǔ)
9.2.1首選項(xiàng)數(shù)據(jù)存儲(chǔ)介紹
9.2.2首選項(xiàng)數(shù)據(jù)存儲(chǔ)接口
9.2.3樣式信息設(shè)置實(shí)例
9.3關(guān)系數(shù)據(jù)存儲(chǔ)
9.3.1關(guān)系數(shù)據(jù)存儲(chǔ)介紹
9.3.2關(guān)系數(shù)據(jù)存儲(chǔ)接口
9.3.3用戶信息管理實(shí)例
9.4分布式數(shù)據(jù)服務(wù)
9.4.1分布式數(shù)據(jù)服務(wù)介紹
9.4.2分布式數(shù)據(jù)服務(wù)接口
9.4.3分布式日記實(shí)例
小結(jié)
第10章公共事件和通知
10.1公共事件
10.1.1公共事件服務(wù)
10.1.2公共事件處理接口
10.1.3發(fā)布公共事件
10.1.4訂閱公共事件
10.1.5取消訂閱公共事件
10.2通知
10.2.1通知接口
10.2.2開(kāi)發(fā)步驟
10.3后臺(tái)代理提醒
10.3.1后臺(tái)代理接口
10.3.2使用代理提醒
10.4實(shí)例
小結(jié)
第11章多媒體開(kāi)發(fā)
11.1概述
11.2圖像
11.2.1圖像開(kāi)發(fā)基礎(chǔ)
11.2.2圖像顯示接口
11.2.3圖片顯示實(shí)例
11.3音頻
11.3.1音頻開(kāi)發(fā)基礎(chǔ)
11.3.2音頻播放接口
11.3.3音頻播放實(shí)例
11.4視頻
11.4.1視頻開(kāi)發(fā)基礎(chǔ)
11.4.2視頻播放接口
11.4.3視頻播放實(shí)例
小結(jié)
第12章網(wǎng)絡(luò)訪問(wèn)
12.1概述
12.2網(wǎng)絡(luò)通信基礎(chǔ)
12.2.1Socket通信
12.2.2WebSocket通信
12.2.3HTTP通信
12.3網(wǎng)絡(luò)訪問(wèn)開(kāi)發(fā)
12.3.1Socket方式
12.3.2WebSocket方式
12.3.3HTTP方式及實(shí)例
小結(jié)
第13章天氣預(yù)報(bào)應(yīng)用實(shí)例
13.1系統(tǒng)功能
13.2系統(tǒng)設(shè)計(jì)
13.3系統(tǒng)實(shí)現(xiàn)
13.3.1項(xiàng)目說(shuō)明
13.3.2顯示層實(shí)現(xiàn)
13.3.3實(shí)體數(shù)據(jù)模型實(shí)現(xiàn)
13.3.4視圖數(shù)據(jù)模型實(shí)現(xiàn)
13.3.5工具層實(shí)現(xiàn)
13.3.6數(shù)據(jù)訪問(wèn)層實(shí)現(xiàn)
13.3.7業(yè)務(wù)邏輯層實(shí)現(xiàn)
13.3.8其他
小結(jié)
附錄A鴻蒙應(yīng)用真機(jī)調(diào)試
附錄B英文縮寫說(shuō)明
參考文獻(xiàn)