第三方so按照绝对或者相对位置的方式去访问文件夹。现在HAP包安装后不会解压以及访问rawfile需要用Rawfile方法的话,在这种情况下,三方so是不能自己直接访问Rawfile了吗?
第三方so按照绝对或者相对位置的方式去访问文件夹。现在HAP包安装后不会解压以及访问rawfile需要用Rawfile方法的话,在这种情况下,三方so是不能自己直接访问Rawfile了吗?
在HarmonyOS中,HAP(HarmonyOS Ability Package)作为一种应用包格式,与Android的APK在结构和处理方式上有所不同。特别是,HAP包在安装后不会像APK那样解压到文件系统的特定目录,而是以一种更为封装和安全的方式存在。因此,对于第三方so(共享库)来说,直接访问HAP包内的rawfile文件(或其他资源文件)确实存在限制。
ResourceManager
等API来访问这些资源。然后,你可以将这些资源内容传递给需要它们的C/C++层(即第三方so)。直接从第三方so访问HAP包内的rawfile文件在HarmonyOS中是不可行的,因为HAP包的结构和访问方式与传统的文件系统文件不同。你需要通过应用层来间接访问这些资源,并考虑上述提到的解决方案之一来实现你的需求。
1 回答414 阅读
1 回答217 阅读
157 阅读
在C++代码中,你需要获取一个资源管理器的实例,这个实例可以用来访问rawfile资源。这通常是通过NAPI(Node-API)或者直接调用HarmonyOS提供的API来实现的。
从JavaScript(JS)侧传递过来的资源对象需要转换为C++能够处理的本地资源对象。这可以通过调用OH_ResourceManager_InitNativeResourceManager等函数来完成。