曲泉—HarmonyOS应用开发系列课(进阶篇)|自学笔记 原创 精华
曲泉—HarmonyOS应用开发系列课(进阶篇)
- 华为开发者学院、鸿蒙学堂
- 时间: 2021年7月12日19:15:48
一、课程介绍
- 课程是基于HarmonyOS应用开发的进阶系列课程,主要介绍HarmonyOS应用程序框架,HarmonyOS分布式软总线、任务调度,分布式数据管理、安全和隐私设和UX体验设计等内容,开发者能够独立开发HarmonyOS应用的能力。
二、第4期 HarmonyOS应用程序架构揭秘
- 多设备场景下应用开发的挑战和解决方案
HarmonyOS应用程序框架的架构和组成
Q&A
4.1 多设备场景下应用开发的挑战和解决策略
时间:2021年7月12日
4.1.1第一个挑战:
差异化多端显示、差异化交互方式
4.1.2解决的策略:
- UI信息结构的抽象
- 多态控件-表述统一
多态这里的意思就是,本质一样的东西在不同终端的表述方式是一样的,其目的是降低开发成本
- 动态化布局-按需取用
常常谈到的栅格化原子化布局,响应不同分辨率下界面的适配
- 工程模板-开箱即用
这个的话就感觉空空的,不过现在DevEco2.0已经有很多的基础模板了,但要想安卓那样有非常丰富的案例填充,还需要时间
交互事件归一
交互事件归一屏蔽差异
差异化反馈
一致化接口
4.1.3第二个挑战
多设备能力差异化
内存差异的硬件
主频差异的平台
4.1.4解决策略
统一开发范式(API)
统一范式API
前端框架
JS引擎
UI组件&设备能力
HAL&OS Kernel
HAL:Hardware Abstract Layer 硬件抽象层,
Kernel:Linux Kernel是一种开源电脑操作系统内核。
- 由于Linux Kernel需要遵循GPL开源协议,Google为了保护硬件厂商的利益,所以在Android系统中加入了HAL层,在HAL层中不必遵循GPL协议,所以代码可以封闭。
协同可伸缩的运行时
4.2 HarmonyOS应用程序框架的框架和组成
4.2.1应用程序框架组成
应用框架可以简单的看作是面对OS的接口,
部署态:
一个应用程序一般包括三个部分:
- UI描述(组件/布局,资源)
- 业务逻辑代码-为实现业务逻辑的共享库(SDK、第三方)
- 配置文件
运行态
- 应用程序框架
Ability
用户程序框架
UI编程框架
- 系统服务&运行时
- HAL&OSKernel
4.3 对应用框架的展开
- Ability(初衷解决多设备的情况下的一些问题)
包含元程序-元服务-系统服务
- Ability的类型
对于有UI的来说:元程序-Page(UI界面)-Slice(子页面)
对于无UI的来说:元服务-服务AbilitySA(数据AbilityDA)
- 生命周期的示例
- 进程线程模型
强调:元服务可以来自外部也可以来自云侧
profile=properties + file,属性文件
- 分布式调用、状态迁移/同步
在框架做了状态迁移同步的设施,比如说手机迁移到电视上,然后再迁移回来,过程中回调,做到数据同步。
- 在运行服务时,的架构视图
架构视图中有一些载体上包的下载、管理、安装、存储、查询。不单单是在单机上运行。
BMS(Bundle Manager Service):Bundle(捆绑)管理服务
AMS(Ability Manager Service):Ability管理服务
DMS(Distribute Manager Service):分布式管理服务
- ACE-Ability cross-platform Environment。就是支持主流的语言生态。目前就是JAVA和JavaScript。
- Java(命令式)-细腻度的UI接口、JS(声明式)-相对高层一点
学习思考:要做生态、就必须从现有生态出发!新事物总是脱胎于旧事物。这无可厚非。
- ACE JS 总体框架
- 其目的就是借用Web前端的简易开发的能力,同时结合后端高性能的能力
前端:JavaScript前端框架
后端:JS引擎和后端引擎再结合渲染引擎。(当然有一个中间转换层)
在底层的有跨平台的适配层
- 细说ACE JS的运行流程
就包含前端框架-中间桥接层-后端引擎-平台对接层
完全是多线程设计
- 应用示例后面接着讲的两种都是富设备架构
数据绑定的声明
这里更多的是应用本身的描述
拓展JS的一些能力,底层有多少能力都可调用。有一层薄薄的封装。平台桥接的一部分。
- 轻量化的框架
主要做了两件事情:
- 核心框架下沉**(就是C++化)**
- 轻量UI&组件
还有就是这部分的代码已经开源了OpenHarmonyOS
补充:因为资源的限制API部分会有不一样,就比如Lite Wearable里面就不支持canvas画布功能。
- ACE JAVA总体架构
偏向于命令式
- ACE JAVA渲染流程
- ACE Java应用示例
4.3 答辩环节
针对不同设计鸿蒙在不同设备下的UI设计,有不同风格的组件支撑,
Java编译后通过方舟运行,会变成相应的机器码
Js可以Call进行封装进行java开发
三、第五期 HarmonyOS分布式软总线
时间:2021年7月14日
5.1 分布式软总线设计理念与架构
- 作为通信底座,使多设备连起来
基础的基础
- 借鉴了计算机的硬件总线的方式。低时延、高带宽。
具有映射关系,
- 分布式软总线的特征
最基本最典型的特征:自动发现和即联即用
相当于硬总线的制作的难度软总线难度更高!技术难度很大!
- 软总线的整体架构
目标:无感自连
任务&数据总线就干活儿
总线中枢本质上是管理的工作
专门定制的协议货架
5.2软总线之发现连接与软总线之组网
- 从手动发现-自动发现
多设备中心多承载
- 传统组网方式
- 软总线的异构组网
用户不需要关系通过什么方式进行连接,也不需要知道其中的物理协议。
- 软总线带来的新的开发模式
5.3软总线的传输
- 如何保持高带宽、低延迟、高稳定
- 华为私人定义,统一的极简协议,
把四层简化为一层,把包层减少,增加了有效带宽
- 软总线的三大特征:全连接组网、自发现、极速传输
5.4答辩环节
安全做的很好,统一账号的自动发现
在后台发现,后台扫描,但做到了功耗降下来。!
底层还是做的wife和蓝牙
服务总线不属于分布式软总线的组成
四、第六期 全面解析HarmonyOS分布式数据管理平台
时间:2021年7月15日19:04:27
6.1 分布式数据管理平台设计理念
- 鸿蒙的分布式,三层一贯穿,分布式调度居上,分布式数据库居中,分布式软总线居下,安全与隐私贯穿。
- 分布式数据库其目的就是打破设备边界,整合数据,让孤立的数据整合成超级终端的数据,让应用程序和用户访问所有数据,并且不用感知数据具体存在的位置。
- 其核心特点是:快捷、高效、安全(存储安全、传输安全、使用安全、密钥管理)
6.2 分布式数据库库
- 主要应用在跨设备的数据库同步上
屏蔽了不同的数据传输通道
基于蓝牙、基于wife的几种传输方式都屏蔽了
- 分布式数据库架构视图&运行视图
分布式数据库主要包括(API、管理组件、存储引擎、同步组件、通信组件)
权限管理:保证数据物理上的隔离
备份管理:保证数据的可靠
密钥管理:支持设置为加密,双层密钥。
- 分布式数据库 数据模型
基于KV模型十分方便。
提供SCEMA和索引能力,支持关系型语义
- 分布式数据库 同步模型
无中心点对点的数据同步
自动同步模型:整个同步过程以及同步触发的动作都不需要应用程序和开发人员参与。
手动同步模型:同步过程不需要,但触发的动作需要
- 分布式数据库对外接口
- 模拟数据及其简单使用-(不太懂,要等以后详细学习)
- 数据模拟
- 创建SCHEMA分布式数据库
6.3 分布式文件系统
- 将孤立的本地文件系统进行联通组成虚拟的超级文件系统
- 这是一种能力,不需要频繁的传输,本身没有存储能力,始终处理的是一个文件
- 分布式文件系统架构视图&运行视图
- 沙箱体系(保证其安全性)
- 分布式文件系统设计原则&开发约束
为了节约终端设备的存储空间:单副本
离线与组网后的重命的问题,根据时间线来
- 分布式文件接口设计
- 分布式文件系统DEMO(这个DEMO很好懂)
6.4 融合搜索
时间:2021年7月15日21:36:12
- 融合搜索是什么及其应用场景
- 融合搜索架构视图&运行视图
Lucene搜索引擎:华为有自己的优化
融合搜索是基于分布式数据库、分布式文件系统、软总线、系统安全
提供的是端侧的离线的全文搜索引擎的能力(比安卓高)
- 融合搜索数据模型
- 融合搜索对外接口
- 融合搜索模拟数据
- 融合搜索配置索引属性
讲了INtType和统计的效果。
- 构造搜索条件
- 融合搜索Demo搜索
答疑环节
-
分布式数据库在多设备可以布置上去,后续考虑将云侧的能力融入
-
多个设备可以绑定一个设备吗?现在是一个账号做的,之后不一定。
-
分布式文件系统对生成时间来重命名
-
分布式文件系统不能只对单设备发送,开发的时候可以设置标签
-
融合搜索是在端侧能力,现在是基础的能力的保证
-
分布式模拟器组网在开发中了
-
融合搜索、分布式文件系统现在在1+8+N支持富设备
-
分布式数据库是本地优先
-
沙箱只有包名+签名一致才能互通
测试阶段:
- HarmonyOS分布式数据库StoreId最大支持128个字符。
- HarmonyOS分布式文件系统是堆叠式设计,兼容POSIX接口,访问方式与本地文件系统相同。
堆叠式设计:
本身不提供数据的存储能力,而直接利用下层文件系统存储数据。
-
、HarmonyOS融合搜索发起搜索时需先创建搜索会话,并在搜索结束时关闭搜索会话,释放内存资源。
-
HarmonyOS分布式数据库实现的是什么同步方式?(无中心)
-
HamonyOS分布式文件系统支持哪种安全隔离方式?(应用间接沙箱隔离)
-
HarmonyOS融合搜索功能不支持哪类设备?(现在支持富设备,所以手表不行)
-
HarmonyOS分布式数据数据管理平台的设计理念有哪些?(便捷、高效、安全)
-
HarmonyOS分布式数据库包括以下哪些组件?(五大 API 管理 存储 同步 通信)
-
HarmonyOS分布式文件系统有哪些开发约束?
易错
-
HarmonyOS融合搜索功能中关于索引属性和索引数据哪些是正确的?
易错
五、 第七期 分布式调度实现跨设备软件能力访问
时间:2021年7月16日13:11:30
7.1 分布式调度的概述
- 要解决什么问题
- 分布式调度构成超级终端的一层,重申分布式软总线是底层、分布式数据管理是中间,分布式调度是顶层。
- 使用软件上的能力,软件与软件、APP与APP
- 分布式能力简介
对于Ability的管理控制访问:
全局的查询、远程启动、远程连接、远程调用、轻量消息。
黄色为本次开放;
蓝色为未来开放
- 寻找可用的软件能力
- 启动其他设备上的软件
- 连接-断开其他设备上的软件
- 多层次全面的安全防护
和现在的电视投屏的区别:
安卓(DLNA-应用控制、XXXpast-刷新的图片)
轻量级的也支持不过干的事情很少
快应用是外部的应用技术,鸿蒙的是端侧的应用。不是一种。
现在的分布式是用户体验上的分布式
7.2 分布式调度的原理
时间:2021年7月16日13:33:19
- 序列化、RPC、代理
都是对接口的描述,
- 设备之间的访问
差异之后一个拿到handle以后直接调用,一个是拿到handle之后经过代理。就是多了两次的进程切换。
所以鸿蒙系统之间会打到更好的效果,
7.3 分布式调度的应用
- 分布式调度应用的场景
- 获取与解析在线设备列表
- 实现AbilityConnection接口
- 连接与远程调度
分布式调度接口:ConnectAbility
分布式调度比本地调度多出来的是:设备ID(handle)
分布式调度:降低分布式开发难度
分布式调度的功能:连接Ability、启动FA、发送轻量级消息(不包括权限管理)
分布式基础能力:分布式数据管理、分布式软总线、分布式调度
分布式调度安全防护:传输加密、设备认证、权限校验
六、 第八期 硬件虚拟共享:开发超级虚拟终端的创新体验
时间:2021年7月16日19:25:51
8.1 单一设备往超级终端发展面临的挑战
- 单一设备的挑战
- 使用方式限制
- 体验品质限制
8.2 硬件虚拟共享技术架构
- 以前的硬件
虚拟硬件资源池
南向:虚拟化南向SDK
软总线是毫秒级虚拟化技术
8.3 硬件虚拟化关键技术
- 硬件虚拟化为本地硬件
语音、摄像头
硬件资源会做全局抽象
- 硬件协同同步技术
网络时延会根据此波动再做技术。
反正就是保证大家体验的情况下做优化。
8.4 硬件虚拟化适用场景及集成案例
- 运动摄像头共享
运动相机的东西实时传输给手机。
- 绑定服务
- 发现设备
- 释放资源
相机、无人机、音频都可用
低时延系统已经解决了
阶段测试
硬件虚拟化接口:connect、enableVirtualDevice(sendData不是)
硬件虚拟化的唯一标识:硬件ID
硬件虚拟化需要解决的关键技术:外部设备硬件注册为本地硬件、硬件低延时使用、设备间协同音视频同步
七、第九期 HarmonyOS安全架构设计
时间:2021年7月16日20:08:26
9.1 HarmonyOS安全架构的设计理念
- 安全与隐私
原来:北向使用、南向管理,但鸿蒙要扩展成1+8+N所以有挑战
- 设计理念
BLP模型核心规则(不上读、不下写)
Biba模型核心规则(解决完整性的问题)
简单的说三正确
- 安全架构
9.2 如何利用HarmonyOS安全能力保护您的数据
- 安全目标
人、设备、数据
- 正确的人(基于离线的架构)
长时间持续生物特性认证
- 认证因子
- 分布式可信互联
防抵赖
- 分布式协同认证
- 设备的安全
关键在于芯片
- 认证等级
- 正确的数据
都有标签
- 分布式访问控制
9.3 利用HarmonyOS安全使能生态伙伴
- OS安全能力开放
开发者不需要担心,北向的话就有很多kit
- 拜占庭的安全系统
阶段测试
可信计算机的安全启动过程主要保护系统的完整性
在CC认证中,一般民用产品的最高等级是CC EAL5+
在HarmonyOS中用户的密码属于S4
身份认证的因子主要包括:你是谁、你有什么、你知道什么
拜占庭入侵容忍安全架构主要分为五个核心技术:识别风险、攻击检测、纵深防御、攻击响应、漏洞恢复
一般的国际上主流的隐私保护法律:GDPR、HIPPA、NIST
八、第十期 HarmonyOS生态设备UX体验设计
时间:2021年7月16日20:45:38
在南向设备以碰一碰为特征的进场设备连接和控制的交互体验*
10.1 从单设备体验到分布式超级终端的体验趋势
从单设备到分布式超级终端的体验趋势
- 市场趋势
提出Super Device的用户体验
10.2 HarmonyOS IOT设备体验模型
不管是南向还是北向都应该学习两个模型
- 近场的交互模型
碰-靠-扫的交互模型。
5cm-30cm-75cm
-
- 碰一碰
- 鸿蒙标签(不同设备)
- 未来做二码合一(NFC+二维码)
- 碰一碰
-
轻量的应用框架
- 轻量的应用框架
- 传统的设备连接体验
- 鸿蒙的连接体验
并行的无感配网
- 经典连接流程
- 总体优化
- 靠一靠就比如耳机+手机
- 通用模板
10.3 设计规范
- 设备控制组件
九、第十一期 HarmonyOS智能穿戴设计指南
时间:2021年7月16日21:06:00
11.1系统介绍与设计理念
主要是智能手表
- 功能分类
- 一目了然的设计原则
- 动态可视
- 左右上下的滑动
- 表盘设计
- 表盘开发工具
- widget卡片
- 应用架构(非空界、界面)
- 应用导航
11.2 架构导航与交互Pattern
- 各种手势
- 表冠
- 空界面之前有
- 更新、删除
- 异常
- 通知(主要针对手表,而不是轻量级手表)
11.3 视觉风格与样式
- 基础控件
- 重点阐述
- 按钮的推荐
- 进度条
- 弹出框
- 滚动条
- 列表
11.4基础控件
- 五大特征
- 色彩可读
细致研究了比例
- 背景色必须是黑色(续航)
- 高亮色规范
- 文本图表控件颜色
- 还有很多多彩色板,跟开发规范不是大关系。
- 字号规范
具体在文档规范有
- 字号规范示例
- 字体排版
- 间隔参数的定义
- 控件间距
- 文本间距
- 体统图表规范
- lancher图标规范
- 图标层级规范
- 图标背托规范
- 点击区域规范
阶段测试
空界面不一定要有标题
手表返回上一级是右滑
文字和背景的对比度不能小于8:1
在穿戴设备上,西文优选Roboto condensed&Google Noto
最小点击区域92px X 92px
页面设计排版是居中对齐
widget卡片应用仅有一屏时可以不做点击跳转,只有一个点击热区跳转入应用时,应避免和应用界面一致,
间隔参数包括:屏幕间距、空间间距、文本间距。
十、第十二期 HarmonyOS智慧屏设计规范讲解
时间:2021年7月16日22:04:36
12.1 智慧屏设计原则
- 沉浸(沉浸式设计体验)
- 智慧(智慧助手、隔空手势)
- 无缝(跨设备分布式能力)
12.2 远场交互定义与遥控器
- 人因研究
设备定位、使用场景、使用时间
- 遥控器
按键遥控器、滑动遥控器
笔者表示很多听不懂,只能听个热闹。
12.3 系统架构与应用架构
- 信息维度
- 系统架构
- 视频、信号、底部
- 控制中心
-
系统架构总结:最近任务、桌面、控制中心
-
通用应用布局
12.4 智慧屏内容风格呈现
- 杂志化排版
- 大标题
- 大画幅
- 大留白
- 宫格布局
- 色彩(高亮色)的使用跟手表很类似
- 系统宫格
- 样式建议
保证比例
- 圆角2vp 4vp 8vp
- 应用图片设计
- 应用图标设计
- 内容运营
尽量放在屏幕右侧
12.5 如何使用组件构建用户界面
- 智慧屏系统组件(标题栏)
- 智慧屏按钮设计
- 智慧屏工具栏
- 及时反馈与弹出框的优先级和场景的判断
- 单选多选一样的
- 文本框与搜索框逻辑上不同
- 菜单的样式(跟随目标、居中菜单)
- 要点总结
阶段测试
智慧屏比例16:9
焦点是在智慧屏交互场景下指引用户操作的主要目标
十一、 第十三期 HarmonyOS设备共性的通用性设计
时间:2021年7月16日23:33:25
13.1 通用设计概述
- 基于多设备的通用性技术设计
- 挑战:多设备、多场景
- 全场景体验:人-机-环
感觉前面的有些期就已经提及,当成巩固了
- 设计架构
- 符合设备特效的差异化
以手表为例
- 根据场景定义色彩(手表和智慧屏就已经提及)
- 字体:面向全场景的人因研究
13.2 动态布局
-
原子化布局能力
-
面临挑战。。老生常谈不想打字了。
-
七个原子布局能力
-
布局能力框架
- 拉伸能力
- 自适应缩放能力
- 隐藏能力
- 折行能力
- 均分能力
- 占比能力
- 延伸能力
- 能力都可以嵌套叠加,从外到内进行逻辑判断和计算
- 案例详解原子化布局
- 栅格布局系统
鸿蒙工具化了
感觉原子化布局能力特别适用与美术生或前端!!!!!!!!对于我们这种理科男,嗨,看看就行。
13.3 交互事件归一
- 多设备多交互,所以要归一
举例:缩放
- 归一框架
- 归一响应规则
其目的是增强体验、减少开发者的工作量
13.4 隐私保护
- 设计原则
- 六大原则
- 权限
- 八个可被申请的权限
- 权限说明
- 隐私声明(四大场景)
- 示例
- 撤销同意
感觉这里就是跟法律法规,应用层的数据安全相关的东西。
13.5 全球化
- 什么是全球化
让产品尽可能地在多种语言或文化下通用的解决方案
- 四个部分
- 文字部分
- UI界面
- 文化差异
- 地区标准
13.6 界面用语
- 好的界面用语:
书写风格统一、清晰明了、逻辑清晰、给用户带来良好的阅读体验
- 书写规则
- 一致
- 简洁
- 条理
- 亲和
- 灵动
表达应灵活多变,避免用词单一
- 得体
未做不当之事,无需抱歉
- 契合
表达要与所描述的设置特性切换
感觉这一节的课都关于文字的应用,理科男表示说得很有道理。
阶段测试
4栅格<520dp<=8栅格<840dp<=12栅格
拉升和缩放、均分和占比不能对同一个元素同时使用。
十二、 第十四期 HarmonyOS分布式设计
时间:2021年7月17日00:15:37
14.1 分布式设计理念&体验架构
还是在讲1+8+N
- 分布式设计理念
- 终端能力不同,形成硬件能力资源池,构成超级终端
- 分布式设计原则
- 体验增值
- 无缝流畅
- 清晰明确
- 易于理解
- 用户可控
- 沉浸无干扰
14.2 分布式连续性设计
-
任务的连续
- 通话的连续
- 推荐连续入口
- 任务手动接续
- 手动接续入口
- 任务自动接续
- 任务接续的场景
-
视音的连续
- 视频
- 音频
14.3 分布式协同设计
-
就是多设备一起用
-
软件协同
-
软件能力(软件能力池)
-
应用场景
-
-
硬件协同
- 硬件能力
-
六种硬件协同方式
-
显示协同
- 摄像协同
- 音频输入协同
- 音频输出协同
- 交互协同
- 传感器协同
-
基于设备特性的分布式设计
举例TV,手表
-
硬件协同的方法
- 列出可用设备
- 需要用到哪些能力(显示能力、交互输入能力、音频输出能力)
- 列出能力有优势的周边设备
- 选择合适的协同模式
- 考虑可用设备的其他的能力是否可以带来增值体验
- 硬件协同的分类
- UX体验设计回顾:
适应性设计、通用性设计、分布式设计
阶段测试
使用自动接续的控件进行分布式设计时,有必要在应用内提供允许用户关闭自动接续的开关
不属于显示协同模式的是全屏模式
不属于智慧屏特点的是交互方便
考试及其证书
时间:2021年7月17日01:00:58
总结:
鸿蒙学堂的《HarmonyOS应用开发系列课(进阶篇)》十一期的课程,学习了五天左右的时间,大致学了15-17个小时,1.25或1.5倍速学的。讲的特别特别的全面,不管是宏观的架构到场景,还是较为微观的举例和实战。讲课老师都是华为的实际开发团队的成员,很具有权威性。在课上即感觉最明显的几点,==框架场景的搭建、开发设计的规范、安全隐私的保护、分布式的全方面==。虽然讲到后面就有一种带着了解、带着长见识的态度去学习了,不过经过这门课的学习,终是学有所得,收获满满!
凌晨一点发文。。。。楼主注意身体呀。
哈哈哈 当时想着就剩一点点东西了,就冲了,结果加上综合考试和文档的总结还是到了一点。
先赞后看