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