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