HarmonyOS应用开发实战(JavaScript版)

HarmonyOS应用开发实战(JavaScript版)"

作者:徐礼文
ISBN:9787302600312
定价:¥129
字数:千字
页数:
出版时间:2022.03.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书详细讲解HarmonyOS ArkUI(方舟开发框架)的两大UI框架:ArkUI JS(类Web范式框架)和ArkUI ETS(声明式UI范式框架)。通过大量案例带领开发者深入掌握HarmonyOS轻应用(ArkUI JS)、富应用(ArkUI ETS)、和智能家居(OpenHarmony 3.0 LTS)方向应用开发。

本书共6篇20个章节。第一篇为开发准备篇,共2章,介绍HarmonyOS的系统特性,架构和应用开发环境搭建;第二篇为类Web范式框架篇,共4章,深入浅出介绍ArkUI JS框架、内置组件、服务接口等,第5章通过一个分布式游戏案例深入讲解鸿蒙分布式应用开发的技巧,第6章深入讲解原子化服务和服务卡片的开发;第三篇为接口篇,共5章,深入讲解ArkUI JavaScript API;第四篇为声明式UI范式篇,共3章,深入讲解ArkUI声明式UI框架(ArkUI ETS),本篇第12章系统讲解ArkUI声明式框架的开发语言TypeScript,本篇第14章通过深入介绍ArkUI ETS实战:华为商城APP开发;第五篇为OpenHarmony篇,共3章,分别介绍OpenHarmony 3.0LTS的源码下载、编译、烧录和北向和南向应用开发;第六篇为提高篇,共3章,分别介绍轻鸿蒙端JavaScript框架和富鸿蒙端JavaScript框架的原理,最后一章详细介绍如何给开发一个类Web范式的组件,并提交给Gitee OpenHarmony仓库。

学习本书内容,需要具备一定的HTML、CSS、JS基础知识,希望本书能够对读者学习使用鸿蒙开发者框架构建美观,快速,跨终端的移动应用程序有所帮助。

前言

随着IoT产业的快速发展,消费者手中拥有越来越多的智能设备,但当前智能设备的操作系统仍然是以面向单设备的体验为主,没有发挥出多设备协同的优势,少量设备互联的体验难以在整个生态内系统性地规模复制。

HarmonyOS作为万物互联时代的操作系统,用革命性的分布式技术带来“超级终端”,实现多终端协同,为用户提供“超级应用”和“超级服务”。对于设备厂家,基于HarmonyOS,可以更便捷地加入IoT生态,实现设备智能化的产业升级。对于应用厂家,基于全新的操作系统HarmonyOS可将应用触达更多类终端(包括手机),发掘更多流量入口,吸引更多用户,实现从智能手机市场到全新万物互联市场的变革。

在2020年9月10日的华为开发者大会上,HarmonyOS开源项目OpenHarmony正式对公众开源,并托管在开放原子开源基金会,首个版本支持128KB~128MB设备。自9月开源以来,得力于广大开发者的关注及贡献,OpenHarmony开源社区已陆续发布了1.0初始版本、3.0 LTS版本,完善了SIG申请及项目孵化机制、第三方库组件组织代码库及Codelabs样例代码库,并已成为Gitee平台热度最高的开源项目之一。

2021年,升级到HarmonyOS的华为自有品牌手机超过1亿部,OpenHarmony生态也逐步建立起来,华为和美的打造的智能家居操作系统已发布。HarmonyOS正在逐步改变国内产业生态和国际产业竞争格局。

希望本书能够帮助HarmonyOS应用开发爱好者打开国产操作系统应用开发之门,正如华为消费者业务CEO余承东先生所说: “没有人能够熄灭满天星光,每位开发者都是华为公司要汇聚的星星之火,星星之火可以燎原。”HarmonyOS正聚集每位开发者的努力和贡献,

HarmonyOS作为底层基石为企业数字化赋能,其芯片、人工智能等技术通过云端输出,为全球数字化创新带来了崭新的活力。基于HarmonyOS打造的HMS移动生态将是继安卓、iOS后全球第三大移动应用生态。

本书特色

