1

Android 用のゲームNativeActivtyをプログラムするために、native_app_glue を使用しています。OpenGLヒープに割り当てられたオブジェクトと によって割り当てられたオブジェクトを削除する最適な時期を判断するのは困難ですOpenGL

NDK のNativeActivityサンプルでは、​​オブジェクトの処理が完了した後にオブジェクトを削除していないようです。現在、2 つの削除機能を使用してオブジェクトを削除しています。1 つはOpenGLオブジェクト用で、もう 1 つは通常の機能です。OpenGLイベント処理スレッドだけがオブジェクトを削除できるように見えるので、それらを分割しました。私が割り当てた通常のオブジェクトは、通常の削除機能によって削除されます。

ユーザーが戻るボタンを押してアプリに戻ると、OpenGLリソースが削除され、アプリがクラッシュします (ただし、リソースを再割り当てする必要があると思いますAPP_CMD_INIT_WINDOW)。これにより、オブジェクトを削除する必要がないように見えるため、オブジェクトを削除する必要があるかどうか疑問に思いOpenGLます。

NDK でヒープに割り当てられたオブジェクトを削除することになっていますか。NDK アプリはまだサンドボックス化されており、プロセスがあることは理解していますがJVM、これによりメモリ管理が必要になりますか?

編集: 私のアプリケーションのクラッシュの別のインスタンスは、ゲームの状態が終了したときにオブジェクトが削除されたときです。たとえば、実際のゲームからメニューに移動します。ゲームに戻ると、オブジェクトが再割り当てされているにもかかわらず、アプリケーションがクラッシュします。1回だけ効果があるようです。

4

1 に答える 1