>极客内参 > 技术 > 正文

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

转自华为开发者联盟【“蒙”友会“稿”起来】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模型进行开发。 鸿蒙开发HarmonyOS3.1 API8-》API9​

一、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” 鸿蒙开发HarmonyOS3.1 API8-》API9​

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

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

三、API8转API9的工程

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

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

2、部分转化

Context getContext(this) as AppContext.AbilityContext改为getContext(this) as any 页面路由表(放在main_pages.json里) { “src“: [ “pages/NavPage“, “pages/DetailsPage“, “pages/ProductDetailPage“ ]} Stage模型概念图 鸿蒙开发HarmonyOS3.1 API8-》API9​

四、API9的测试

1、测试设备

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

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

2、体验对比:

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

五、期待

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

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

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

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

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


企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

Baidu
map