【问题标题】:Android - NDK - Location of database accessed from C++Android - NDK - 从 C++ 访问的数据库的位置
【发布时间】:2014-02-16 12:20:30
【问题描述】:

有人要求我使用 NDK 将一些 C++ 代码集成到 Android 项目中。我有一些测试 C++ 代码启动并成功运行。现在我正在尝试将测试代码交换为想要访问 SQLite 数据库文件的真实 C++。原来的 C++ 执行:

fopen64 (databasefilename, "r")

其中databasefilename 只是文件本身的名称,没有路径。

所以现在我的问题是,我应该将数据库放在我的项目中的什么位置? assets? res?一旦放置在那里,我必须在databasefilename 之前放置什么路径(如果有)才能使 fopen64 工作?

【问题讨论】:

    标签: android database android-ndk


    【解决方案1】:

    您可以将种子文件放在assetsres/raw 或其他地方。没有内置机制可以将此种子提取到可写位置。有关详细信息,请参阅讨论“How to unpack some files from .apk to /data/data/<package> folder while installing the .apk?”。

    您可以使用 NDK AAsset_read() 从本机代码访问资产(请参阅“How To Get File In Assets From Android NDK”)。

    一个可行的替代方法是使用expansion file(参见“How to get file data from Android expansion file in native code”)和 StorageManager。

    您可以选择许多可写位置之一:sd 卡或私有应用程序文件夹等(请参阅讨论“Android NDK Write File 和“Creating temporary files in Android with NDK i>")。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多