在NDK中使用资源文件

时间:2014-08-29 00:33:13

标签: android android-ndk

我有一个我正在创建的NDK库需要包含和访问二进制数据文件(.dat扩展名)。我无法让编译库看到这个文件。为了让事情变得更困难,我在一个图书馆包里做这件事。

我认为,如果在我的Android.mk文件中,我将此.dat文件复制到我应用的资源文件夹中,然后从应用内部访问该文件,我觉得它会工作,但我觉得必须有一个更好的方式。

有什么建议吗?

1 个答案:

答案 0 :(得分:6)

而不是资源,将其放在资产文件夹中; NDK提供API来访问本机代码中的资产。

通常,我们会在安装后首次运行应用程序时将资源或资产中的某些“文件”解压缩到文件系统(例如/sdcard)。当文件必须由外部应用程序和库(例如播放声音)使用时,或者当这些文件将发生变化时,此方法效果最佳。

最后,您可以在ndk=build期间将数据链接到 .so 。这将解决如何将 .dat 文件复制到app文件夹中的问题,但是阅读它可能会很棘手,并且修改 - 不可能。您不需要创建一个巨大的库。您可以创建包含数据的模型库。如果我理解正确,您可以忽略文件结构,标题等。您只需要libs/armeabi(或其他)中名为 lib 的文件 .so )文件夹。