本書系統(tǒng)全面地講解鴻蒙操作系統(tǒng)下的應(yīng)用開發(fā)所需基礎(chǔ)知識,并通過豐富的案例實踐提高應(yīng)用能力。 整本書共11章,第1章對鴻蒙操作系統(tǒng)進(jìn)行概述,并搭建應(yīng)用開發(fā)環(huán)境。第2~5 章分別講解了Java、JavaScript語言基礎(chǔ)及Java、JavaScript下的UI布局實現(xiàn)。第6章講解了鴻蒙輕量級智能穿戴設(shè)備的開發(fā)。第7章講解了應(yīng)用所具備能力Ability。第8章講解了本地應(yīng)用數(shù)據(jù)管理及分布式服務(wù)。第9章講解了包括圖像、相機及音視頻的多媒體功能。第10和11章為應(yīng)用實戰(zhàn),包含兩個完整實踐案例。本書通俗易懂,循序漸進(jìn),且包含豐富的代碼講解和應(yīng)用實例,操作性較強,并配套PPT和視頻講解,是鴻蒙應(yīng)用開發(fā)入門者的不二之選。 本書主要面向鴻蒙應(yīng)用的入門開發(fā)者,也可作為培訓(xùn)機構(gòu)的參考用書。
本書針對HarmonyOS SDK 4 (Java 2.1.0.5,JavaScript 2.1.0.5)版本,對鴻蒙操作系統(tǒng)的應(yīng)用開發(fā)基礎(chǔ)進(jìn)行了梳理和介紹。同時,也構(gòu)建了一個在分布式場景非常常用的視頻流直播實例作為實戰(zhàn)的內(nèi)容演練,進(jìn)行了詳細(xì)的分析和講解。
本書非常適合初學(xué)者入門,不僅涵蓋了鴻蒙大部分的能力特性,還在此基礎(chǔ)上對鴻蒙應(yīng)用開發(fā)所用到的Java及JavaScript語言進(jìn)行了簡要的知識點講解,幫助對這兩類語言不熟悉的開發(fā)者能在學(xué)習(xí)到鴻蒙開發(fā)之前可以對鴻蒙所使用的開發(fā)語言有更清晰的認(rèn)知。
陳美汝,北京郵電大學(xué)碩士,現(xiàn)就職于中國科學(xué)院軟件研究所智能軟件研究中心。參與多項國家科技重點研發(fā)計劃課題項目,目前主要研究方向為開源軟件供應(yīng)鏈。國內(nèi)首批鴻蒙應(yīng)用開發(fā)人員,具有豐富的移動端應(yīng)用開發(fā)經(jīng)驗。
鄭森文,工、理學(xué)雙碩士,現(xiàn)就職于中國科學(xué)院軟件研究所。主要研究方向為HCI、人工智能和軟件工程,發(fā)表相關(guān)論文、軟著、專利共10余項,并參與了多項國家自然科學(xué)基金、國家科技重點研發(fā)計劃課題項目,當(dāng)前主要專注于開源軟件供應(yīng)鏈相關(guān)研究和實踐。國內(nèi)首批鴻蒙應(yīng)用開發(fā)人員,中國科學(xué)院軟件研究所鴻蒙應(yīng)用團(tuán)隊負(fù)責(zé)人,多年移動端應(yīng)用開發(fā)經(jīng)驗。
武延軍,博士生導(dǎo)師,中國科學(xué)院軟件研究副總工程師、智能軟件研究中心主任,操作系統(tǒng)領(lǐng)域?qū)W科方向帶頭人,研究所重點培育方向負(fù)責(zé)人,受聘軍委科技委重點項目專家、裝備發(fā)展部載人航天工程軟件專家等!笆濉逼陂g,牽頭組建新創(chuàng)新單元——智能軟件研究中心,擔(dān)任首任中心主任。
吳敬征,中國科學(xué)院軟件研究所研究員,碩士研究生導(dǎo)師,中國科學(xué)院軟件研究所杰出青年科技人才。主要研究方向為開源軟件供應(yīng)鏈、人工智能安全及漏洞挖掘。在國內(nèi)外期刊和會議發(fā)表學(xué)術(shù)論文60余篇,申請國家專利20余項,獲得軟件著作權(quán)20余項。主持自然科學(xué)基金、國家科技重點研發(fā)計劃課題等10余項研究項目。
第1章走進(jìn)Harmony
1.1了解HarmonyOS
1.1.1HarmonyOS技術(shù)特性
1.1.2HarmonyOS系統(tǒng)架構(gòu)
1.2搭建HarmonyOS開發(fā)環(huán)境
1.2.1安裝環(huán)境要求
1.2.2下載安裝工具
1.2.3搭建開發(fā)環(huán)境
1.3關(guān)于DevEco Studio
1.3.1DevEco Studio界面及配置
1.3.2DevEco Studio SDK管理
1.4創(chuàng)建個HarmonyOS項目
1.4.1創(chuàng)建個項目
1.4.2模擬器運行及預(yù)覽
1.5HarmonyOS項目分析
1.5.1項目邏輯視圖
1.5.2項目結(jié)構(gòu)與文件
1.6應(yīng)用配置文件
1.6.1配置文件介紹
1.6.2配置信息App
1.6.3配置信息deviceConfig
1.6.4配置信息module
1.7資源文件
1.7.1Resource目錄介紹
1.7.2Resource文件編寫
1.7.3Resource文件使用
1.8日志管理工具
第2章Java
2.1Java語言基礎(chǔ)
2.1.1面向?qū)ο缶幊?
2.1.2Java程序基本結(jié)構(gòu)
2.2類與對象
2.2.1類
2.2.2對象
2.3繼承、接口、抽象類與多態(tài)
2.3.1繼承
2.3.2抽象類
2.3.3接口
2.3.4多態(tài)
第3章Java UI
3.1Java UI單體組件
3.1.1Text組件
3.1.2Button組件
3.1.3Image組件
3.2Java UI容器組件
3.2.1線性布局DirectionalLayout
3.2.2相對布局DependentLayout
3.2.3坐標(biāo)布局PositionLayout
3.2.4滾動菜單ListContainer
3.2.5滑動布局管理器 PageSlider
3.2.6其他布局容器
3.3Java UI動畫
3.3.1動畫類介紹
3.3.2數(shù)值動畫AnimatorValue
3.3.3屬性動畫 AnimatorProperty
3.3.4動畫集合AnimatorGroup
第4章JavaScript
4.1關(guān)于JavaScript
4.1.1JavaScript簡介
4.1.2揭開JavaScript面紗
4.1.3JavaScript與Java的區(qū)別
4.2JavaScript開發(fā)環(huán)境
4.2.1JavaScript IDE
4.2.2瀏覽器
4.2.3Node.js
4.3走近JavaScript
4.3.1JavaScript執(zhí)行方式
4.3.2JavaScript核心語法
4.3.3ES6語法概述
4.3.4JavaScript、HML及CSS
4.4HarmonyOS中的JS與Java
4.4.1Java中的實現(xiàn)
4.4.2JS 中的實現(xiàn)
4.4.3HarmonyOS中JS的優(yōu)缺點
第5章JS UI
5.1關(guān)于JS UI
5.1.1JS UI框架介紹
5.1.2JS UI主體介紹
5.2開發(fā)個JS FA應(yīng)用
5.2.1頁面布局說明
5.2.2構(gòu)建布局
5.2.3添加交互
5.3常用組件
5.3.1基礎(chǔ)組件
5.3.2List組件
5.3.3Tabs組件
5.3.4自定義組件
5.4添加用戶交互
5.4.1手勢事件
5.4.2按鍵事件
5.4.3頁面路由
5.5動畫
5.5.1transform靜態(tài)動畫
5.5.2animation連續(xù)動畫
第6章輕量級智能穿戴開發(fā)
6.1構(gòu)建用戶界面
6.1.1布局整體說明
6.1.2用戶界面實現(xiàn)
6.2基本功能與系統(tǒng)能力
6.2.1設(shè)備基本功能
6.2.2系統(tǒng)能力
6.2.3應(yīng)用生命周期
6.3手表應(yīng)用推送至真機
第7章Ability
7.1關(guān)于Ability
7.2Page Ability
7.2.1概述
7.2.2路由配置
7.2.3Page與AbilitySlice的生命周期
7.2.4Page間導(dǎo)航
7.3線程
7.3.1概述
7.3.2線程管理
7.3.3線程通信
7.4ServiceAbility
7.4.1創(chuàng)建并啟動Service
7.4.2連接Service
7.4.3Service的生命周期
第8章數(shù)據(jù)管理
8.1本地應(yīng)用數(shù)據(jù)管理
8.1.1SQLite數(shù)據(jù)庫
8.1.2關(guān)系型數(shù)據(jù)庫
8.1.3對象關(guān)系映射數(shù)據(jù)庫
8.1.4輕量級偏好數(shù)據(jù)庫
8.2分布式服務(wù)
8.2.1多設(shè)備協(xié)同權(quán)限
8.2.2分布式數(shù)據(jù)服務(wù)
8.2.3分布式文件服務(wù)
8.3DataAbility
8.3.1創(chuàng)建Data
8.3.2文件存取
8.3.3數(shù)據(jù)庫操作
第9章多媒體
9.1圖像
9.1.1圖像場景概述
9.1.2圖像解碼
9.1.3位圖操作
9.1.4圖像編碼
9.2音視頻
9.2.1音視頻場景概述
9.2.2音視頻編解碼
9.2.3視頻播放
9.2.4聲頻資源的加載與播放
9.3相機
9.3.1相機場景概述
9.3.2相機預(yù)覽
9.3.3相機拍照
9.3.4連拍與錄像
第10章應(yīng)用實戰(zhàn): 第三方組件的使用——彈幕
第11章應(yīng)用實戰(zhàn): 視頻流直播
11.1發(fā)送端
11.1.1發(fā)送端工程結(jié)構(gòu)
11.1.2發(fā)送端核心實現(xiàn)——Sender
11.1.3發(fā)送端核心工具——VDEncoder
11.1.4發(fā)送端其他工具類
11.2接收端
11.2.1接收端工程結(jié)構(gòu)
11.2.2接收端核心實現(xiàn)——Receiver
11.2.3接收端核心工具——VDDecoder
11.2.4接收端其他工具類
11.3運行與效果
11.3.1發(fā)送端運行
11.3.2接收端運行
HarmonyOS自2018年對外流出相關(guān)的設(shè)計概念以來,就引起了廣泛關(guān)注,它被認(rèn)為是國產(chǎn)新一代操作系統(tǒng)的希望,是一款“面向未來”、面向全場景的分布式操作系統(tǒng)。2019年8月,華為在開發(fā)者大會上正式發(fā)布HarmonyOS,它提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,能夠支持多種終端設(shè)備。2020年9月,華為在開發(fā)者大會上發(fā)布了HarmonyOS 2.0,推出應(yīng)用開發(fā)者Beta版本,并在同年12月推出了手機開發(fā)者Beta版。自此,開發(fā)者可以在鴻蒙的開發(fā)環(huán)境上開發(fā)和調(diào)試多個不同終端的應(yīng)用,整體開發(fā)環(huán)境和SDK支持也初步成熟。
作為早一批鴻蒙應(yīng)用開發(fā)者,我們在2020年6月就投身于鴻蒙的相關(guān)工作并且參與了包括2020年9月10日發(fā)布會上早展示的鴻蒙Demo應(yīng)用的相關(guān)開發(fā)工作。之后我們有意識地對鴻蒙的應(yīng)用開發(fā)知識進(jìn)行梳理,希望能在鴻蒙系統(tǒng)到來之際為廣大感興趣的開發(fā)者提供一套較為系統(tǒng)且全面的鴻蒙開發(fā)講解圖書。除了本書的內(nèi)容之外,針對鴻蒙的應(yīng)用生態(tài),我們還將安卓平臺上二十余款非常受歡迎的組件移植到了鴻蒙平臺供廣大開發(fā)者使用,相關(guān)的源碼已經(jīng)開源到Gitee上
。進(jìn)一步地,我們也在多個社區(qū)平臺上基于這些自己開源的源碼進(jìn)行講解分析,讓讀者更好地去使用和學(xué)習(xí)。
在本書編寫時,HarmonyOS的北向應(yīng)用開發(fā)能力剛剛問世,系統(tǒng)還未完全成熟,處于快速更新迭代的狀態(tài),因此本書
內(nèi)容的廣度和深度有限,僅涉及HarmonyOS應(yīng)用開發(fā)中的一些基礎(chǔ)核心功能。且在編寫過程中,由于HarmonyOS的多次更新迭代,本書的代碼也經(jīng)歷了多次測試和更改,因此讀者在學(xué)習(xí)過程中也難免會碰到大大小小的問題,還望讀者見諒,
也歡迎隨時聯(lián)系我們反饋問題。
讀者對象
本書非常適合初學(xué)者入門,不僅涵蓋了鴻蒙大部分的能力特性,還在此基礎(chǔ)上對鴻蒙應(yīng)用開發(fā)所用到的Java及JavaScript語言進(jìn)行了簡要的講解,幫助對這兩類語言還不熟悉的開發(fā)者能在學(xué)習(xí)
鴻蒙開發(fā)之前對鴻蒙所使用的開發(fā)語言有更清晰的認(rèn)知。在內(nèi)容講解上,針對代碼
部分也采用循序漸進(jìn)的方式進(jìn)行講解,保證讀者能夠根據(jù)提供的代碼一步步
掌握書里的知識點,并且提供了直觀的運行效果參考。
本書組織結(jié)構(gòu)
本書針對HarmonyOS SDK 4(Java 2.1.0.5,JavaScript 2.1.0.5)版本,對鴻蒙操作系統(tǒng)的應(yīng)用開發(fā)基礎(chǔ)進(jìn)行了梳理和介紹。同時,也構(gòu)建了一個在分布式場景非常常用的視頻流直播實例作為實戰(zhàn)的內(nèi)容演練,進(jìn)行了詳細(xì)分析和講解。其各章的主要內(nèi)容如下:
第1章對HarmonyOS進(jìn)行了綜合介紹,總體涵蓋了鴻蒙操作系統(tǒng)的系統(tǒng)特性、系統(tǒng)架構(gòu)及開發(fā)環(huán)境,指導(dǎo)構(gòu)建鴻蒙上的Hello World項目,并由此對鴻蒙項目結(jié)構(gòu)、文件及日志管理工具進(jìn)行講解。
第2章在介紹HarmonyOS的Java開發(fā)內(nèi)容之前,從Java語言基礎(chǔ)、Java的類和對象及繼承等多個在Java開發(fā)中必備的知識點進(jìn)行簡要介紹,保障讀者能更好地切入和理解后續(xù)的學(xué)習(xí)內(nèi)容。
第3章對鴻蒙的Java UI的常用組件、容器及動畫進(jìn)行了覆蓋性講解,讓開發(fā)者基本了解和學(xué)習(xí)到Java UI的開發(fā)模式。
第4章在介紹HarmonyOS的JavaScript開發(fā)內(nèi)容之前,從JavaScript簡介、開發(fā)環(huán)境、核心語法及在HarmonyOS中針對Java和JavaScript的比較對JavaScript開發(fā)中必備的知識點進(jìn)行了簡要介紹,保障讀者能更好地切入和理解后續(xù)的學(xué)習(xí)內(nèi)容。
第5章對鴻蒙的JavaScript UI的開發(fā)框架、布局、組件、交互及動畫進(jìn)行了覆蓋性講解,讓開發(fā)者基本了解和學(xué)習(xí)到Java UI的開發(fā)模式。
第6章從用戶界面的構(gòu)建及HarmonyOS所提供的基本功能、系統(tǒng)能力上簡要講解了鴻蒙輕量級智能穿戴設(shè)備的開發(fā)。
第7章講解HarmonyOS中非常重要的Ability概念,詳細(xì)地從Page Ability、線程及Service Ability 3個點入手介紹HarmonyOS應(yīng)用所具備能力。
第8章從本地應(yīng)用數(shù)據(jù)管理、分布式服務(wù)及Data Ability 3個點切入,詳細(xì)介紹了HarmonyOS的數(shù)據(jù)管理能力及實現(xiàn)方法。
第9章從圖像、音視頻、相機3個多媒體常用的能力上切入,對HarmonyOS的多媒體能力和實現(xiàn)方法進(jìn)行了詳細(xì)介紹。
第10章詳細(xì)講解了HarmonyOS的組件及其使用方法,并且以實際開源的組件項目為例進(jìn)行實踐介紹。
第11章以分布式應(yīng)用中非常重要的直播場景為目標(biāo),綜合性地指導(dǎo)和講解如何構(gòu)建應(yīng)用讓兩部HarmonyOS手機實現(xiàn)視頻流直播的能力。
版本信息
HarmonyOS本身也在不斷地迭代演化之中,其SDK和IDE隨著版本的更新,API及應(yīng)用開發(fā)特性也在不斷地更新豐富。本書選取撰寫時發(fā)布的HarmonyOS SDK 4(Java 2.1.0.5,JavaScript 2.1.0.5)版本進(jìn)行代碼梳理和講解,IDE版本為DevEco Studio 2.0 Beta3,但是依然可能會出現(xiàn)本書代碼與實際代碼不同的情況,在這種情況下讀者可以跟蹤代碼并獲取信息。
致謝
在本書的撰寫過程中,有非常多的人為我們提供了幫助,在此對諸位表達(dá)真摯的感謝。首先,感謝華為各位同事,為我們提供
了一些技術(shù)上的支持和幫助。也感謝中國科學(xué)院軟件研究所智能軟件研究中心的羅天悅、楊牧天老師為本書提供的大力支持。特別感謝組內(nèi)的小伙伴吳圣垚和馬卞,大力參與本書撰寫及配套資源的籌備,還有陳叢笑、戴研、
劉雨琦、朱偉、熊軼翔、蔣筱斌、呂澤、邵妍潔等同學(xué),協(xié)助完成書中內(nèi)容及代碼的測試驗證。后感謝清華大學(xué)出版社的趙佳霓編輯,在寫作和出版過程中為我們提供的幫助。再次感謝大家!
編者
2021年3月
本書源代碼下載
教學(xué)課件(PPT)