第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)建個(gè)HarmonyOS項(xiàng)目
1.4.1創(chuàng)建個(gè)項(xiàng)目
1.4.2模擬器運(yùn)行及預(yù)覽
1.5HarmonyOS項(xiàng)目分析
1.5.1項(xiàng)目邏輯視圖
1.5.2項(xiàng)目結(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語(yǔ)言基礎(chǔ)
2.1.1面向?qū)ο缶幊?
2.1.2Java程序基本結(jié)構(gòu)
2.2類與對(duì)象
2.2.1類
2.2.2對(duì)象
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相對(duì)布局DependentLayout
3.2.3坐標(biāo)布局PositionLayout
3.2.4滾動(dòng)菜單ListContainer
3.2.5滑動(dòng)布局管理器 PageSlider
3.2.6其他布局容器
3.3Java UI動(dòng)畫
3.3.1動(dòng)畫類介紹
3.3.2數(shù)值動(dòng)畫AnimatorValue
3.3.3屬性動(dòng)畫 AnimatorProperty
3.3.4動(dòng)畫集合AnimatorGroup
第4章JavaScript
4.1關(guān)于JavaScript
4.1.1JavaScript簡(jiǎn)介
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核心語(yǔ)法
4.3.3ES6語(yǔ)法概述
4.3.4JavaScript、HML及CSS
4.4HarmonyOS中的JS與Java
4.4.1Java中的實(shí)現(xiàn)
4.4.2JS 中的實(shí)現(xiàn)
4.4.3HarmonyOS中JS的優(yōu)缺點(diǎn)
第5章JS UI
5.1關(guān)于JS UI
5.1.1JS UI框架介紹
5.1.2JS UI主體介紹
5.2開發(fā)個(gè)JS FA應(yīng)用
5.2.1頁(yè)面布局說明
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手勢(shì)事件
5.4.2按鍵事件
5.4.3頁(yè)面路由
5.5動(dòng)畫
5.5.1transform靜態(tài)動(dòng)畫
5.5.2animation連續(xù)動(dòng)畫
第6章輕量級(jí)智能穿戴開發(fā)
6.1構(gòu)建用戶界面
6.1.1布局整體說明
6.1.2用戶界面實(shí)現(xiàn)
6.2基本功能與系統(tǒng)能力
6.2.1設(shè)備基本功能
6.2.2系統(tǒng)能力
6.2.3應(yīng)用生命周期
6.3手表應(yīng)用推送至真機(jī)
第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)建并啟動(dòng)Service
7.4.2連接Service
7.4.3Service的生命周期
第8章數(shù)據(jù)管理
8.1本地應(yīng)用數(shù)據(jù)管理
8.1.1SQLite數(shù)據(jù)庫(kù)
8.1.2關(guān)系型數(shù)據(jù)庫(kù)
8.1.3對(duì)象關(guān)系映射數(shù)據(jù)庫(kù)
8.1.4輕量級(jí)偏好數(shù)據(jù)庫(kù)
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ù)庫(kù)操作
第9章多媒體
9.1圖像
9.1.1圖像場(chǎng)景概述
9.1.2圖像解碼
9.1.3位圖操作
9.1.4圖像編碼
9.2音視頻
9.2.1音視頻場(chǎng)景概述
9.2.2音視頻編解碼
9.2.3視頻播放
9.2.4聲頻資源的加載與播放
9.3相機(jī)
9.3.1相機(jī)場(chǎng)景概述
9.3.2相機(jī)預(yù)覽
9.3.3相機(jī)拍照
9.3.4連拍與錄像
第10章應(yīng)用實(shí)戰(zhàn): 第三方組件的使用——彈幕
第11章應(yīng)用實(shí)戰(zhàn): 視頻流直播
11.1發(fā)送端
11.1.1發(fā)送端工程結(jié)構(gòu)
11.1.2發(fā)送端核心實(shí)現(xiàn)——Sender
11.1.3發(fā)送端核心工具——VDEncoder
11.1.4發(fā)送端其他工具類
11.2接收端
11.2.1接收端工程結(jié)構(gòu)
11.2.2接收端核心實(shí)現(xiàn)——Receiver
11.2.3接收端核心工具——VDDecoder
11.2.4接收端其他工具類
11.3運(yùn)行與效果
11.3.1發(fā)送端運(yùn)行
11.3.2接收端運(yùn)行
HarmonyOS自2018年對(duì)外流出相關(guān)的設(shè)計(jì)概念以來,就引起了廣泛關(guān)注,它被認(rèn)為是國(guó)產(chǎn)新一代操作系統(tǒng)的希望,是一款“面向未來”、面向全場(chǎng)景的分布式操作系統(tǒng)。2019年8月,華為在開發(fā)者大會(huì)上正式發(fā)布HarmonyOS,它提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,能夠支持多種終端設(shè)備。2020年9月,華為在開發(fā)者大會(huì)上發(fā)布了HarmonyOS 2.0,推出應(yīng)用開發(fā)者Beta版本,并在同年12月推出了手機(jī)開發(fā)者Beta版。自此,開發(fā)者可以在鴻蒙的開發(fā)環(huán)境上開發(fā)和調(diào)試多個(gè)不同終端的應(yīng)用,整體開發(fā)環(huán)境和SDK支持也初步成熟。
作為早一批鴻蒙應(yīng)用開發(fā)者,我們?cè)?020年6月就投身于鴻蒙的相關(guān)工作并且參與了包括2020年9月10日發(fā)布會(huì)上早展示的鴻蒙Demo應(yīng)用的相關(guān)開發(fā)工作。之后我們有意識(shí)地對(duì)鴻蒙的應(yīng)用開發(fā)知識(shí)進(jìn)行梳理,希望能在鴻蒙系統(tǒng)到來之際為廣大感興趣的開發(fā)者提供一套較為系統(tǒng)且全面的鴻蒙開發(fā)講解圖書。除了本書的內(nèi)容之外,針對(duì)鴻蒙的應(yīng)用生態(tài),我們還將安卓平臺(tái)上二十余款非常受歡迎的組件移植到了鴻蒙平臺(tái)供廣大開發(fā)者使用,相關(guān)的源碼已經(jīng)開源到Gitee上
。進(jìn)一步地,我們也在多個(gè)社區(qū)平臺(tái)上基于這些自己開源的源碼進(jìn)行講解分析,讓讀者更好地去使用和學(xué)習(xí)。
在本書編寫時(shí),HarmonyOS的北向應(yīng)用開發(fā)能力剛剛問世,系統(tǒng)還未完全成熟,處于快速更新迭代的狀態(tài),因此本書
內(nèi)容的廣度和深度有限,僅涉及HarmonyOS應(yīng)用開發(fā)中的一些基礎(chǔ)核心功能。且在編寫過程中,由于HarmonyOS的多次更新迭代,本書的代碼也經(jīng)歷了多次測(cè)試和更改,因此讀者在學(xué)習(xí)過程中也難免會(huì)碰到大大小小的問題,還望讀者見諒,
也歡迎隨時(shí)聯(lián)系我們反饋問題。
讀者對(duì)象
本書非常適合初學(xué)者入門,不僅涵蓋了鴻蒙大部分的能力特性,還在此基礎(chǔ)上對(duì)鴻蒙應(yīng)用開發(fā)所用到的Java及JavaScript語(yǔ)言進(jìn)行了簡(jiǎn)要的講解,幫助對(duì)這兩類語(yǔ)言還不熟悉的開發(fā)者能在學(xué)習(xí)
鴻蒙開發(fā)之前對(duì)鴻蒙所使用的開發(fā)語(yǔ)言有更清晰的認(rèn)知。在內(nèi)容講解上,針對(duì)代碼
部分也采用循序漸進(jìn)的方式進(jìn)行講解,保證讀者能夠根據(jù)提供的代碼一步步
掌握書里的知識(shí)點(diǎn),并且提供了直觀的運(yùn)行效果參考。
本書組織結(jié)構(gòu)
本書針對(duì)HarmonyOS SDK 4(Java 2.1.0.5,JavaScript 2.1.0.5)版本,對(duì)鴻蒙操作系統(tǒng)的應(yīng)用開發(fā)基礎(chǔ)進(jìn)行了梳理和介紹。同時(shí),也構(gòu)建了一個(gè)在分布式場(chǎng)景非常常用的視頻流直播實(shí)例作為實(shí)戰(zhàn)的內(nèi)容演練,進(jìn)行了詳細(xì)分析和講解。其各章的主要內(nèi)容如下:
第1章對(duì)HarmonyOS進(jìn)行了綜合介紹,總體涵蓋了鴻蒙操作系統(tǒng)的系統(tǒng)特性、系統(tǒng)架構(gòu)及開發(fā)環(huán)境,指導(dǎo)構(gòu)建鴻蒙上的Hello World項(xiàng)目,并由此對(duì)鴻蒙項(xiàng)目結(jié)構(gòu)、文件及日志管理工具進(jìn)行講解。
第2章在介紹HarmonyOS的Java開發(fā)內(nèi)容之前,從Java語(yǔ)言基礎(chǔ)、Java的類和對(duì)象及繼承等多個(gè)在Java開發(fā)中必備的知識(shí)點(diǎn)進(jìn)行簡(jiǎn)要介紹,保障讀者能更好地切入和理解后續(xù)的學(xué)習(xí)內(nèi)容。
第3章對(duì)鴻蒙的Java UI的常用組件、容器及動(dòng)畫進(jìn)行了覆蓋性講解,讓開發(fā)者基本了解和學(xué)習(xí)到Java UI的開發(fā)模式。
第4章在介紹HarmonyOS的JavaScript開發(fā)內(nèi)容之前,從JavaScript簡(jiǎn)介、開發(fā)環(huán)境、核心語(yǔ)法及在HarmonyOS中針對(duì)Java和JavaScript的比較對(duì)JavaScript開發(fā)中必備的知識(shí)點(diǎn)進(jìn)行了簡(jiǎn)要介紹,保障讀者能更好地切入和理解后續(xù)的學(xué)習(xí)內(nèi)容。
第5章對(duì)鴻蒙的JavaScript UI的開發(fā)框架、布局、組件、交互及動(dòng)畫進(jìn)行了覆蓋性講解,讓開發(fā)者基本了解和學(xué)習(xí)到Java UI的開發(fā)模式。
第6章從用戶界面的構(gòu)建及HarmonyOS所提供的基本功能、系統(tǒng)能力上簡(jiǎn)要講解了鴻蒙輕量級(jí)智能穿戴設(shè)備的開發(fā)。
第7章講解HarmonyOS中非常重要的Ability概念,詳細(xì)地從Page Ability、線程及Service Ability 3個(gè)點(diǎn)入手介紹HarmonyOS應(yīng)用所具備能力。
第8章從本地應(yīng)用數(shù)據(jù)管理、分布式服務(wù)及Data Ability 3個(gè)點(diǎn)切入,詳細(xì)介紹了HarmonyOS的數(shù)據(jù)管理能力及實(shí)現(xiàn)方法。
第9章從圖像、音視頻、相機(jī)3個(gè)多媒體常用的能力上切入,對(duì)HarmonyOS的多媒體能力和實(shí)現(xiàn)方法進(jìn)行了詳細(xì)介紹。
第10章詳細(xì)講解了HarmonyOS的組件及其使用方法,并且以實(shí)際開源的組件項(xiàng)目為例進(jìn)行實(shí)踐介紹。
第11章以分布式應(yīng)用中非常重要的直播場(chǎng)景為目標(biāo),綜合性地指導(dǎo)和講解如何構(gòu)建應(yīng)用讓兩部HarmonyOS手機(jī)實(shí)現(xiàn)視頻流直播的能力。
版本信息
HarmonyOS本身也在不斷地迭代演化之中,其SDK和IDE隨著版本的更新,API及應(yīng)用開發(fā)特性也在不斷地更新豐富。本書選取撰寫時(shí)發(fā)布的HarmonyOS SDK 4(Java 2.1.0.5,JavaScript 2.1.0.5)版本進(jìn)行代碼梳理和講解,IDE版本為DevEco Studio 2.0 Beta3,但是依然可能會(huì)出現(xiàn)本書代碼與實(shí)際代碼不同的情況,在這種情況下讀者可以跟蹤代碼并獲取信息。
致謝
在本書的撰寫過程中,有非常多的人為我們提供了幫助,在此對(duì)諸位表達(dá)真摯的感謝。首先,感謝華為各位同事,為我們提供
了一些技術(shù)上的支持和幫助。也感謝中國(guó)科學(xué)院軟件研究所智能軟件研究中心的羅天悅、楊牧天老師為本書提供的大力支持。特別感謝組內(nèi)的小伙伴吳圣垚和馬卞,大力參與本書撰寫及配套資源的籌備,還有陳叢笑、戴研、
劉雨琦、朱偉、熊軼翔、蔣筱斌、呂澤、邵妍潔等同學(xué),協(xié)助完成書中內(nèi)容及代碼的測(cè)試驗(yàn)證。后感謝清華大學(xué)出版社的趙佳霓編輯,在寫作和出版過程中為我們提供的幫助。再次感謝大家!
編者
2021年3月
本書源代碼下載
教學(xué)課件(PPT)