我正在使用NativeActivty
native_app_glueOpenGL
为 Android 编写游戏。很难确定何时是删除堆分配对象和由OpenGL
.
在 NDK 的NativeActivity
示例中,他们似乎不会在使用完对象后删除它们。现在我用两个删除函数删除我的对象:一个用于OpenGL
对象,一个用于常规。我将它们分开是因为似乎只有事件处理线程才能删除OpenGL
对象。我分配的常规对象被正常的删除功能删除。
当用户按下后退按钮并返回应用程序时,OpenGL
资源被删除并且应用程序崩溃(尽管我认为它们应该被重新分配APP_CMD_INIT_WINDOW
)。这让我想知道我是否应该删除对象,因为看起来我不应该删除OpenGL
对象。
我们是否应该使用 NDK 删除堆分配的对象。我知道 NDK 应用程序仍然是沙盒并且有一个JVM
进程,这需要内存管理吗?
编辑:我的应用程序崩溃的另一个实例是在游戏状态完成时删除对象。例如从实际游戏到菜单。回到游戏后,即使对象被重新分配,应用程序也会崩溃。它似乎只工作一次。