本书详细讲解HarmonyOS ArkUI的两大UI开发框架: ArkUI JS 和ArkUI ETS。通过大量案例带领开发者深入掌握HarmonyOS轻设备(ArkUI JS)、富设备(ArkUI ETS)和智能家居(OpenHarmony 3.0 LTS)方向应用开发,通过游戏案例教学的方式,让读者快速学习和掌握基于HarmonyOS的应用开发。同时本书提供了大量的代码示例,读者可以通过这些例子理解知识点,也可以直接在开发实战中修改并应用这些代码。另外,笔者专门为本书中的游戏实战章节录制了高清配套教学视频,并提供了本书涉及的源代码,以便于读者高效、直观地学习。

本书内容

本书分六篇共20章,主要内容如下: 

第一篇,共2章,介绍HarmonyOS的系统特性、架构和应用开发环境搭建; 

第二篇,共4章,深入浅出地介绍ArkUI JS框架内置组件、服务接口等,其中第5章通过一个分布式游戏案例深入讲解鸿蒙分布式应用开发的技巧,第6章深入讲解原子化服务和服务卡片的开发; 

第三篇,共5章,深入讲解ArkUI JavaScript API; 

第四篇,共3章,深入讲解ArkUI声明式UI框架(ArkUI ETS),其中第12章系统讲解ArkUI声明式框架的开发语言TypeScript,第14章深入介绍ArkUI ETS实战: 华为商城App开发; 

第五篇,共3章,介绍OpenHarmony 3.0 LTS的源码下载、编译、烧录、北向和南向混合应用开发; 

第六篇,共3章,介绍轻设备端JavaScript框架和富设备端JavaScript框架的原理,其中第20章详细介绍如何开发一个类Web范式的组件,并提交Gitee OpenHarmony仓库。

本书读者对象

学习本书内容需要具备一定的HTML、CSS、JavaScript基础知识,希望本书能够对读者学习使用鸿蒙开发者框架构建美观、快速、跨终端的移动应用程序有所帮助。本书适合HarmonyOS应用开发爱好者,以及嵌入式爱好者阅读。

致谢

感谢华为杭州研究所JS开发框架负责人吴勇辉、HarmonyOS JS框架架构师马家骏在写作本书过程中提出的宝贵改进意见,以及在写作本书过程中华为上海研究所于小飞提供的支持与帮助。

目前HarmonyOS ArkUI框架版本迭代较快,本书所涉及的内容可能在未来鸿蒙的框架版本中有所变化,望大家谅解。

徐礼文2022年1月

本书源代码

目录

第一篇开发准备篇

第1章HarmonyOS系统简介

1.1HarmonyOS的设计目标

1.1.15G万物互联时代

1.1.2物联网操作系统碎片化

1.1.3下一代操作系统的发展方向

1.2HarmonyOS技术特性

1.2.1分布式架构

1.2.2操作系统可裁剪

1.2.3一套代码多端运行

1.3HarmonyOS技术架构

1.3.1内核层

1.3.2系统服务层

1.3.3架构层

1.3.4应用层

1.4HarmonyOS与LiteOS

1.4.1LiteOSA 简介

1.4.2LiteOSM 简介

1.5OpenHarmony生态

1.5.1Android与AOSP

1.5.2HarmonyOS与OpenHarmony

1.6HarmonyOS与Fuchsia OS

1.6.1Fuchsia OS系统架构

1.6.2Fuchsia 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.1ArkUI JS框架介绍

3.1.1ArkUI JS框架的特征

3.1.2ArkUI JS架构介绍

3.1.3ArkUI 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.1Flexbox布局

3.4.2Grid网格布局

3.5语法详细讲解

3.5.1HML语法

3.5.2CSS语法

3.5.3JS逻辑

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.1JavaScript调用Service Ability

4.1.1JS端调用远端Service Ability

4.1.2JS端订阅远端Service Ability

4.2JS端调用音乐播放Service Ability

4.2.1申请分布式使用权限

4.2.2创建Java端Service Ability

4.2.3音乐播放器前端的UI

4.2.4封装JS前端调用Service Ability的方法

4.2.5JS端调用Service Ability的方法

4.2.6音乐播放器遥控UI

4.2.7音乐播放器遥控逻辑实现

4.2.8通过实体音量键控制远程设备音量

4.2.9JS端订阅Service Ability中的播放状态

4.2.10本节小结

4.3JavaScript项目混合Java UI开发

4.3.1JS Ability和Java Ability跳转

