【问题标题】:accessing application data path from NDK code从 NDK 代码访问应用程序数据路径
【发布时间】:2014-03-08 02:24:09
【问题描述】:

我正在使用 NDK 为 Android 构建 c++ 代码。 我的代码将用作应用程序开发人员的外部 SDK。

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

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

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

【问题讨论】:

  • Native Activity 仍然有一个它严重依赖的 VM - 它只是“原生”,因为第 3 方开发人员不编写任何 Java 代码,但仍然使用了很多代码。跨度>
  • @ChrisStratton 是对的,您不必担心,即使使用 NativeActivity,标准 Java SDK 仍然可用。但是有一个不需要 Java 的巧妙解决方法:stackoverflow.com/a/6284443/192373!

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


【解决方案1】:

可以从完整的本机代码访问应用程序的数据路径。外部和内部的存储路径都存储在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;

如果没有本地活动,可以通过JNI查询存储路径,如cmets中所述。

【讨论】:

猜你喜欢
  • 2021-05-25
  • 1970-01-01
  • 2013-07-28
  • 1970-01-01
  • 2015-06-27
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多