我正在使用NDK为Android构建c ++代码。 我的代码将用作应用程序开发人员的外部SDK。
是否可以从本机代码访问应用程序的数据路径?
一种选择是使用JNI调用JVM并查找此信息,但是因为我正在编写库代码,所以我不确定我的SDK是否会在所有本机应用程序(NativeActivity)中使用。
实现这一目标的最佳选择是什么?
答案 0 :(得分:3)
可以从完整的本机代码访问应用程序的数据路径。外部和内部存储路径存储在android_app->活动中,其类型为ANativeActivity,android_app结构在本机活动的入口点定义,因此您不必担心任何事情。
/**
* Path to this application's internal data directory.
*/
const char* internalDataPath;
/**
* Path to this application's external (removable/mountable) data directory.
*/
const char* externalDataPath;
如果没有本机活动,可以通过JNI查询存储路径,如评论中所述。