鸿蒙HarmonyOS开发高级认证知识点总结
应用架构的演进
- 单体架构:早期的应用开发模式,所有功能集成在一个应用内,部署和维护相对简单,但随着应用复杂度增加,其缺点逐渐显现,如难以扩展、部署缓慢等。
- 微服务架构:将单体应用拆分为多个独立的服务,每个服务负责一部分业务功能,服务间通过轻量级通信协议进行交互。这种架构提高了系统的可扩展性和可维护性。
- Serverless架构:一种更进一步的架构模式,开发者无需关心服务器的管理,只需编写代码,由云服务商负责运行环境的搭建、扩缩容等,进一步降低了运维成本。
ArkUI与声明式开发
ArkTS 开发范式
- ArkTS:是鸿蒙操作系统中的一种开发语言,基于TypeScript,为鸿蒙应用提供了一种高效的开发方式。它允许开发者使用TypeScript的语言特性来编写鸿蒙应用,同时享受鸿蒙操作系统提供的强大的开发框架和组件。
ArKUI声明式开发范式
- 基本组成:包括装饰器、自定义组件、UI描述、内置组件、属性方法、事件方法等。
- ArkUI声明式开发:ArkUI是鸿蒙操作系统的声明式UI开发范式,它允许开发者通过声明式的方法来构建用户界面。
- ArkTS声明式开发组成:包括装饰器、自定义组件、UI描述、内置组件、属性方法、事件方法。
- 状态数据触发方法:@state修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。
- state状态数据特征:@State变量必须给定初始值,否则编译器无法推断其类型。
配置与管理
版本管理
- 版本发布:在软件开发中,发布版本是一个重要的过程。一旦版本发布,该版本的代码将被冻结,不可再进行更改。这是为了确保生产环境中的稳定性和可预测性。
- 版本迭代:新功能的添加和bug的修复通常在新版本中进行。开发者可以在新版本中进行更改,并通过发布新版本来更新应用。
- 云函数触发器:云函数在打包前,创建对应的触发器。
- 端云一体化开发:使用端云一体化开发,开发者无需自己搭建服务器,并进行运维,因为云服务提供了后端服务的托管和运维。
- 端云一体化费用:并不是所有使用端云一体化的云端资源都需要支付费用,有些服务可能有免费额度或免费层。
- 页面路径配置:在
main_pages.json
文件中可以设置页面的路径配置信息。
- ohpm三方库依赖:引用ohpm(OpenHarmony Package Manager)三方库的包依赖是在
oh-package.json5
配置文件中设置的。
- 应用包名与
config.json
:创建应用时,应用包名需要和config.json
文件中的bundleName
字段保持一致。
- 应用或元服务软件包格式:上传鸿蒙应用或元服务软件包时,软件包的格式是
.app
。
- 应用包名规范:应用包名不能包含系统保留字段,如
.system.
、.harmony.
、.ohos
等,应采用反域名形式。其他如 test
之类可以
鸿蒙应用/元服务上架问题
- 包括软件包中的发布Profile文件和当前上传软件包的应用不匹配、软件包中的发布证书与发布Profile文件中的发布证书不匹配、软件包未签名导致提示非法软件包、软件包中使用证书已经失效或过期。
兼容性与特征能力
认证服务
- 手机号码登录:认证服务提供了多种登录方式,包括手机号码登录。在进行手机号码登录时,需要填写正确的国家码以确保短信验证码等能够正确发送到用户手机。86-189****1234
- 权限控制:认证服务还提供了用户身份验证和授权管理功能,是数据访问权限控制的基础。通过认证服务,可以确保只有授权用户才能访问特定的数据和服务。
- HarmonyOS兼容性:HarmonyOS应用可以兼容OpenHarmony生态,这意味着开发者可以为不同的鸿蒙版本开发应用。
- 鸿蒙特征能力:跨端迁移和协同是鸿蒙特征的能力之一,属于“统一生态”特征。
- 鸿蒙特征场景化能力:包括一次开发、多端部署、可分可合、自由流转、统一生态、原生智能。
- 一次开发多端部署层次:包括界面级-多、功能级-多、工程级-多。
- 华为账号认证:认证服务支持华为账号认证。
测试与发布流程
Serverless服务
- 云函数:Serverless服务的一种,允许开发者编写和部署代码而无需管理服务器。云函数按实际使用计费,具有弹性伸缩和免运维的特点。
- 云数据库和云存储:提供了数据存储和访问的能力,也是Serverless服务的一部分。它们可以根据实际使用情况进行自动扩缩容,简化了数据管理。
- 鸿蒙应用获取:发布后的鸿蒙应用可以在华为应用市场获取。
- 开放式测试体验:受邀测试用户可以通过进入服务中心,打开“开发者测试”开关,在最下方的“服务测试”找到待体验的元服务。
- 追加测试用户:发布开放式测试版本后,可以手动添加追加用户。
- 开放式测试版本审核:发布开放式测试版本后,不需要人工审核。
- 元服务测试用户列表:元服务创建测试用户时,用户列表存储位置需要选择,例如选择地区“中国”。
- 开放式测试版本时间限制:开放式测试版本的测试时间是有限制的,具体时长需根据开发者在发布时设置。
- 追加测试用户流程:发布开放式测试版本后,开发者可直接在当前版本追加新的测试用户,并通过系统发送邀请。
- 发布应用Profile类型:发布HarmonyOS应用时,需要创建的Profile类型是发布类型。
线程与后台任务处理
Worker线程
- worker线程:worker线程是用于执行后台任务的,它不支持UI操作,因为它是在一个没有UI上下文的环境中运行的。
- Worker线程与UI操作:Worker线程不支持UI操作,主要用于执行耗时操作,以避免阻塞UI线程。UI更新需通过与UI线程的通信实现。
- Worker线程数量限制:Worker线程的最大同时激活数为8,以确保系统资源的合理分配和有效管理。
通信协议与数据管理
云函数包格式
- .zip包:云函数的部署包通常是以.zip格式提供的压缩包,包含了函数的代码、依赖库以及其他必要的配置文件。
- WebSocket协议:模块提供的全双工通信协议是WebSocket。
- 首选项存储:首选项(Preferences)是一种轻量级的存储解决方案,用于存储应用的设置信息。在鸿蒙中,首选项的Key是唯一的,不能重复。
- 首选项数据库特性:首选项是非关系数据库,它不支持ACID特性,因为它主要用于存储简单的键值对数据。
- HAP包大小:元服务包由一个或多个HAP包组成,每个HAP包不得超过10MB,以提供秒开体验。
- 端云一体化开发:端云一体化开发允许开发者无需自建服务器和进行运维,利用华为云提供的Serverless服务进行应用开发。
服务
- 认证服务:支持华为账号认证。
- 公共事件服务:提供订阅、发布和取消订阅公共事件的能力。
- 加密:HUKS的中文全称是“通用秘钥库系统”。
- WebView:HarmonyOS提供的WebView支持与H5双向通信。
端云一体化开发
端云一体化
- 优势:端云一体化开发允许开发者在一个工程内同时开发端侧和云侧代码,降低了后端开发的门槛。云侧基于Serverless构建,具有弹性伸缩和免运维的优势。此外,HarmonyOS的DevEco Studio提供了强大的开发工具支持。
- 开发语言:端云一体化开发中,前后端都可以使用TypeScript,无需精通多种语言。
- DevEco Studio实现端云一体化:通过工程模板来实现。
- 支持的最低鸿蒙API版本:端云一体化支持的最低API版本是9。
- 工程目录结构:分为端开发工程Application、云开发工程CloudProgram、端侧公共库Extrernal Libraries。
- 集成的服务SDK:包括云函数、云数据库、云存储。
- 云函数调用:云函数触发器创建时机应在云函数打包之前创建对应函数的触发器。
- 云端资源:使用端云一体化的云端资源不一定需要支付费用,存在免费档套餐。
组件开发
页面栈
- 页面栈数量:每调用一次
router.pushUrl()
方法,默认情况下,页面栈数量会增加1。鸿蒙系统对页面栈的数量有限制,通常是32个。
- 页面跳转销毁:
router.replaceUrl()
方法可以跳转到一个新页面,并销毁当前页面。
Tab组件页签
- Tabs组件页签位置:当
barPosition
为End
,vertical
属性为true
时,页签位于容器右侧,而不是底部。
Column和Row容器组件
- 子组件对齐:
alignItems
用于设置子组件在交叉轴方向上的对齐格式,而justifyContent
用于设置子组件在主轴方向上的对齐格式。
自定义组件和子组件
- 生命周期:每个自定义组件都有自己的生命周期,但并非所有生命周期函数都对所有组件有效。
- 自定义组件生命周期:每一个自定义组件
@Component
都有自己的生命周期,但注意 Page
相关的周期只有 @Entry
的页面入口有。
- 自定义组件生命周期时机:
aboutToAppear()
在build
函数之前执行。用于组件显示前的准备工作。
- 父子组件双向数据绑定:使用
@State
和 @Link
进行数据双向绑定。
Video组件
- 回调事件:
onPrepared
事件用于在视频准备完成时获取视频时长。容易混淆的是onStart
视频播放时触发该事件,但在这里无法获取视频时长。
组件化特点
- 特点:自定义组件的组件化特点包括可组合、可重用、配置化生命周期。数据驱动更新。
容器组件滚动
- 可滚动组件:
Scroll
、List
、Grid
等容器组件可以滚动。
组件层次结构
- 层次结构正确性:正确的层次结构应符合父子组件的嵌套关系。
- 正确的层次结构包括:
Text>Span
、Button>Column>Image
、Column>Row>Button
。
其他
- 鸿蒙应用获取渠道:发布后的鸿蒙应用可以在华为应用市场获取。
- 帐号认证方式:HarmonyOS认证服务支持华为帐号。
- UIAbility启动模式:
muliton
为多实例模式,每次startAbility
都会启动一个新的实例,但系统默认启动模式为singleton
。
- 证书类型:发布应用时要创建证书,证书类型应选择“发布证书”。
- 公共事件服务能力:包括订阅公共事件、发布公共事件、取消订阅公共事件。注意,没有取消发布, 都发出去了怎么取消。
- 端云一体化集成服务SDK:包括云函数、云数据库、云存储。注意没有云托管。
- 端云一体化云函数操作:包括编写函数、测试函数、打包函数、部署函数。
- UIAbility生命周期函数:包括
onCreate
、onForeground
、onBackground
、onDestroy
。
- 开放式测试体验:受邀测试用户需点击邀请链接接受邀请,然后跳转到应用市场或搜索待体验的元服务名称进行体验。
- 软件包格式:鸿蒙应用或元服务软件包的格式为
.app
,由一个或多个HAP和描述每个HAP属性的pack.info
组成。注意区别云函数是 zip
。
- Profile文件的必要性:一个完整的软件包需要有一个Profile文件,用于描述应用的配置信息,如包名、版本号、设备类型等。
- 开放式测试版本时间限制:开放式测试版本的测试时间是有限制的,具体时长需根据开发者在发布时设置。
- 组件子组件包含:
LoadingProgress
组件通常不包含子组件,而Button
、Text
和Row
等组件可以包含其他子组件。
- ohpm三方库依赖配置:引用ohpm三方库的包依赖在
oh-package.json5
配置文件中设置。
- module.json5配置信息:
module.json5
中包含Ability的配置信息、设备类型信息和应用权限申请列表。注意应用名和应用版本不在这里而在 app.json
。
- 鸿蒙
- 开发