android - 从 NDK 代码访问应用程序数据路径

标签 android android-ndk java-native-interface native

我正在使用 NDK 为 Android 构建 C++ 代码。 我的代码将用作应用开发者的外部 SDK。

是否可以从 native 代码访问应用程序的数据路径?

一种选择是使用 JNI 调用 JVM 并查找此信息,但是由于我正在编写库代码,我不确定我的 SDK 是否会用于所有 native 应用程序 (NativeActivity)。

实现此目标的最佳选择是什么?

最佳答案

可以从完整的 native 代码访问应用程序的数据路径。外部和内部存储路径存储在 android_app->activity 中,它是 ANativeActivity 类型,android_app struct 定义在 native Activity 的入口点,因此您不必担心任何事情。

/**
* Path to this application's internal data directory.
*/
const char* internalDataPath;

/**
 * Path to this application's external (removable/mountable) data directory.
 */
const char* externalDataPath;

如果没有 native Activity ,可以按照注释中的说明通过 JNI 查询存储路径。

关于android - 从 NDK 代码访问应用程序数据路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21682557/

相关文章:

android - Eclipse 找不到 Android 支持库

android - 在Unity3D生成的 "Android class name"中找到 "AndroidManifest.xml"

java - Android NDK/一般 JNI 问题 : Converting object/jobject to c++ user defiend type

java - 在 OS X El Capitan 上运行 IBM Notes Java 应用程序会抛出 UnsatisfiedLinkError

android - 在 JNI 共享库中使用时,I2C_SLAVE ioctl() 因 ENOTTY 而失败

android - 在 Android 中隔离单元和编写测试

android - FFMPEG x264 编码器 Android

android - 原生 opencv for android

Eclipse Ant 构建脚本中的 Javah 命令

android - 使用 Gradle 在 AndroidManifest.xml 上有条件地添加 <activity> 标签