需要Android NDK NativeActivity内存管理吗
Android NDK NativeActivity Memory Management Needed?
我正在使用NativeActivty
和native_app_glue为Android编写OpenGL
游戏。很难确定何时是删除堆分配的对象和OpenGL
分配的对象的最佳时间。
在NDK的NativeActivity
示例中,它们在处理完对象之后似乎不会删除对象。现在,我用两个删除函数来删除我的对象:一个用于OpenGL
对象,另一个用于常规对象。我将它们分开,因为似乎只有事件处理线程才能删除OpenGL
对象。我分配的常规对象通过正常的删除功能删除。
当用户按下后退按钮并返回应用程序时,OpenGL
资源将被删除,应用程序将崩溃(尽管我认为它们应该由APP_CMD_INIT_WINDOW
重新分配(。这让我怀疑我是否应该删除对象,因为似乎我不应该删除OpenGL
对象。
我们应该用NDK删除堆分配的对象吗。我知道NDK应用程序仍然是沙盒的,并且有一个JVM
进程,这需要内存管理吗?
编辑:我的应用程序崩溃的另一个例子是当游戏状态结束时删除对象。例如,从实际游戏转到菜单。回到游戏后,即使对象被重新分配,应用程序也会崩溃。它似乎只起作用一次。
事实证明,应用程序崩溃从来不是因为删除了堆分配的对象或OpenGL对象。一些被删除但仍包含在向量中的指针是问题的原因。然而,用NDK删除对象似乎并没有什么问题。
相关文章:
- 当vector是tje全局变量时,c++中vector的内存管理
- 当分配一个字符串值并稍后通过分配另一个值进行更改时C++如何管理内存?
- 我有一个线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x8)错误.我认为这是由于内存管理不好.我可以
- 可以通过非原始指针来增强容器矢量管理内存
- 如何使用 std::vector<std::tuple<A,B>> 来管理内存(调整大小、保留,...),但实际上将 As 保留在 B 之前,连续
- 线程管理内存泄漏
- 通过读取文件创建映射<字符串,矢量>时如何管理内存<string>
- 管理内存C++
- ptr_vector如何管理内存
- 在C++Builder/Firemonkey中使用表单创建来管理内存
- 如何正确管理内存(运行时)C++
- 在Node.js中使用Native Abstractions时,如何管理内存
- ostream是如何管理内存的
- C++中管理内存泄漏的问题
- OpenCL:在 CPU 上而不是在 GPU 上更正结果:如何正确管理内存
- deque是如何管理内存的
- 用c++/cli互操作管理内存
- 如何衡量管理内存所花费的时间
- (加速C++)章节管理内存
- 如何在此场景中管理内存