●第一篇 開發準備篇
第1章 HarmonyOS繫統簡介
1.1 HarmonyOS的設計目標
1.1.1 5G萬物互聯時代
1.1.2 物聯網操作繫統碎片化
1.1.3 下一代操作繫統的發展方向
1.2 HarmonyOS技術特性
1.2.1 分布式架構
1.2.2 操作繫統可裁剪
1.2.3 一套代碼多端運行
1.3 HarmonyOS技術架構
1.3.1 內核層
1.3.2 繫統服務層
1.3.3 架構層
1.3.4 應用層
1.4 HarmonyOS與LiteOS
1.4.1 LiteOS-A 簡介
1.4.2 LiteOS-M 簡介
1.5 OpenHarmony生態
1.5.1 Android與 AOSP
1.5.2 HarmonyOS與 OpenHarmony
1.6 HarmonyOS與Fuchsia OS
1.6.1 Fuchsia OS繫統架構
1.6.2 Fuchsia OS與產業
1.7 本章小結
第2章 開發環境搭建
2.1 鴻蒙應用開發環境搭建
2.1.1 下載和安裝 Node.js
2.1.2 下載和安裝DevEco Studio
2.1.3 運行 Hello World
2.2 鴻蒙應用程序運行調試
2.2.1 在遠程模擬器中運行應用
2.2.2 在Simulator中運行應用
2.3 使用真機設備運行應用
2.3.1 手動真機簽名流程
2.3.2 自動化真機簽名流程
2.4 本章小結
第二篇 ArkUI JS UI篇
第3章 ArkUI JS框架詳細講解
3.1 ArkUI JS框架介紹
3.1.1 ArkUI JS框架的特征
3.1.2 ArkUI JS架構介紹
3.1.3 ArkUI JS運行流程
3.2 創建一個ArkUI JS項目
3.2.1 新建ArkUI JavaScript項目
3.2.2 編寫界面布局
3.2.3 編寫界面邏輯代碼
3.2.4 通過模擬器預覽效果
3.3 項目目錄結構
3.3.1 項目整體結構
3.3.2 項目的配置文件
3.3.3 資源文件的使用方式
3.4 頁面布局
3.4.1 Flexbox布局
3.4.2 Grid網格布局
3.5 語法詳細講解
3.5.1 HML語法
3.5.2 CSS語法
3.5.3 JS邏輯
3.5.4 多語言支持
3.6 內置組件
3.6.1 容器組件
3.6.2 基礎組件
3.6.3 媒體組件
3.6.4 畫布組件
3.7 自定義組件
3.7.1 自定義組件定義
3.7.2 自定義組件事件與交互
3.8 本章小結
第4章 ArkUI JS與Java混合開發
4.1 JavaScript調用Service Ability
4.1.1 JS端調用遠端Service Ability
4.1.2 JS端訂閱遠端Service Ability
4.2 JS端調用音樂播放Service Ability
4.2.1 申請分布式使用權限
4.2.2 創建Java端Service Ability
4.2.3 音樂播放器前端的 UI
4.2.4 封裝JS前端調用Service Ability的方法
4.2.5 JS端調用Service Ability的方法
4.2.6 音樂播放器遙控 UI
4.2.7 音樂播放器遙控邏輯實現
4.2.8 通過實體音量鍵控制遠程設備音量
4.2.9 JS端訂閱Service Ability中的播放狀態
4.2.10 本節小結
4.3 JavaScript項目混合Java UI開發
4.3.1 JS Ability和Java Ability跳轉
4.3.2 JS端調用相機拍照功能
第5章 ArkUI JS遊戲開發案例
5.1 飛機大戰遊戲介紹
5.2 飛機大戰遊戲分析
5.2.1 遊戲性能問題分析
5.2.2 遊戲角色分析
5.3 飛機大戰核心算法
5.3.1 踫撞檢測算法
5.3.2 子彈飛行算法
5.4 飛機大戰遊戲界面實現
5.4.1 遊戲主界面
5.4.2 遊戲控制手柄界面
5.5 飛機大戰核心代碼實現———單機篇
5.5.1 加載遊戲資源
5.5.2 太空背景動畫
5.5.3 遊戲動畫入口
5.5.4 繪制遊戲主角
5.5.5 繪制遊戲敵機
5.5.6 繪制子彈對像
5.5.7 繪制爆炸效果
5.5.8 操作主角飛機
5.6 飛機大戰核心代碼實現———鴻蒙篇
5.6.1 多設備間遊戲流轉
5.6.2 實現遊戲遠程控制
5.7 本章小結
第6章 原子化服務和服務卡片開發
6.1 什麼是原子化服務
6.1.1 原子化服務特征
6.1.2 原子化服務與傳統應用的區別
6.1.3 原子化服務上架流程
6.1.4 原子化服務開發要求
6.1.5 原子化服務開發流程
6.2 什麼是服務卡片(Service Widget)
6.2.1 服務卡片定義
6.2.2 服務卡片的三大特征
6.2.3 服務卡片的設計規範
6.2.4 服務卡片的整體架構
6.3 服務卡片開發詳細講解
6.3.1 創建JavaScript服務卡片
6.3.2 服務卡片界面實現
6.3.3 服務卡片數據綁定
6.3.4 服務卡片數據更新
6.3.5 服務卡片跳轉事件和消息事件
第三篇 JavaScript API篇
第7章 基本功能接口
7.1 頁面路由
7.1.1 頁面路由用法
7.1.2 頁面路由動畫
7.2 應用上下文
7.3 日志打印
7.4 應用配置
7.5 窗口
7.6 彈框
7.7 動畫
7.8 剪貼板
第8章 網絡與媒體接口
8.1 網絡訪問
8.2 WebSocket
8.3 上傳和下載
8.4 媒體
第9章 分布式能力接口
9.1 分布式遷移
9.1.1 申請分布式遷移權限
9.1.2 通過FeatureAbility發起遷移
9.2 分布式拉起
9.2.1 申請分布式遷移權限
9.2.2 允許以顯式的方式拉起遠程或本地的FA
9.2.3 拉起遠程帶返回值的FA
9.2.4 分布式 API在FA中的生命周期
9.3 文件數據管理
9.3.1 輕量級存儲
9.3.2 文件管理
第10章 繫統設備接口
10.1 消息通知
10.2 地理位置
10.3 設備信息
10.4 應用管理
10.5 媒體查詢
10.6 振動
第11章 多實例管理
11.1 多實例接口
11.1.1 多 Ability實例管理
11.1.2 多 Ability之間跳轉
11.2 使用 NPM 安裝JavaScript模塊
第四篇 ArkUI ETS UI篇
第12章 ArkUI ETS開發語言入門
12.1 ArkUI TypeScript介紹
12.2 ets-loader編譯ETS
12.3 TypeScript基礎數據類型
12.3.1 布爾值
12.3.2 數字
12.3.3 字符串
12.3.4 數組
12.3組
12.3.6 枚舉
12.3.7 any
12.3.8 void
12.3.9 null和undefined
12.3.10 never
12.4 TypeScript高級數據類型
12.4.1 泛型
12.4.2 交叉類型
12.4.3 聯合類型
12.5 TypeScript面向對像特性
12.5.1 類
12.5.2 接口
12.6 TypeScript裝飾器
12.6.1 屬性裝飾器
12.6.2 方法裝飾器
12.6.3 參數裝飾器
12.6.4 類裝飾器
12.7 TypeScript模塊與命名空間
12.7.1 模塊
12.7.2 命名空間
第13章 ArkUI ETS框架詳細講解
13.1 框架特點
13.2 組件化設計
13.2.1 組件裝飾器@Component
13.2.2 組件的內部私有狀態@State
13.2.3 組件的輸入和輸出屬性
13.2.4 單向同步父組件狀態@Prop
13.2.5 雙向同步狀態@Link
13.2.6 自定義組件的生命周期函數
13.2.7 跨組件數據傳遞@Consume和@Provide
13.2.8 監聽變量狀態變更@Watch
13.2.9 自定義組件方法@Builder
13.2.10 統一組件樣式@Extend
13.3 狀態管理倉庫
13.3.1 持久化數據管理
13.3.2 環境變量Environment
13.3.3 AppStorage與組件同步
13.4 渲染控制語法
13.4.1 條件渲染if...else...
13.4.2 循環渲染ForEach
13.5 動畫效果
13.5.1 屬性動畫
13.5.2 顯式動畫
13.5.3 轉場動畫
13.5.4 手勢處理
13.6 框架結構詳細講解
13.6.1 文件組織
13.6.2 JS標簽配置
13.6.3 app.ets
13.6.4 資源訪問
13.6.5 像素單位
13.7 界面布局
13.7.1 Flex布局
13.7.2 Grid布局
13.7.3 堆疊布局
13.7.4 柵格布局
13.8 基礎組件
13.8.1 Text組件
13.8.2 Button組件
13.8.3 Image組件
13.8.4 List組件
13.8.5 Swiper組件
13.8.6 Tabs組件
13.8.7 Scroll組件
13.8.8 AlertDialog組件
13.8.9 自定義彈框
第14章 ArkUI ETS UI開發案例
14.1 華為商城框架封裝
14.1.1 公共組件封裝
14.1.2 公共數據接口封裝
14.2 商城首頁實現
14.2.1 頭部組件
14.2.2 頭部滾動
14.2.3 輪播廣告
14.2.4 導航菜單
14.2.5 限時購
14.3 商城商品分類頁實現
14.3.1 中間左側分類區
14.3.2 中間右側商品區
14.4 商品詳情頁實現
14.4.1 頭部商品圖片輪播區
14.4.2 商品價格展示欄
14.4.3 商品底部購買欄
第五篇 OpenHarmony篇
第15章 OpenHarmony基礎
15.1 OpenHarmony介紹
15.2 OpenHarmony 3.0 LTS編譯與燒錄
15.2.1 編譯環境搭建
15.2.2 標準繫統編譯和燒錄
第16章 OpenHarmony應用開發詳細講解
16.1 配置OpenHarmony SDK
16.2 創建 OpenHarmony工程
16.2.1 選擇項目模板
16.2.2 創建ArkUI JS項目
16.3 配置 OpenHarmony應用簽名信息
16.3.1 生成密鑰和證書請求文件
16.3.2 生成應用證書文件
16.3.3 生成應用Profile文件
16.3.4 配置應用簽名信息
16.4 推送並將 HAP安裝到開發板/設備
16.4.1 OpenHarmony命令行啟動hdcd
16.4.2 下載hdc_std工具
16.4.3 配置環境變量(Windows)
16.4.4 使用hdc_std安裝 HAP
16.4.5 Hi3516DV300的運行
16.4.6 hdc_std連接不到設備
第17章 OpenHarmony “HiSpark智能賽車”
17.1 鴻蒙 HiSpark智能賽車遊戲介紹
17.2 HiSpark智能賽車端實現
17.2.1 HiSpark賽車配置 WiFi網絡
17.2.2 HiSpark賽車電機驅動
17.2.3 HiSpark賽車操作控制
17.3 將賽車控制模塊添加到鴻蒙源碼並編譯
17.3.1 添加賽車控制模塊代碼
17.3.2 編譯 OpenHarmony源碼
17.3.3 燒錄 OpenHarmony
17.4 鴻蒙 HAP端控制賽車實現
17.4.1 賽車控制手柄界面實現??
17.4.2 將賽車控制手柄設置為橫屏模式
17.4.3 Java端通過Service Ability發送指令
17.4.4 賽車控制手柄界面邏輯實現
17.5 本章小結
第六篇 提 高 篇
第18章 輕鴻蒙端JavaScript框架
18.1 JerryScript輕量級引擎
18.1.1 編譯JerryScript
18.1.2 運行JerryScript
18.2 輕量級JS核心開發框架
18.2.1 JS Framework
18.2.2 組件綁定實現
18.2.3 路由實現
18.2.4 圖形繪制層
18.2.5 渲染流程
第19章 富鴻蒙端JavaScript框架
19.1 QuickJS引擎
19.1.1 安裝基礎編譯環境
19.1.2 通過Git下載 QuickJS源碼
19.1.3 編譯 QuickJS
19.1.4 編譯驗證JS
19.2 Google V8引擎
19.3 ArkUI JS Engine框架
19.4 新方舟編譯器(ArkCompiler 3.0)
第20章 類 Web範式組件設計與開發
20.1 JavaScript端組件設計
20.1.1 前端組件效果
20.1.2 組件的詳細設計
20.2 JS的界面解析
20.2.1 在dom_type中增加新組件的屬性定義
20.2.2 新增DOMMyCircle類
20.3 後端的布局和繪制
20.3.1 新增 MyCircleComponent類
20.3.2 新增 MyCircleElement類
20.3.3 新增RenderMyCircle類
20.3.4 新增FlutterRenderMyCircle類
本書詳細講解HarmonyOS ArkUI(方舟開發框架)的兩大UI框架:ArkUI JS(類Web範式框架)和ArkUI ETS(聲明式開發範式框架)。通過大量案例帶領開發者深入掌握HarmonyOS應用開發和基於OpenHarmony 3.0 LTS的智能家居方向應用開發。 本書分六篇共20章。第一篇為開發準備篇,共2章,介紹HarmonyOS的繫統特性、架構和應用開發環境搭建;第二篇為ArkUI JS UI篇,共4章,深入淺出地介紹ArkUI JS框架、內置組件、服務接口等,其中第5章通過一個分布式遊戲案例深入講解鴻蒙分布式應用開發的技巧,第6章深入講解原子化服務和服務卡片的開發;第三篇為JavaScript API篇,共5章,深入講解ArkUI JavaScript API;第四篇為ArkUI ETS UI篇,共3章,深入講解ArkUI ETS,其中第12章繫統講解ArkUI聲明式等