本書為HarmonyOS應(yīng)用程序開發(fā)入門書,以基礎(chǔ)知識(shí)和實(shí)例相結(jié)合的方式系統(tǒng)地介紹了HarmonyOS應(yīng)用程序開發(fā)的常用技術(shù)、相關(guān)經(jīng)驗(yàn)和技巧等。
【本書共分為9章:】
第1章從宏觀的角度對(duì)HarmonyOS進(jìn)行簡(jiǎn)要的介紹;
第2章詳細(xì)介紹了HarmonyOS移動(dòng)應(yīng)用開發(fā)的入門知識(shí);
第3章通過(guò)一個(gè)計(jì)算器案例詳細(xì)講解HarmonyOS App開發(fā)技能;
第4章通過(guò)一個(gè)通訊錄的案例進(jìn)一步學(xué)習(xí)了利用Java UI框架開發(fā)App的功能、線性布局和相對(duì)布局的混合使用,以及實(shí)現(xiàn)使用日志打印和Toast信息提示等功能;
第5章同樣也是一個(gè)通訊錄的案例,講解了利用JavaScript UI框架開發(fā)App的功能以及hml、css和js文件的編寫,并且著重講解了JavaScript開發(fā)的FA如何與Java開發(fā)的PA進(jìn)行數(shù)據(jù)交互,以及如何通過(guò)fetch模塊與服務(wù)端進(jìn)行HTTP網(wǎng)絡(luò)交互等內(nèi)容;
第6章通過(guò)一個(gè)相冊(cè)的案例,重點(diǎn)講解了HarmonyOS權(quán)限控制的概念和動(dòng)態(tài)權(quán)限申請(qǐng)的使用流程,同時(shí)講解了如何讀取系統(tǒng)相冊(cè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)并進(jìn)行UI渲染;
第7章通過(guò)一個(gè)封裝視頻播放器的案例,完整梳理了開發(fā)視頻播放功能的相關(guān)流程和知識(shí)點(diǎn);
第8章講解了如何在真機(jī)下進(jìn)行應(yīng)用調(diào)試,以及分布式任務(wù)調(diào)度開發(fā)的流程、動(dòng)態(tài)權(quán)限申請(qǐng)等內(nèi)容;
第9章介紹了一些常用的HarmonyOS第三方組件,包括UI布局類、控件封裝類、動(dòng)畫播放類、音視頻處理類、開發(fā)框架類以及工具類等內(nèi)容。
【為什么要寫這本書】
2019年8月9日,華為在東莞舉行華為開發(fā)者大會(huì),正式發(fā)布鴻蒙操作系統(tǒng)(HarmonyOS)且發(fā)布了智慧屏;2020年9月10日,華為HarmonyOS升級(jí)至HarmonyOS 2.0版本;2021年4月22日,HarmonyOS應(yīng)用開發(fā)在線體驗(yàn)網(wǎng)站上線。
HarmonyOS的問(wèn)世打破了操作系統(tǒng)的壟斷,拉開了永久性改變操作系統(tǒng)全球格局的序幕。我國(guó)的軟件行業(yè)枝繁葉茂,但沒(méi)有根,從HarmonyOS開始,我們將逐步構(gòu)建中國(guó)基礎(chǔ)軟件的根。
HarmonyOS同時(shí)具備分布式任務(wù)調(diào)度和分布式數(shù)據(jù)管理能力,它不再是簡(jiǎn)單的移動(dòng)操作系統(tǒng),而是一個(gè)全新的打破了開發(fā)界限的全場(chǎng)景分布式操作系統(tǒng)。HarmonyOS可以搭載在手機(jī)、智慧屏、車機(jī)以及各類物聯(lián)網(wǎng)設(shè)備上,同時(shí)可以做到有效協(xié)同,寄托了華為乃至整個(gè)業(yè)界對(duì)中國(guó)操作系統(tǒng)行業(yè)的希望。但生態(tài)構(gòu)建并非一朝一夕的事情,因此讓更多的開發(fā)者、生態(tài)鏈上下游的伙伴參與HarmonyOS生態(tài)圈的建設(shè),為HarmonyOS注入新生力量是非常有必要的。本書通過(guò)項(xiàng)目案例實(shí)戰(zhàn)的方式對(duì)HarmonyOS應(yīng)用開發(fā)相關(guān)知識(shí)進(jìn)行講解,旨在讓更多的人了解HarmonyOS應(yīng)用開發(fā)并參與到HarmonyOS生態(tài)圈的建設(shè)中。
【本書特色】
本書內(nèi)容基于HarmonyOS 2.0 Beta版。從技術(shù)層面上講,HarmonyOS目前可以使用Java和JavaScript兩種語(yǔ)言進(jìn)行應(yīng)用程序開發(fā)。使用Java語(yǔ)言時(shí),其開發(fā)思路類似于Android應(yīng)用的開發(fā);而使用JavaScript語(yǔ)言時(shí),其開發(fā)思路類似于微信小程序的開發(fā),因此,許多Android和微信小程序的開發(fā)者能夠迅速入門HarmonyOS應(yīng)用程序開發(fā)。在本書中,我們分別用Java和JavaScript兩種語(yǔ)言進(jìn)行應(yīng)用程序的案例開發(fā)演示。
本書定位為HarmonyOS應(yīng)用程序開發(fā)的入門圖書,以基礎(chǔ)知識(shí)和實(shí)例相結(jié)合的方式系統(tǒng)地介紹了HarmonyOS應(yīng)用程序開發(fā)的常用技術(shù)、相關(guān)經(jīng)驗(yàn)和技巧等。相信通過(guò)對(duì)這些知識(shí)的學(xué)習(xí),讀者能夠獨(dú)立、完整地開發(fā)HarmonyOS應(yīng)用程序。
【讀者對(duì)象】
移動(dòng)應(yīng)用設(shè)計(jì)、開發(fā)、測(cè)試工程師
小程序開發(fā)人員
HarmonyOS開發(fā)人員
其他對(duì)HarmonyOS開發(fā)技術(shù)感興趣的人員
【如何閱讀本書】
本書共分為9章。
第1章從宏觀的角度對(duì)HarmonyOS進(jìn)行簡(jiǎn)要的介紹,包括HarmonyOS的發(fā)展歷程、設(shè)計(jì)理念、整體架構(gòu)、技術(shù)特性、應(yīng)用場(chǎng)景等內(nèi)容。
第2章詳細(xì)介紹了HarmonyOS移動(dòng)應(yīng)用開發(fā)的入門知識(shí),包括環(huán)境搭建等一些基礎(chǔ)的環(huán)境準(zhǔn)備工作、配置文件的使用等。
第3章通過(guò)一個(gè)計(jì)算器案例詳細(xì)講解HarmonyOS App開發(fā)技能。通過(guò)布局文件實(shí)現(xiàn)了一個(gè)復(fù)雜的UI頁(yè)面,同時(shí)能夠通過(guò)編寫相應(yīng)Java代碼控制相關(guān)UI組件和實(shí)現(xiàn)相應(yīng)的計(jì)算器邏輯。
第4章通過(guò)一個(gè)通訊錄的案例,進(jìn)一步學(xué)習(xí)了利用Java UI框架開發(fā)App的功能、線性布局和相對(duì)布局的混合使用、實(shí)現(xiàn)使用日志打印和Toast信息提示等功能。同時(shí)重點(diǎn)講解了列表組件的使用、數(shù)據(jù)交互等內(nèi)容。
第5章同樣也是一個(gè)通訊錄的案例,講解了如何利用JavaScript UI框架開發(fā)App以及hml、css和js文件的編寫,并且著重講解了JavaScript開發(fā)的FA如何與Java開發(fā)的PA之間進(jìn)行數(shù)據(jù)交互,以及如何通過(guò)fetch模塊與服務(wù)端進(jìn)行HTTP網(wǎng)絡(luò)交互等內(nèi)容。
第6章通過(guò)一個(gè)相冊(cè)的案例,重點(diǎn)講解了HarmonyOS權(quán)限控制的概念以及動(dòng)態(tài)權(quán)限申請(qǐng)的使用流程,然后講解了如何讀取系統(tǒng)相冊(cè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)并進(jìn)行UI渲染。
第7章通過(guò)一個(gè)封裝視頻播放器的案例,完整地梳理了開發(fā)視頻播放功能的相關(guān)流程和知識(shí)點(diǎn),并講解了視頻播放相關(guān)API的使用,以及定時(shí)任務(wù)、子線程與UI線程通信、屬性動(dòng)畫等知識(shí)點(diǎn)。
第8章講解了如何在真機(jī)下進(jìn)行應(yīng)用調(diào)試,以及分布式任務(wù)調(diào)度開發(fā)的流程,同時(shí)講解了如何在上一章播放器開發(fā)的基礎(chǔ)上進(jìn)一步開發(fā)分布式播放器,分布式播放器可以在多種搭載HarmonyOS的終端設(shè)備上進(jìn)行流轉(zhuǎn)。
第9章介紹了一些常用的HarmonyOS第三方組件,包括UI布局類、控件封裝類、動(dòng)畫播放類、音視頻處理類、開發(fā)框架類以及工具類等內(nèi)容。
第1章 HarmonyOS簡(jiǎn)介
1.1 HarmonyOS的發(fā)展歷程
1.2 HarmonyOS的設(shè)計(jì)理念
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)用場(chǎ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項(xiàng)目
2.2 開發(fā)基礎(chǔ)知識(shí)
2.2.1 應(yīng)用基礎(chǔ)知識(shí)
2.2.2 應(yīng)用配置文件
2.2.3 應(yīng)用資源文件
2.2.4 工程管理
2.3 小結(jié)
第3章 實(shí)戰(zhàn)項(xiàng)目一:計(jì)算器(Java UI)
3.1 UI效果圖與知識(shí)點(diǎn)41
3.2 核心概念
3.2.1 組件和布局
3.2.2 Component和ComponentContainer的介紹
3.2.3 Component和ComponentContainer的關(guān)系
3.2.4 常用布局介紹
3.3 項(xiàng)目開發(fā)準(zhǔn)備工作
3.3.1 新建工程和模塊
3.3.2 導(dǎo)入外部資源文件
3.4 編寫布局文件代碼
3.5 編寫計(jì)算器邏輯
3.6 小結(jié)
第4章 實(shí)戰(zhàn)項(xiàng)目二:本地通訊錄(Java UI)
4.1 UI效果圖與知識(shí)點(diǎn)61
4.2 開發(fā)準(zhǔn)備工作
4.3 聯(lián)系人列表頁(yè)面靜態(tài)數(shù)據(jù)呈現(xiàn)
4.4 自定義圓形圖片的實(shí)現(xiàn)
4.5 添加聯(lián)系人以及實(shí)時(shí)刷新聯(lián)系人列表
4.6 查看聯(lián)系人詳情
4.7 刪除聯(lián)系人
4.8 通過(guò)對(duì)接SQLite實(shí)現(xiàn)數(shù)據(jù)持久化
4.9 使用第三方開源庫(kù)實(shí)現(xiàn)彈出式菜單
4.10 通過(guò)HTTP網(wǎng)絡(luò)通信與服務(wù)端交互
4.11 自定義第三方組件庫(kù)
4.12 小結(jié)
第5章 實(shí)戰(zhàn)項(xiàng)目三:本地通訊錄(JS FA與Java PA交互版本)
5.1 UI效果圖與知識(shí)點(diǎn)130
5.2 開發(fā)準(zhǔn)備工作
5.3 聯(lián)系人列表頁(yè)面靜態(tài)數(shù)據(jù)呈現(xiàn)
5.4 打通FA和PA數(shù)據(jù)
5.5 添加彈出式菜單
5.6 添加聯(lián)系人
5.7 刪除聯(lián)系人
5.8 通過(guò)HTTP網(wǎng)絡(luò)通信與服務(wù)端交互(JS)
5.9 小結(jié)
第6章 實(shí)戰(zhàn)項(xiàng)目四:自定義相冊(cè) (Java)
6.1 UI效果圖與知識(shí)點(diǎn)168
6.2 開發(fā)準(zhǔn)備工作
6.3 添加一個(gè)表格布局
6.4 動(dòng)態(tài)權(quán)限申請(qǐng)
6.5 讀取系統(tǒng)相冊(cè)的數(shù)據(jù)并更新UI顯示
6.6 小結(jié)
第7章 實(shí)戰(zhàn)項(xiàng)目五:自定義視頻播放器(Java)
7.1 UI效果圖與知識(shí)點(diǎn)181
7.2 開發(fā)準(zhǔn)備工作
7.3 播放一個(gè)本地視頻
7.4 實(shí)現(xiàn)網(wǎng)絡(luò)視頻播放
7.5 添加自定義控制欄
7.6 實(shí)現(xiàn)控制欄顯示與隱藏的動(dòng)態(tài)切換
7.7 實(shí)現(xiàn)帶動(dòng)畫效果的加載等待框
7.8 實(shí)現(xiàn)視頻的播放和暫停功能
7.9 實(shí)現(xiàn)控制欄的全屏切換功能
7.10 實(shí)現(xiàn)視頻總時(shí)長(zhǎng)與當(dāng)前播放時(shí)間實(shí)時(shí)顯示197
7.11 實(shí)現(xiàn)控制欄的播放進(jìn)度條的實(shí)時(shí)更新
7.12 實(shí)現(xiàn)視頻播放進(jìn)度跳轉(zhuǎn)
7.13 實(shí)現(xiàn)倍速播放的功能
7.14 小結(jié)
第8章 實(shí)戰(zhàn)項(xiàng)目六:分布式視頻播放器(Java)
8.1 UI效果圖與知識(shí)點(diǎn)202
8.2 開發(fā)準(zhǔn)備工作
8.3 真機(jī)調(diào)試
8.3.1 真機(jī)設(shè)備運(yùn)行流程
8.3.2 生成密鑰和證書請(qǐng)求文件
8.3.3 創(chuàng)建AGC項(xiàng)目
8.3.4 創(chuàng)建HarmonyOS應(yīng)用
8.3.5 申請(qǐng)調(diào)試證書和Profile文件
8.3.6 配置簽名信息
8.3.7 在Phone或Tablet中運(yùn)行應(yīng)用
8.4 分布式任務(wù)調(diào)度開發(fā)介紹
8.5 分布式任務(wù)調(diào)度開發(fā)測(cè)試預(yù)置條件
8.6 分布式視頻播放器開發(fā)權(quán)限配置
8.7 搜索并展示進(jìn)行分布式協(xié)同的設(shè)備列表
8.8 跨設(shè)備啟動(dòng)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ā)指南