gpt4 book ai didi

android-ndk - 使用NDK在Android中创建临时文件

转载 作者:行者123 更新时间:2023-12-03 12:57:14 26 4
gpt4 key购买 nike

我目前正在开发基于C,基于NDK的Android应用程序。该应用程序需要创建临时文件。在常规Linux系统上,我将使用tmpfile来确保这些文件在临时目录中正确创建,并在进程结束时进行清理。

但是,我对各种Android设备的调查似乎表明

  • tmpfile总是失败;
  • 没有/tmp目录;
  • 目录/data/local/tmp并非在所有Android版本中都存在;
  • 没有设置TEMP环境变量;
  • mkstemp没有比tmpfile更好的工作。

  • 现在,我确定可以一起破解一些东西,但是看到SDK为Java应用程序提供了 context.getCacheDirFile.createTempFile时,我希望在C级别也能做到这一点。

    有人知道创建临时文件的可靠且跨Android的方法吗?

    最佳答案

    我们发现的最好方法是在启动时调用Context.getCacheDir,使用getAbsolutePath获取其路径,然后调用JNI函数将该路径存储在全局路径中。任何想要创建临时文件的功能都只是将适当的临时文件名附加到该路径。

    如果您真的想从JNI中获取它,另一种选择是将Context传递给JNI函数,并使用一堆GetMethodID / CallObjectMethod的东西将Java回调到getCacheDir,但是前一种方法要简单得多。

    不幸的是,目前似乎没有一个更优雅的解决方案。

    关于android-ndk - 使用NDK在Android中创建临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7595324/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com