本書為HarmonyOS應(yīng)用程序開發(fā)入門書,以基礎(chǔ)知識和實例相結(jié)合的方式系統(tǒng)地介紹了HarmonyOS應(yīng)用程序開發(fā)的常用技術(shù)、相關(guān)經(jīng)驗和技巧等。
【本書共分為9章:】
第1章從宏觀的角度對HarmonyOS進(jìn)行簡要的介紹;
第2章詳細(xì)介紹了HarmonyOS移動應(yīng)用開發(fā)的入門知識;
第3章通過一個計算器案例詳細(xì)講解HarmonyOS App開發(fā)技能;
第4章通過一個通訊錄的案例進(jìn)一步學(xué)習(xí)了利用Java UI框架開發(fā)App的功能、線性布局和相對布局的混合使用,以及實現(xiàn)使用日志打印和Toast信息提示等功能;
第5章同樣也是一個通訊錄的案例,講解了利用JavaScript UI框架開發(fā)App的功能以及hml、css和js文件的編寫,并且著重講解了JavaScript開發(fā)的FA如何與Java開發(fā)的PA進(jìn)行數(shù)據(jù)交互,以及如何通過fetch模塊與服務(wù)端進(jìn)行HTTP網(wǎng)絡(luò)交互等內(nèi)容;
第6章通過一個相冊的案例,重點講解了HarmonyOS權(quán)限控制的概念和動態(tài)權(quán)限申請的使用流程,同時講解了如何讀取系統(tǒng)相冊數(shù)據(jù)庫中的數(shù)據(jù)并進(jìn)行UI渲染;
第7章通過一個封裝視頻播放器的案例,完整梳理了開發(fā)視頻播放功能的相關(guān)流程和知識點;
第8章講解了如何在真機(jī)下進(jìn)行應(yīng)用調(diào)試,以及分布式任務(wù)調(diào)度開發(fā)的流程、動態(tài)權(quán)限申請等內(nèi)容;
第9章介紹了一些常用的HarmonyOS第三方組件,包括UI布局類、控件封裝類、動畫播放類、音視頻處理類、開發(fā)框架類以及工具類等內(nèi)容。
【為什么要寫這本書】
2019年8月9日,華為在東莞舉行華為開發(fā)者大會,正式發(fā)布鴻蒙操作系統(tǒng)(HarmonyOS)且發(fā)布了智慧屏;2020年9月10日,華為HarmonyOS升級至HarmonyOS 2.0版本;2021年4月22日,HarmonyOS應(yīng)用開發(fā)在線體驗網(wǎng)站上線。
HarmonyOS的問世打破了操作系統(tǒng)的壟斷,拉開了永久性改變操作系統(tǒng)全球格局的序幕。我國的軟件行業(yè)枝繁葉茂,但沒有根,從HarmonyOS開始,我們將逐步構(gòu)建中國基礎(chǔ)軟件的根。
HarmonyOS同時具備分布式任務(wù)調(diào)度和分布式數(shù)據(jù)管理能力,它不再是簡單的移動操作系統(tǒng),而是一個全新的打破了開發(fā)界限的全場景分布式操作系統(tǒng)。HarmonyOS可以搭載在手機(jī)、智慧屏、車機(jī)以及各類物聯(lián)網(wǎng)設(shè)備上,同時可以做到有效協(xié)同,寄托了華為乃至整個業(yè)界對中國操作系統(tǒng)行業(yè)的希望。但生態(tài)構(gòu)建并非一朝一夕的事情,因此讓更多的開發(fā)者、生態(tài)鏈上下游的伙伴參與HarmonyOS生態(tài)圈的建設(shè),為HarmonyOS注入新生力量是非常有必要的。本書通過項目案例實戰(zhàn)的方式對HarmonyOS應(yīng)用開發(fā)相關(guān)知識進(jìn)行講解,旨在讓更多的人了解HarmonyOS應(yīng)用開發(fā)并參與到HarmonyOS生態(tài)圈的建設(shè)中。
【本書特色】
本書內(nèi)容基于HarmonyOS 2.0 Beta版。從技術(shù)層面上講,HarmonyOS目前可以使用Java和JavaScript兩種語言進(jìn)行應(yīng)用程序開發(fā)。使用Java語言時,其開發(fā)思路類似于Android應(yīng)用的開發(fā);而使用JavaScript語言時,其開發(fā)思路類似于微信小程序的開發(fā),因此,許多Android和微信小程序的開發(fā)者能夠迅速入門HarmonyOS應(yīng)用程序開發(fā)。在本書中,我們分別用Java和JavaScript兩種語言進(jìn)行應(yīng)用程序的案例開發(fā)演示。
本書定位為HarmonyOS應(yīng)用程序開發(fā)的入門圖書,以基礎(chǔ)知識和實例相結(jié)合的方式系統(tǒng)地介紹了HarmonyOS應(yīng)用程序開發(fā)的常用技術(shù)、相關(guān)經(jīng)驗和技巧等。相信通過對這些知識的學(xué)習(xí),讀者能夠獨立、完整地開發(fā)HarmonyOS應(yīng)用程序。
【讀者對象】
移動應(yīng)用設(shè)計、開發(fā)、測試工程師
小程序開發(fā)人員
HarmonyOS開發(fā)人員
其他對HarmonyOS開發(fā)技術(shù)感興趣的人員
【如何閱讀本書】
本書共分為9章。
第1章從宏觀的角度對HarmonyOS進(jìn)行簡要的介紹,包括HarmonyOS的發(fā)展歷程、設(shè)計理念、整體架構(gòu)、技術(shù)特性、應(yīng)用場景等內(nèi)容。
第2章詳細(xì)介紹了HarmonyOS移動應(yīng)用開發(fā)的入門知識,包括環(huán)境搭建等一些基礎(chǔ)的環(huán)境準(zhǔn)備工作、配置文件的使用等。
第3章通過一個計算器案例詳細(xì)講解HarmonyOS App開發(fā)技能。通過布局文件實現(xiàn)了一個復(fù)雜的UI頁面,同時能夠通過編寫相應(yīng)Java代碼控制相關(guān)UI組件和實現(xiàn)相應(yīng)的計算器邏輯。
第4章通過一個通訊錄的案例,進(jìn)一步學(xué)習(xí)了利用Java UI框架開發(fā)App的功能、線性布局和相對布局的混合使用、實現(xiàn)使用日志打印和Toast信息提示等功能。同時重點講解了列表組件的使用、數(shù)據(jù)交互等內(nèi)容。
第5章同樣也是一個通訊錄的案例,講解了如何利用JavaScript UI框架開發(fā)App以及hml、css和js文件的編寫,并且著重講解了JavaScript開發(fā)的FA如何與Java開發(fā)的PA之間進(jìn)行數(shù)據(jù)交互,以及如何通過fetch模塊與服務(wù)端進(jìn)行HTTP網(wǎng)絡(luò)交互等內(nèi)容。
第6章通過一個相冊的案例,重點講解了HarmonyOS權(quán)限控制的概念以及動態(tài)權(quán)限申請的使用流程,然后講解了如何讀取系統(tǒng)相冊數(shù)據(jù)庫中的數(shù)據(jù)并進(jìn)行UI渲染。
第7章通過一個封裝視頻播放器的案例,完整地梳理了開發(fā)視頻播放功能的相關(guān)流程和知識點,并講解了視頻播放相關(guān)API的使用,以及定時任務(wù)、子線程與UI線程通信、屬性動畫等知識點。
第8章講解了如何在真機(jī)下進(jìn)行應(yīng)用調(diào)試,以及分布式任務(wù)調(diào)度開發(fā)的流程,同時講解了如何在上一章播放器開發(fā)的基礎(chǔ)上進(jìn)一步開發(fā)分布式播放器,分布式播放器可以在多種搭載HarmonyOS的終端設(shè)備上進(jìn)行流轉(zhuǎn)。
第9章介紹了一些常用的HarmonyOS第三方組件,包括UI布局類、控件封裝類、動畫播放類、音視頻處理類、開發(fā)框架類以及工具類等內(nèi)容。
夏德旺
北京軟通動力教育科技有限公司首席架構(gòu)師,華為鯤鵬生態(tài)認(rèn)證講師;12年IT相關(guān)工作經(jīng)驗,擅長Java、Android、大數(shù)據(jù)等方向的授課及項目實訓(xùn);多年Java項目開發(fā)與架構(gòu)經(jīng)驗,4年Android操作系統(tǒng)層開發(fā)經(jīng)驗;精通華為IPD產(chǎn)品研發(fā)流程、項目管理各項活動 ,精通微服務(wù)架構(gòu)與Android系統(tǒng)架構(gòu);曾參與武漢理工大學(xué)、南京郵電大學(xué)、中南民族大學(xué)、重慶郵電大學(xué)等20余所高校的實訓(xùn)授課工作,并多次參與軟通集團(tuán)內(nèi)部員工技術(shù)能力提升培訓(xùn)工作。
代表軟通動力以隊長身份參加華為2020年數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)(鯤鵬)深圳創(chuàng)新大賽并獲得一等獎,以及中原鯤鵬訓(xùn)練營大賽的二等獎;擁有華為云MVP認(rèn)證、華為開發(fā)者專家HDE認(rèn)證、鯤鵬應(yīng)用開發(fā)者HCIA認(rèn)證、HCSI講師認(rèn)證。
謝立
浙江大學(xué)儀器科學(xué)與工程學(xué)系副教授,碩士研究生導(dǎo)師。工業(yè)控制技術(shù)國家重點實驗室、浙江省網(wǎng)絡(luò)多媒體技術(shù)研究重點實驗室固定研究成員,曾任中國人工智能學(xué)會青年工作委員會委員,現(xiàn)擔(dān)任全國智能建筑及居住區(qū)數(shù)字化標(biāo)準(zhǔn)化技術(shù)委員會委員、全國協(xié)作業(yè)務(wù)關(guān)系管理標(biāo)準(zhǔn)化技術(shù)委員會委員。參與或承擔(dān)國家、省部級等項目近20項,在國內(nèi)外學(xué)術(shù)刊物與會議發(fā)表論文60余篇,以發(fā)明人身份獲國家發(fā)明專利授權(quán)17項,獲得浙江省科學(xué)技術(shù)一等獎2次。
第1章 HarmonyOS簡介
1.1 HarmonyOS的發(fā)展歷程
1.2 HarmonyOS的設(shè)計理念
1.3 HarmonyOS的整體架構(gòu)
1.3.1 內(nèi)核層
1.3.2 系統(tǒng)服務(wù)層
1.3.3 框架層
1.3.4 應(yīng)用層
1.4 HarmonyOS的技術(shù)特性
1.4.1 分布式軟總線
1.4.2 分布式設(shè)備虛擬化
1.4.3 分布式數(shù)據(jù)管理
1.4.4 分布式任務(wù)調(diào)度
1.4.5 一次開發(fā),多端部署
1.4.6 統(tǒng)一OS,彈性部署
1.5 HarmonyOS的應(yīng)用場景
1.5.1 HarmonyOS不只是用于手機(jī)
1.5.2 HarmonyOS的典型應(yīng)用
1.6 小結(jié)
第2章 HarmonyOS應(yīng)用開發(fā)入門
2.1 開發(fā)環(huán)境準(zhǔn)備
2.1.1 開發(fā)環(huán)境的搭建流程
2.1.2 安裝Node.js
2.1.3 安裝和配置DevEco Studio
2.1.4 創(chuàng)建Hello World項目
2.2 開發(fā)基礎(chǔ)知識
2.2.1 應(yīng)用基礎(chǔ)知識
2.2.2 應(yīng)用配置文件
2.2.3 應(yīng)用資源文件
2.2.4 工程管理
2.3 小結(jié)
第3章 實戰(zhàn)項目一:計算器(Java UI)
3.1 UI效果圖與知識點41
3.2 核心概念
3.2.1 組件和布局
3.2.2 Component和ComponentContainer的介紹
3.2.3 Component和ComponentContainer的關(guān)系
3.2.4 常用布局介紹
3.3 項目開發(fā)準(zhǔn)備工作
3.3.1 新建工程和模塊
3.3.2 導(dǎo)入外部資源文件
3.4 編寫布局文件代碼
3.5 編寫計算器邏輯
3.6 小結(jié)
第4章 實戰(zhàn)項目二:本地通訊錄(Java UI)
4.1 UI效果圖與知識點61
4.2 開發(fā)準(zhǔn)備工作
4.3 聯(lián)系人列表頁面靜態(tài)數(shù)據(jù)呈現(xiàn)
4.4 自定義圓形圖片的實現(xiàn)
4.5 添加聯(lián)系人以及實時刷新聯(lián)系人列表
4.6 查看聯(lián)系人詳情
4.7 刪除聯(lián)系人
4.8 通過對接SQLite實現(xiàn)數(shù)據(jù)持久化
4.9 使用第三方開源庫實現(xiàn)彈出式菜單
4.10 通過HTTP網(wǎng)絡(luò)通信與服務(wù)端交互
4.11 自定義第三方組件庫
4.12 小結(jié)
第5章 實戰(zhàn)項目三:本地通訊錄(JS FA與Java PA交互版本)
5.1 UI效果圖與知識點130
5.2 開發(fā)準(zhǔn)備工作
5.3 聯(lián)系人列表頁面靜態(tài)數(shù)據(jù)呈現(xiàn)
5.4 打通FA和PA數(shù)據(jù)
5.5 添加彈出式菜單
5.6 添加聯(lián)系人
5.7 刪除聯(lián)系人
5.8 通過HTTP網(wǎng)絡(luò)通信與服務(wù)端交互(JS)
5.9 小結(jié)
第6章 實戰(zhàn)項目四:自定義相冊 (Java)
6.1 UI效果圖與知識點168
6.2 開發(fā)準(zhǔn)備工作
6.3 添加一個表格布局
6.4 動態(tài)權(quán)限申請
6.5 讀取系統(tǒng)相冊的數(shù)據(jù)并更新UI顯示
6.6 小結(jié)
第7章 實戰(zhàn)項目五:自定義視頻播放器(Java)
7.1 UI效果圖與知識點181
7.2 開發(fā)準(zhǔn)備工作
7.3 播放一個本地視頻
7.4 實現(xiàn)網(wǎng)絡(luò)視頻播放
7.5 添加自定義控制欄
7.6 實現(xiàn)控制欄顯示與隱藏的動態(tài)切換
7.7 實現(xiàn)帶動畫效果的加載等待框
7.8 實現(xiàn)視頻的播放和暫停功能
7.9 實現(xiàn)控制欄的全屏切換功能
7.10 實現(xiàn)視頻總時長與當(dāng)前播放時間實時顯示197
7.11 實現(xiàn)控制欄的播放進(jìn)度條的實時更新
7.12 實現(xiàn)視頻播放進(jìn)度跳轉(zhuǎn)
7.13 實現(xiàn)倍速播放的功能
7.14 小結(jié)
第8章 實戰(zhàn)項目六:分布式視頻播放器(Java)
8.1 UI效果圖與知識點202
8.2 開發(fā)準(zhǔn)備工作
8.3 真機(jī)調(diào)試
8.3.1 真機(jī)設(shè)備運行流程
8.3.2 生成密鑰和證書請求文件
8.3.3 創(chuàng)建AGC項目
8.3.4 創(chuàng)建HarmonyOS應(yīng)用
8.3.5 申請調(diào)試證書和Profile文件
8.3.6 配置簽名信息
8.3.7 在Phone或Tablet中運行應(yīng)用
8.4 分布式任務(wù)調(diào)度開發(fā)介紹
8.5 分布式任務(wù)調(diào)度開發(fā)測試預(yù)置條件
8.6 分布式視頻播放器開發(fā)權(quán)限配置
8.7 搜索并展示進(jìn)行分布式協(xié)同的設(shè)備列表
8.8 跨設(shè)備啟動FA并進(jìn)行數(shù)據(jù)交互236
8.9 小結(jié)
第9章 HarmonyOS常用第三方組件介紹
9.1 Glide組件開發(fā)指南
9.2 Lottie組件開發(fā)指南
9.3 FileUpDown組件開發(fā)指南
9.4 VideoCache組件開發(fā)指南
9.5 BottomNavigationBar組件開發(fā)指南