HarmonyOS 鸿蒙Next关于鸿蒙开发时候的导入模块

HarmonyOS 鸿蒙Next关于鸿蒙开发时候的导入模块 我想问一下旧版本的导入模块@ohos这样的在哪里能够找到,现在基本上都是新版@kit的导入格式了

11 回复

尊敬的开发者,您好,在DevEco Studio中,可以通过按Ctrl + 鼠标左键,跳转到相关的@ohos模块。

  1. 在官方文档中部分API会有说明,举例: 例如在 PhotoPickerComponent,文档中会在导入模块说明,在API version 23之前的版本中,需要使用’import { api1, api2, … } from @ohos.file.PhotoPickerComponent’的导入方式。之后使用@kit.MediaLibraryKit的方式。

  2. 在DevEco Studio通过按Ctrl + 鼠标左键跳转之后的@kit.xxx.d.ts文件,是 HarmonyOS Kit 的 TypeScript 类型声明文件 例如@Kit.ArkUI.d.ts,是 HarmonyOS ArkUI Kit 的 TypeScript 类型声明文件,用于为ArkUI框架提供完整的类型定义和API接口声明。

更多关于HarmonyOS 鸿蒙Next关于鸿蒙开发时候的导入模块的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


背景知识:

@ohos@kit 的区别:

特性 @ohos.* @kit.*
适用范围 面向 OpenHarmony 生态,基础通用服务 侧重华为产品线增强功能
模块组织 分散的单一模块 按功能领域整合的 Kit 包
兼容性 HarmonyOS Next 可使用 OpenHarmony 不支持
推荐程度 旧版本,逐步过渡 新版本,推荐使用

整理了常用模块的 @ohos@kit 对应关系:

旧版 @ohos 新版 @kit 功能说明
@ohos.hilog @kit.PerformanceAnalysisKit 日志打印
@ohos.app.ability.UIAbility @kit.AbilityKit UIAbility 组件
@ohos.bundle.bundleManager @kit.AbilityKit 应用包管理
@ohos.data.preferences @kit.ArkData 用户首选项
@ohos.net.http @kit.NetworkKit HTTP 数据请求
@ohos.file.fs @kit.CoreFileKit 文件管理
@ohos.file.fileuri @kit.CoreFileKit 文件 URI
@ohos.settings @kit.BasicServicesKit 设置数据项
@ohos.request @kit.BasicServicesKit 上传下载
@ohos.i18n @kit.LocalizationKit 国际化 I18n
@ohos.intl @kit.LocalizationKit 国际化 Intl
@ohos.bluetooth.access @kit.ConnectivityKit 蓝牙 access
@ohos.bluetooth.connection @kit.ConnectivityKit 蓝牙连接
@ohos.wifiManager @kit.ConnectivityKit WLAN 管理
@ohos.security.cryptoFramework @kit.CryptoArchitectureKit 加解密算法库
@ohos.security.cert @kit.DeviceCertificateKit 证书模块
@ohos.multimedia.sendableImage @kit.ImageKit 图片处理
@ohos.graphics.text @kit.ArkGraphics2D 文本排版
@ohos.faultLogger @kit.PerformanceAnalysisKit 故障日志

参考实例:

//日志
// 旧版
import hilog from '[@ohos](/user/ohos).hilog';

// 新版(推荐)
import { hilog } from '[@kit](/user/kit).PerformanceAnalysisKit';

//http请求
// 旧版
import http from '[@ohos](/user/ohos).net.http';

// 新版(推荐)
import { http } from '[@kit](/user/kit).NetworkKit';

ArkTS API兼容性保护

随着HarmonyOS 持续迭代,为确保持续兼容老版本用户,开发者常需设置较低的compatibleSdkVersion。但这可能导致应用在低版本系统上因调用未受保护的新 API 而崩溃(如低版本设备误调高版本接口)。为了解决这一痛点,帮助开发者在调用新 API 时做好版本隔离,我们提供了以下几种兼容性保护的最佳实践。

https://developer.huawei.com/consumer/cn/doc/harmonyos-releases/arkts-api-compatibility-warning-elim

