本書系統(tǒng)全面地講解鴻蒙操作系統(tǒng)下的應用開發(fā)所需基礎知識,并通過豐富的案例實踐提高應用能力。 整本書共11章,第1章對鴻蒙操作系統(tǒng)進行概述,并搭建應用開發(fā)環(huán)境。第2~5 章分別講解了Java、JavaScript語言基礎及Java、JavaScript下的UI布局實現(xiàn)。第6章講解了鴻蒙輕量級智能穿戴設備的開發(fā)。第7章講解了應用所具備能力Ability。第8章講解了本地應用數(shù)據(jù)管理及分布式服務。第9章講解了包括圖像、相機及音視頻的多媒體功能。第10和11章為應用實戰(zhàn),包含兩個完整實踐案例。本書通俗易懂,循序漸進,且包含豐富的代碼講解和應用實例,操作性較強,并配套PPT和視頻講解,是鴻蒙應用開發(fā)入門者的不二之選。 本書主要面向鴻蒙應用的入門開發(fā)者,也可作為培訓機構的參考用書。
本書針對HarmonyOS SDK 4 (Java 2.1.0.5,JavaScript 2.1.0.5)版本,對鴻蒙操作系統(tǒng)的應用開發(fā)基礎進行了梳理和介紹。同時,也構建了一個在分布式場景非常常用的視頻流直播實例作為實戰(zhàn)的內容演練,進行了詳細的分析和講解。
本書非常適合初學者入門,不僅涵蓋了鴻蒙大部分的能力特性,還在此基礎上對鴻蒙應用開發(fā)所用到的Java及JavaScript語言進行了簡要的知識點講解,幫助對這兩類語言不熟悉的開發(fā)者能在學習到鴻蒙開發(fā)之前可以對鴻蒙所使用的開發(fā)語言有更清晰的認知。
陳美汝,北京郵電大學碩士,現(xiàn)就職于中國科學院軟件研究所智能軟件研究中心。參與多項國家科技重點研發(fā)計劃課題項目,目前主要研究方向為開源軟件供應鏈。國內首批鴻蒙應用開發(fā)人員,具有豐富的移動端應用開發(fā)經驗。
鄭森文,工、理學雙碩士,現(xiàn)就職于中國科學院軟件研究所。主要研究方向為HCI、人工智能和軟件工程,發(fā)表相關論文、軟著、專利共10余項,并參與了多項國家自然科學基金、國家科技重點研發(fā)計劃課題項目,當前主要專注于開源軟件供應鏈相關研究和實踐。國內首批鴻蒙應用開發(fā)人員,中國科學院軟件研究所鴻蒙應用團隊負責人,多年移動端應用開發(fā)經驗。
武延軍,博士生導師,中國科學院軟件研究副總工程師、智能軟件研究中心主任,操作系統(tǒng)領域學科方向帶頭人,研究所重點培育方向負責人,受聘軍委科技委重點項目專家、裝備發(fā)展部載人航天工程軟件專家等。“十三五”期間,牽頭組建新創(chuàng)新單元——智能軟件研究中心,擔任首任中心主任。
吳敬征,中國科學院軟件研究所研究員,碩士研究生導師,中國科學院軟件研究所杰出青年科技人才。主要研究方向為開源軟件供應鏈、人工智能安全及漏洞挖掘。在國內外期刊和會議發(fā)表學術論文60余篇,申請國家專利20余項,獲得軟件著作權20余項。主持自然科學基金、國家科技重點研發(fā)計劃課題等10余項研究項目。
第1章走進Harmony
1.1了解HarmonyOS
1.1.1HarmonyOS技術特性
1.1.2HarmonyOS系統(tǒng)架構
1.2搭建HarmonyOS開發(fā)環(huán)境
1.2.1安裝環(huán)境要求
1.2.2下載安裝工具
1.2.3搭建開發(fā)環(huán)境
1.3關于DevEco Studio
1.3.1DevEco Studio界面及配置
1.3.2DevEco Studio SDK管理
1.4創(chuàng)建個HarmonyOS項目
1.4.1創(chuàng)建個項目
1.4.2模擬器運行及預覽
1.5HarmonyOS項目分析
1.5.1項目邏輯視圖
1.5.2項目結構與文件
1.6應用配置文件
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語言基礎
2.1.1面向對象編程
2.1.2Java程序基本結構
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坐標布局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關于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關于JS UI
5.1.1JS UI框架介紹
5.1.2JS UI主體介紹
5.2開發(fā)個JS FA應用
5.2.1頁面布局說明
5.2.2構建布局
5.2.3添加交互
5.3常用組件
5.3.1基礎組件
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構建用戶界面
6.1.1布局整體說明
6.1.2用戶界面實現(xiàn)
6.2基本功能與系統(tǒng)能力
6.2.1設備基本功能
6.2.2系統(tǒng)能力
6.2.3應用生命周期
6.3手表應用推送至真機
第7章Ability
7.1關于Ability
7.2Page Ability
7.2.1概述
7.2.2路由配置
7.2.3Page與AbilitySlice的生命周期
7.2.4Page間導航
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本地應用數(shù)據(jù)管理
8.1.1SQLite數(shù)據(jù)庫
8.1.2關系型數(shù)據(jù)庫
8.1.3對象關系映射數(shù)據(jù)庫
8.1.4輕量級偏好數(shù)據(jù)庫
8.2分布式服務
8.2.1多設備協(xié)同權限
8.2.2分布式數(shù)據(jù)服務
8.2.3分布式文件服務
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相機預覽
9.3.3相機拍照
9.3.4連拍與錄像
第10章應用實戰(zhàn): 第三方組件的使用——彈幕
第11章應用實戰(zhàn): 視頻流直播
11.1發(fā)送端
11.1.1發(fā)送端工程結構
11.1.2發(fā)送端核心實現(xiàn)——Sender
11.1.3發(fā)送端核心工具——VDEncoder
11.1.4發(fā)送端其他工具類
11.2接收端
11.2.1接收端工程結構
11.2.2接收端核心實現(xiàn)——Receiver
11.2.3接收端核心工具——VDDecoder
11.2.4接收端其他工具類
11.3運行與效果
11.3.1發(fā)送端運行
11.3.2接收端運行
HarmonyOS自2018年對外流出相關的設計概念以來,就引起了廣泛關注,它被認為是國產新一代操作系統(tǒng)的希望,是一款“面向未來”、面向全場景的分布式操作系統(tǒng)。2019年8月,華為在開發(fā)者大會上正式發(fā)布HarmonyOS,它提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,能夠支持多種終端設備。2020年9月,華為在開發(fā)者大會上發(fā)布了HarmonyOS 2.0,推出應用開發(fā)者Beta版本,并在同年12月推出了手機開發(fā)者Beta版。自此,開發(fā)者可以在鴻蒙的開發(fā)環(huán)境上開發(fā)和調試多個不同終端的應用,整體開發(fā)環(huán)境和SDK支持也初步成熟。
作為早一批鴻蒙應用開發(fā)者,我們在2020年6月就投身于鴻蒙的相關工作并且參與了包括2020年9月10日發(fā)布會上早展示的鴻蒙Demo應用的相關開發(fā)工作。之后我們有意識地對鴻蒙的應用開發(fā)知識進行梳理,希望能在鴻蒙系統(tǒng)到來之際為廣大感興趣的開發(fā)者提供一套較為系統(tǒng)且全面的鴻蒙開發(fā)講解圖書。除了本書的內容之外,針對鴻蒙的應用生態(tài),我們還將安卓平臺上二十余款非常受歡迎的組件移植到了鴻蒙平臺供廣大開發(fā)者使用,相關的源碼已經開源到Gitee上
。進一步地,我們也在多個社區(qū)平臺上基于這些自己開源的源碼進行講解分析,讓讀者更好地去使用和學習。
在本書編寫時,HarmonyOS的北向應用開發(fā)能力剛剛問世,系統(tǒng)還未完全成熟,處于快速更新迭代的狀態(tài),因此本書
內容的廣度和深度有限,僅涉及HarmonyOS應用開發(fā)中的一些基礎核心功能。且在編寫過程中,由于HarmonyOS的多次更新迭代,本書的代碼也經歷了多次測試和更改,因此讀者在學習過程中也難免會碰到大大小小的問題,還望讀者見諒,
也歡迎隨時聯(lián)系我們反饋問題。
讀者對象
本書非常適合初學者入門,不僅涵蓋了鴻蒙大部分的能力特性,還在此基礎上對鴻蒙應用開發(fā)所用到的Java及JavaScript語言進行了簡要的講解,幫助對這兩類語言還不熟悉的開發(fā)者能在學習
鴻蒙開發(fā)之前對鴻蒙所使用的開發(fā)語言有更清晰的認知。在內容講解上,針對代碼
部分也采用循序漸進的方式進行講解,保證讀者能夠根據(jù)提供的代碼一步步
掌握書里的知識點,并且提供了直觀的運行效果參考。
本書組織結構
本書針對HarmonyOS SDK 4(Java 2.1.0.5,JavaScript 2.1.0.5)版本,對鴻蒙操作系統(tǒng)的應用開發(fā)基礎進行了梳理和介紹。同時,也構建了一個在分布式場景非常常用的視頻流直播實例作為實戰(zhàn)的內容演練,進行了詳細分析和講解。其各章的主要內容如下:
第1章對HarmonyOS進行了綜合介紹,總體涵蓋了鴻蒙操作系統(tǒng)的系統(tǒng)特性、系統(tǒng)架構及開發(fā)環(huán)境,指導構建鴻蒙上的Hello World項目,并由此對鴻蒙項目結構、文件及日志管理工具進行講解。
第2章在介紹HarmonyOS的Java開發(fā)內容之前,從Java語言基礎、Java的類和對象及繼承等多個在Java開發(fā)中必備的知識點進行簡要介紹,保障讀者能更好地切入和理解后續(xù)的學習內容。
第3章對鴻蒙的Java UI的常用組件、容器及動畫進行了覆蓋性講解,讓開發(fā)者基本了解和學習到Java UI的開發(fā)模式。
第4章在介紹HarmonyOS的JavaScript開發(fā)內容之前,從JavaScript簡介、開發(fā)環(huán)境、核心語法及在HarmonyOS中針對Java和JavaScript的比較對JavaScript開發(fā)中必備的知識點進行了簡要介紹,保障讀者能更好地切入和理解后續(xù)的學習內容。
第5章對鴻蒙的JavaScript UI的開發(fā)框架、布局、組件、交互及動畫進行了覆蓋性講解,讓開發(fā)者基本了解和學習到Java UI的開發(fā)模式。
第6章從用戶界面的構建及HarmonyOS所提供的基本功能、系統(tǒng)能力上簡要講解了鴻蒙輕量級智能穿戴設備的開發(fā)。
第7章講解HarmonyOS中非常重要的Ability概念,詳細地從Page Ability、線程及Service Ability 3個點入手介紹HarmonyOS應用所具備能力。
第8章從本地應用數(shù)據(jù)管理、分布式服務及Data Ability 3個點切入,詳細介紹了HarmonyOS的數(shù)據(jù)管理能力及實現(xiàn)方法。
第9章從圖像、音視頻、相機3個多媒體常用的能力上切入,對HarmonyOS的多媒體能力和實現(xiàn)方法進行了詳細介紹。
第10章詳細講解了HarmonyOS的組件及其使用方法,并且以實際開源的組件項目為例進行實踐介紹。
第11章以分布式應用中非常重要的直播場景為目標,綜合性地指導和講解如何構建應用讓兩部HarmonyOS手機實現(xiàn)視頻流直播的能力。
版本信息
HarmonyOS本身也在不斷地迭代演化之中,其SDK和IDE隨著版本的更新,API及應用開發(fā)特性也在不斷地更新豐富。本書選取撰寫時發(fā)布的HarmonyOS SDK 4(Java 2.1.0.5,JavaScript 2.1.0.5)版本進行代碼梳理和講解,IDE版本為DevEco Studio 2.0 Beta3,但是依然可能會出現(xiàn)本書代碼與實際代碼不同的情況,在這種情況下讀者可以跟蹤代碼并獲取信息。
致謝
在本書的撰寫過程中,有非常多的人為我們提供了幫助,在此對諸位表達真摯的感謝。首先,感謝華為各位同事,為我們提供
了一些技術上的支持和幫助。也感謝中國科學院軟件研究所智能軟件研究中心的羅天悅、楊牧天老師為本書提供的大力支持。特別感謝組內的小伙伴吳圣垚和馬卞,大力參與本書撰寫及配套資源的籌備,還有陳叢笑、戴研、
劉雨琦、朱偉、熊軼翔、蔣筱斌、呂澤、邵妍潔等同學,協(xié)助完成書中內容及代碼的測試驗證。后感謝清華大學出版社的趙佳霓編輯,在寫作和出版過程中為我們提供的幫助。再次感謝大家!
編者
2021年3月
本書源代碼下載
教學課件(PPT)