目录 第一篇开发准备篇 第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类