4.3.2JS端调用相机拍照功能

第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.2WebSocket

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.1ArkUI TypeScript介绍

12.2etsloader编译ETS

12.3TypeScript基础数据类型

12.3.1布尔值

12.3.2数字

12.3.3字符串

12.3.4数组

12.3.5元组

12.3.6枚举

12.3.7any

12.3.8void

12.3.9null和undefined

12.3.10never

12.4TypeScript高级数据类型

12.4.1泛型

12.4.2交叉类型

12.4.3联合类型

12.5TypeScript面向对象特性

12.5.1类

12.5.2接口

12.6TypeScript装饰器

12.6.1属性装饰器

12.6.2方法装饰器

12.6.3参数装饰器

12.6.4类装饰器

12.7TypeScript模块与命名空间

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.3AppStorage与组件同步

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.2JS标签配置

13.6.3app.ets

13.6.4资源访问

13.6.5像素单位

13.7界面布局

13.7.1Flex布局

13.7.2Grid布局

13.7.3堆叠布局

13.7.4栅格布局

13.8基础组件

13.8.1Text组件

13.8.2Button组件

13.8.3Image组件

13.8.4List组件

13.8.5Swiper组件

13.8.6Tabs组件

13.8.7Scroll组件

13.8.8AlertDialog组件

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.1OpenHarmony介绍

15.2OpenHarmony 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.1OpenHarmony命令行启动hdcd

16.4.2下载hdc_std工具

16.4.3配置环境变量(Windows)

16.4.4使用hdc_std安装HAP

16.4.5Hi3516DV300的运行

16.4.6hdc_std连接不到设备

第17章OpenHarmony “HiSpark智能赛车”

17.1鸿蒙HiSpark智能赛车游戏介绍

17.2HiSpark智能赛车端实现

17.2.1HiSpark赛车配置WiFi网络

17.2.2HiSpark赛车电机驱动

17.2.3HiSpark赛车操作控制

17.3将赛车控制模块添加到鸿蒙源码并编译

17.3.1添加赛车控制模块代码

17.3.2编译OpenHarmony源码

17.3.3烧录OpenHarmony

17.4鸿蒙HAP端控制赛车实现

17.4.1赛车控制手柄界面实现

17.4.2将赛车控制手柄设置为横屏模式

17.4.3Java端通过Service Ability发送指令

17.4.4赛车控制手柄界面逻辑实现

17.5本章小结

第六篇提高篇

第18章轻鸿蒙端JavaScript框架

18.1JerryScript轻量级引擎

18.1.1编译JerryScript

18.1.2运行JerryScript

18.2轻量级JS核心开发框架

18.2.1JS Framework

18.2.2组件绑定实现

18.2.3路由实现

18.2.4图形绘制层

18.2.5渲染流程

第19章富鸿蒙端JavaScript框架

19.1QuickJS引擎

19.1.1安装基础编译环境

19.1.2通过Git下载QuickJS源码

19.1.3编译QuickJS

19.1.4编译验证JS

19.2Google V8引擎

19.3ArkUI JS Engine框架

19.4新方舟编译器(ArkCompiler 3.0)

第20章类Web范式组件设计与开发

20.1JavaScript端组件设计

20.1.1前端组件效果

20.1.2组件的详细设计

20.2JS的界面解析

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 和ArkUI ETS。通过大量案例带领开发者深入掌握HarmonyOS轻应用(ArkUI JS)、富应用(ArkUI ETS)、和智能家居(OpenHarmony 3.0 LTS)方向应用开发,通过游戏案例教学的方式,让读者快速学习和掌握基于鸿蒙操作系统的应用开发的能力。同时本书中提供了大量的代码示例,读者可以通过这些例子理解知识点,也可以直接在开发实战中稍加修改应用这些代码。

作者寄语

徐礼文,华为认证HDE (HUAWEI Developer Experts)、华为首届HarmonyOS开发者创新大赛导师、开放原子开源基金会教育认证讲师、iCAN全国大学生创新创业大赛优秀导师。曾担任资深软件开发工程师、系统架构师、技术总监等职务,从事软件研究和开发15年。主要从事跨平台技术、人工智能、区块链,以及数字化架构方向的研究和技术指导工作,对国内外相关领域的技术、理论和实践有很深的理解和研究。

电子资料

www.luweidong.cn

下一个