Android 用のゲームNativeActivty
をプログラムするために、native_app_glue を使用しています。OpenGL
ヒープに割り当てられたオブジェクトと によって割り当てられたオブジェクトを削除する最適な時期を判断するのは困難ですOpenGL
。
NDK のNativeActivity
サンプルでは、オブジェクトの処理が完了した後にオブジェクトを削除していないようです。現在、2 つの削除機能を使用してオブジェクトを削除しています。1 つはOpenGL
オブジェクト用で、もう 1 つは通常の機能です。OpenGL
イベント処理スレッドだけがオブジェクトを削除できるように見えるので、それらを分割しました。私が割り当てた通常のオブジェクトは、通常の削除機能によって削除されます。
ユーザーが戻るボタンを押してアプリに戻ると、OpenGL
リソースが削除され、アプリがクラッシュします (ただし、リソースを再割り当てする必要があると思いますAPP_CMD_INIT_WINDOW
)。これにより、オブジェクトを削除する必要がないように見えるため、オブジェクトを削除する必要があるかどうか疑問に思いOpenGL
ます。
NDK でヒープに割り当てられたオブジェクトを削除することになっていますか。NDK アプリはまだサンドボックス化されており、プロセスがあることは理解していますがJVM
、これによりメモリ管理が必要になりますか?
編集: 私のアプリケーションのクラッシュの別のインスタンスは、ゲームの状態が終了したときにオブジェクトが削除されたときです。たとえば、実際のゲームからメニューに移動します。ゲームに戻ると、オブジェクトが再割り当てされているにもかかわらず、アプリケーションがクラッシュします。1回だけ効果があるようです。