在鸿蒙(HarmonyOS)开发中,import @ohos.*和 import @kit.*是两种不同的模块导入风格,它们代表了鸿蒙API组织方式的演进。
@ohos.*风格这是鸿蒙早期版本(如API 9之前)中使用的模块导入方式。模块路径以 @ohos开头,后跟具体的子系统名称,例如 @ohos.wallpaper。这种风格将系统能力按子系统划分,但随着鸿蒙生态的发展,其模块组织方式逐渐调整。
@kit.*风格这是鸿蒙为优化API组织而引入的新风格,从HarmonyOS NEXT开始成为推荐方式。模块路径以 @kit开头,后跟功能套件名称,例如 @kit.ArkUI、@kit.BasicServicesKit。这种风格将相关API聚合到统一的“Kit”(套件)中,更便于开发者查找和使用。同时,它也是鸿蒙“一次开发,多端部署”理念的体现,有助于跨设备开发。
主要区别
1.演进阶段:@ohos.*是旧风格,多见于早期版本;@kit.*是新风格,适用于HarmonyOS NEXT及更高版本。2. 组织逻辑:@ohos.*按子系统划分;@kit.*按功能套件聚合,例如ArkUI、基础服务等。3. 使用建议:在新项目中,应优先使用 @kit.*风格,因为它代表了鸿蒙API的未来方向。旧项目若需升级,可能需逐步迁移到新风格。
例如,壁纸管理在旧风格中为
import { wallpaper } from '@ohos.wallpaper';
,而在新风格中为
import { wallpaper } from '@kit.BasicServicesKit';。
主题换肤模块
在新风格中为 import { Theme } from '@kit.ArkUI';
。开放匿名设备标识服务则从 @ohos.identifier.oaid变为 import { identifier } from '@kit.AdsKit';。
二、可以混用吗? #混用
强烈不建议混用,在新项目中应完全使用@kit.*风格。
兼容性与未来方向:@kit.*风格是鸿蒙API发展的未来方向。虽然在某些过渡版本中,系统可能为了向下兼容而同时支持两种导入方式,但这并非永久性设计。从HarmonyOS NEXT开始,官方文档和新的API都主要围绕 @kit.*套件进行介绍和发布。
维护性与一致性:在同一个项目中混用两种风格会导致代码不一致,增加理解和维护的复杂度。例如,你可能会遇到一半代码使用 @kit.AbilityKit获取上下文,另一半却使用 @ohos.app.ability.common,这非常不利于团队协作和项目长期维护。
官方建议:鸿蒙的开发工具和官方指南都已转向支持 @kit.*风格。对于新建项目,开发者应遵循官方推荐,统一使用 @kit.*风格导入模块。对于历史遗留项目,如果计划升级到HarmonyOS NEXT,则需要将代码中的 @ohos.*导入逐步迁移到对应的 @kit.*套件。
总结与建议
区别本质:@ohos.*是基于子系统的旧分类方式,@kit.*是基于功能套件的新聚合方式,后者是鸿蒙生态演进的结果。
使用选择:禁止在新代码中继续使用 @ohos.*风格。所有新的开发工作都应基于 @kit.*风格进行。你可以通过查阅对应版本的官方API参考文档,来确认某个具体能力属于哪个Kit套件。
迁移:如果维护旧项目,应制定计划,将现有的 @ohos.*导入语句更新为 @kit.*风格,以确保项目能兼容未来的鸿蒙版本。
总而言之,为了代码的清晰度、可维护性以及与鸿蒙未来发展的兼容性,你应该在项目中统一使用 @kit.*导入风格,并避免混用。