gpt4 book ai didi

需要 Android NDK NativeActivity 内存管理?

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:06 35 4
gpt4 key购买 nike

我正在使用带有 native_app_glue 的 NativeActivty 为 Android 编写一个 OpenGL 游戏。很难确定何时是删除堆分配对象和 OpenGL 分配对象的最佳时机。

在 NDK 的 NativeActivity 示例中,它们似乎不会在完成对象后删除它们。现在,我使用两个删除函数删除我的对象:一个用于 OpenGL 对象,一个用于常规对象。我将它们分开,因为似乎只有事件处理线程可以删除 OpenGL 对象。我分配的常规对象被正常的删除功能删除。

当用户按下后退按钮并返回到应用程序时,OpenGL 资源被删除并且应用程序崩溃(尽管我认为它们应该由 APP_CMD_INIT_WINDOW).这让我想知道我是否应该删除对象,因为看起来我不应该删除 OpenGL 对象。

我们是否应该使用 NDK 删除堆分配的对象。我知道 NDK 应用程序仍然是沙盒化的并且有一个 JVM 进程,这是否需要内存管理?

编辑:我的应用程序崩溃的另一个实例是当游戏状态结束时对象被删除。例如从实际游戏到菜单。回到游戏后,即使对象已重新分配,应用程序也会崩溃。它似乎只工作一次。

最佳答案

事实证明,应用程序崩溃绝不是由于删除堆分配对象或 OpenGL 对象。一些已删除但仍包含在 vector 中的指针是问题的原因。然而,使用 NDK 删除对象似乎没有任何问题。

关于需要 Android NDK NativeActivity 内存管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23850804/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com