我需要从 C/C++ 代码中处理我的资产文件夹中的资产。像这样缓存指向 AAssetManager 的指针是否安全...:
AAssetManager* assetMgr = NULL;
void Java_com_example_createAssetManager(JNIEnv* env, jclass clazz, jobject assetManager)
{
AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
assert(NULL != mgr);
assetMgr = mgr;
}
...然后在我需要的时候使用它?createAssetManager 是从主 Activity(UI 线程)的 Java onCreate 方法调用的,但在 C/C++ 中的用法是在 GLSurfaceView 实现中原生处理从本机方法调用的渲染和游戏滴答时。
1)assetMgr 指针会在整个应用程序生命周期内指向有效对象吗?在 Java 端(在 Activity 类中)像静态变量一样创建它是否足以让垃圾收集器不会破坏它?
2)我会遇到线程问题吗?
谢谢,汤姆原子