鸿蒙开发HarmonyOS3.1 API8-》API9​

文章介绍了HarmonyOS从API8升级到API9的变化,包括ArkTS声明式UI的性能优化、Ability框架和包管理的更新。开发者需要使用Stage模型进行新版本的应用开发,FA模型无法直接转换。文章还提到API9测试面临的挑战,如缺少详细转换文档和多样化的测试设备。最后,作者提出了对API9开发文档、示例和测试环境的改进期望。
摘要由CSDN通过智能技术生成

转自华为开发者联盟【“蒙”友会“稿”起来】API8-》API9

鸿蒙开发HarmonyOS3.1 API8-》API9​

随着系统的演进发展,HarmonyOS先后提供了两种应用模型:

  • FA(Feature Ability)模型: HarmonyOS API 7开始支持的模型,已经不再主=。
  • Stage模型: HarmonyOS API 9开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。

因此,开发API9或以上(也就是HarmonyOS3.1或以上)的应用,就必须使用Stage模型进行开发。
在这里插入图片描述

一、API8-》API9 变化:

1、ArkTS声明式UI更新机制优化

  • ArkTS声明式UI在API9上优化了相关UI更新机制,当自定义组件的某个状态变量发生变化导致自定义组件重新渲染时,仅执行该自定义组件build函数中的部分UI描述(使用了该状态变量的内置UI组件的UI描述)来实现更高性能的UI更新。
  • 而API8及以前在状态变量发生变化时会执行build函数中的全量UI描述来实现UI更新。

2、Ability框架

  • 应用组件启动规则变更
  • API异常处理方式变更
  • 部分接口废弃并新增对应替代接口
  • 请求权限对应接口的变更

3、包管理

  • 包管理API异常处理方式变更,原有API8及之前的接口废弃,使用新的API9接口

等等。

二、新建API9的工程

1、按照官方教程使用ArkTS语言开发(Stage模型),可以非常清晰简单地创建ArkTS工程。关键点:

  • Compile SDK选择“3.1.0(API 9)”
  • Model 选择“Stage”

2、使用DevEco Studio的QuickStart也非常方便

三、API8转API9的工程

1、FA模型不能直接转换为Stage模型

API8的工程都是FA模式,不能直接转换为API9的Stage模型的,但是官方提供了一定的辅助功能,在工程切换API后,会把工程目录更新一遍。后面就需要根据工程项目的实际编码,靠自己逐个转化。

2、部分转化

  • Context
getContext(this) as AppContext.AbilityContext
改为
getContext(this) as any
  • 页面路由表(放在main_pages.json里)
{
  "src": [
    "pages/NavPage",
    "pages/DetailsPage",
    "pages/ProductDetailPage"
  ]
}
  • Stage模型概念图

四、API9的测试

1、测试设备

在这里插入图片描述

从DevEco Studio的Device Manager可以看到,IDE提供了本地模拟器、远程模拟器和远程真机的测试方式,当然,如果有HarmonyOS3.1的真机设备,也可以真机调试。其中,远程真机只有API6和API8的机器,期待上线API9的远程真机。

2、体验对比:

  • 真机>远程真机>本地模拟器>远程模拟器
  • 目前本地模拟器比较慢(占用大量资源),远程模拟器画质受网速影响比较大,远程真机还没有API9,手上的设备也还没能升到API9,也就是HarmonyOS3.1……期待、等待……

五、期待

开发API9的Stage模型应用还是处于过渡到统一的阶段,免不了一些取舍,需要做一定的转化兼容适配。相信华为能很快迭代好。在这个过程,也适当提出一些开发API9的问题和建议:

1、找不到API8转化到API9合适的文档资料,也没有教程,只有零碎的API规则说明。

2、API9的测试还是比较麻烦,如上述对测试的说明。

3、API9,Stage模型的例子、模板太少。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值