如何将文件包含到android应用程序';什么是内部存储?

如何将文件包含到android应用程序';什么是内部存储?,android,Android,我需要在我的android应用程序中添加一个配置文本文件。需要使用C库以本机方式访问此文件。因此,我需要将绝对路径传递给文件夹,即(/data/data/(包名)/文件) 我考虑将其投入资源或资产。但是他们似乎没有办法获得资源和资产文件夹的绝对路径。资产中的文件似乎也在压缩的apk文件中,因此在c中本机访问它时会出现问题 我可以将文件放在我的项目文件夹中的什么位置,以便将其放在应用程序的内部存储目录中?您可以将文件放在res/raw中。更多细节 更新 将文件放入原始文件夹后,您可以使用Andro

我需要在我的android应用程序中添加一个配置文本文件。需要使用C库以本机方式访问此文件。因此,我需要将绝对路径传递给文件夹,即(/data/data/(包名)/文件)

我考虑将其投入资源或资产。但是他们似乎没有办法获得资源和资产文件夹的绝对路径。资产中的文件似乎也在压缩的apk文件中,因此在c中本机访问它时会出现问题


我可以将文件放在我的项目文件夹中的什么位置,以便将其放在应用程序的内部存储目录中?

您可以将文件放在res/raw中。更多细节

更新

将文件放入原始文件夹后,您可以使用Android代码通过使用
openrawsourcefd()
获取文件描述符。然后将其传递给本机代码,如下所述

您需要借用(并修改)从资产中解压缩文件的代码。 当应用程序启动时,它将检查文件是否已经存在,如果不存在,则从资产中解压文件


请参见,例如,

我曾想过这样做,但有没有更有效的方法?这只是将文件从资产复制到内部存储,实际上具有相同文件的两个副本。最好在安装时将文件放在那里。如果没有更好的解决方案,我就这样做。您将有一个未修改的打包副本和一个未打包的配置文件(可能是修改过的)副本。当然,如果您不需要修改它,可以找到apk位置并将其传递给C代码,然后从C代码中读取归档。。。。读取它的代码可能会比配置文件本身占用更多的空间。如何获取res/raw中文件的绝对路径?我没有使用R在java中访问它。需要使用文件路径在c中访问它。