ohos是原来比较分散的功能包和库,进化发展过程中kit把他们整合归类了,接着就Kit壮大了。看看kit的前世。
从HarmonyOS NEXT Developer Preview1(API 11)版本开始,HarmonyOS SDK以Kit维度提供丰富、完备的开放能力,涵盖应用框架、系统、媒体、图形、应用服务、AI六大领域,例如:

  • 应用框架相关Kit开放能力:Ability Kit(程序框架服务)、ArkUI(方舟UI框架)等。
  • 系统相关Kit开放能力:Universal Keystore Kit(密钥管理服务)、Network Kit(网络服务)等。
  • 媒体相关Kit开放能力:Audio Kit(音频服务)、Media Library Kit(媒体文件管理服务)等。
  • 图形相关Kit开放能力:ArkGraphics 2D(方舟2D图形服务)、Graphics Accelerate Kit(图形加速服务)等。
  • 应用服务相关Kit开放能力:Game Service Kit(游戏服务)、Location Kit(位置服务)等。
  • AI相关Kit开放能力:Intents Kit(意图框架服务)、HiAI Foundation Kit(HiAI Foundation服务)等。

如果想找ohos,在DevEco IDE里可以找。比如 Ability Kit:
cke_10990.png
参考:《应用开发导读》

可以这样理解:

现在 HarmonyOS NEXT 已经逐步从旧版 [@ohos](/user/ohos).xxx 导入方式,迁移到了新版 @kit.xxx 导入方式。

比如以前:

import prompt from '[@ohos](/user/ohos).prompt'
import router from '[@ohos](/user/ohos).router'

现在基本变成:

import { promptAction } from '@kit.ArkUI'
import { router } from '@kit.ArkUI'

你现在看到很多老项目、博客、demo 里还在用:

[@ohos](/user/ohos).xxx

主要是因为:

1、那是旧 API(API9/API10 时代)

早期 OpenHarmony / HarmonyOS 使用的就是:

[@ohos](/user/ohos).xxx

这种模块命名。

后来 HarmonyOS NEXT 做了 SDK 重构,开始统一成:

@kit.xxx

这样:

  • 分类更清晰
  • 按能力分层
  • 更适合 Stage Model
  • 更方便 tree shaking

所以官方新文档几乎都在推广 @kit

2、旧模块现在很多还兼容

目前很多:

[@ohos](/user/ohos).xxx

实际上还可以用。

因为官方做了兼容层。

但:

  • 有些已经废弃
  • 有些能力迁移了
  • 有些 API 行为不一致
  • 有些在 API12+ 会警告
  • 未来可能彻底移除

所以新项目不建议继续使用 [@ohos](/user/ohos)

3、哪里能找到旧版 @ohos 文档

官方历史文档里还能查:

你可以直接搜索:

site:developer.huawei.com [@ohos](/user/ohos) router

或者:

HarmonyOS API9 文档
HarmonyOS API10 文档

很多旧接口都还能看到。

4、最简单的查看方法(推荐)

直接在 DevEco 里:

按住:

Command + 点击

或者:

Ctrl + 点击

进入 API 定义。

你会看到:

  • 当前对应哪个 kit
  • 是否 deprecated
  • 新 API 是什么
  • 对应替代方案

这是最准确的。

5、现在官方推荐的导入方式

基本都是:

import xxx from '@kit.xxx'

常见:

@kit.ArkUI
@kit.ArkWeb
@kit.AbilityKit
@kit.CoreFileKit
@kit.NetworkKit
@kit.MediaKit

以后新能力基本也只会继续加在 @kit 体系。

一句话总结:

[@ohos](/user/ohos).xxx 是旧版 API 导入体系,@kit.xxx 是 HarmonyOS NEXT 新版官方推荐体系;旧接口很多还能用,但新项目建议全部迁移到 @kit

按Ctrl + 鼠标左键 点击进入系统具体导包页面

例如:

import { authentication } from '[@kit](/user/kit).AccountKit';

那就按Ctrl + 鼠标左键 ‘@kit.AccountKit’ 即可;

新版本对以往模块拆分和重组了

按下 Ctrl+鼠标单击 @kit 模块,就自动跳转到相关的@ohos模块了

cke_2236.gif

跳转到的这个文件算是什么文件呢

想看哪个 @kit ,就点击哪个 @kit

在HarmonyOS Next开发中,使用ArkTS语言时,通过import语句导入模块。对于ohpm三方库,使用import { xxx } from 'ohpm包名';对于本地模块,使用相对路径如import { xxx } from './xxx'。需确保模块已通过ohpm install安装或在项目目录中。

在HarmonyOS Next(API 10+)中,系统导包规范已全面切换为@kit前缀,旧版@ohos前缀仅用于API 9及更早版本。要查看旧模块定义,可访问华为开发者官网,在“文档”入口选择对应API Version(如API 9)的历史版本文档,其中详细列出了所有@ohos.xxx模块与接口。当前工程若需迁移,可参考API差异对照表,例如@ohos.app.ability.UIAbility已变更为@kit.AbilityKit。开发工具(DevEco Studio)也会在导入时自动提示新模块名,无需手动查找。

回到顶部