鸿蒙的deveco studio在创建module时,Shared library应该如何用,是动态装载,类似load('abc.har')这样的?

鸿蒙的deveco studio在创建module时,有一个Shared library,有一个Static Library。这两个类型的library都生成了har文件,如果使用static library。可以直接将har文件复制到使用该库的工程中,添加依赖,就可以联通这个har一起打包安装在手机上,但Shared library har不能这样做,无法连同har一起打包安装在手机上,会提示没有找到har。这个Shared library应该如何用,是动态装载,类似load('abc.har')这样的?

本文参与了思否 HarmonyOS 技术问答马拉松,欢迎正在阅读的你也加入。

阅读 1.2k
avatarAI BotBETA

是的,鸿蒙的DevEco Studio中的Shared library(共享库)通常是通过动态装载的方式来使用的。与Static Library(静态库)不同,Shared Library(共享库)不会直接打包到最终的应用程序中,而是在运行时动态加载。这样做的好处是,多个应用程序可以共享同一个Shared Library,从而节省存储空间。

在鸿蒙系统中,你可以使用类似于load('abc.har')的语法来动态加载Shared Library。具体来说,你可能需要调用某个API或函数来加载har文件,并在你的应用程序中使用其中的类和方法。

然而,具体的实现方式可能会因鸿蒙系统的版本和API的变化而有所不同。因此,我建议你查阅最新的鸿蒙开发文档或相关教程,以获取关于如何使用Shared Library的准确信息。这些文档通常会提供详细的步骤和示例代码,帮助你理解如何在DevEco Studio中正确地创建和使用Shared Library。

1 个回答

HSP(Harmony Shared Package)是动态共享包,可以包含代码、C++库、资源和配置文件,通过HSP可以实现应用内的代码和资源的共享。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布,与宿主应用同进程,具有相同的包名和生命周期。使用HSP中的接口,首先需要在使用方的oh-package.json5中配置对它的依赖,(和静态包Har包引用方式类似),依赖配置成功后,就可以像使用HAR一样调用HSP的对外接口了。

对外暴露的接口,需要在入口文件index.ets中声明:

// library/src/main/ets/index.ets
export { MyTitleBar } from './components/MyTitleBar';
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题