1. 版本对应关系
鸿蒙官方于 2024.3.30 正式放开了 4.1 Release(API11) 版本的 API 文档,至此“野生”开发者们(未进行企业签约合作)就可以同步知晓正式的 API 支持哪些能力了。
一般自学鸿蒙开发,使用的教程和 IDE 可能都是 API 9 版本,系统兼容 HarmonyOS 3.1 和 HarmonyOS 4.0,也就是旧版本。
但新版鸿蒙系统(纯血鸿蒙) 并不是 HarmonyOS ,而是 Harmony OS Next,完全基于 OpenHarmony,去除了 AOSP 兼容,二者 SDK 版本并没有直接的对应关系,API 文档也不是一套(但是有继承关系)。
关于 OpenHarmony、HarmonyOS 和 HarmonyOS Next 的关系,可以参考这张图(图源,转侵删):
当下市面的 HarmonyOS4.0 系列,依旧包含 AOSP:
三者 logo 的区别:
具体 OpenHarmony 对应的套件版本参考如下:
系统版本 | 时间 | API | Public SDK | DevEco Studio |
---|---|---|---|---|
OpenHarmony v4.1 Release | 2024/03/30 | API 11 Release | Ohos_sdk_public 4.1.7.5 | DevEco Studio 4.1 Release |
OpenHarmony v4.0 Release | 2023/10/26 | API 10 Release | Ohos_sdk_public 4.0.10.13 | DevEco Studio 4.0 Release |
OpenHarmony v3.2 Release | 2023/04/09 | API 9 Release | Ohos_sdk_public 3.2.11.9 | DevEco Studio 3.1 Release |
2. 可用的 API 和 IDE
虽说最新的文档已经放开,但是 IDE 并没有直接放开(应该是签约合作后才可用),也就是 DevEco Studio 目前最新可用的还是 4.0 Release 版本,对应 API10,下载地址如下:
API11 对应的 4.1 Release IDE 已经放开:
即便有了 API10/11 ,对应的 IDE 也没有直接放开 API10/11 的虚拟机或是远程设备:
这也就导致了真机开发环境的不可用。如果年初没有参与鸿蒙 Next 版系统的预约测试,目前也就彻底没有了可运行的真机环境。
正常的 ArkUI 开发,使用 Studio 的预览器即可实时预览,但是涉及系统层 API ,比如操作 Ability 层 API 或者相机这类硬件资源,单纯的预览器就无法使用了,会直接报错。
3. 新版 ArkTS 的语法兼容性
API10 以后,鸿蒙针对 TS/JS 的标准库做了阉割(优化),很多常规的 TS 语法或者标准库的 API 将不再兼容,具体可以参考:
迁移指南参考: 适配指导案例
例如可能会遇到如下报错:
解释:ArkTS 不允许使用标准库函数 Function.apply、Function.bind 以及 Function.call
参考关键字: arkts-no-func-apply-bind-call)
适配写法为:
NavigationBar({
useCustomTitle: true,
// 利用箭头函数改变指针指向
// customTitle: (): void => this.customTitleBuilder(),
// 或者更直白一点
customTitle: () => {
this.customTitleBuilder()
},
useCustomRightArea: true,
customRightArea: this.customRightAreaBuilder,
backAction: () => {
router.back()
}
})