NativeActivityを使用してOpenGL ES 2アプリケーションを作成しました。これは、タッチ入力を使用してドラッグできる6つのテクスチャ付き三角形をレンダリングします。アプリは、レンダリング後にglClear()
を前に、eglSwapBuffers()
を呼び出して、できるだけ早くレンダリングしています。予想どおり、フレームレートは約60 fpsの表示周波数に制限され、シーンは円滑に動きます。ただし、しばらくして(10〜60秒)フレームレートが60 fpsのままであっても、動きがぎりぎりになります。私が使用しているデバイスはOnePlus 3です。Android OpenGL occasional stutter
最初は、バッテリーの節約モードであると思われましたが、調査ではCPUの周波数とスタッターの間に相関はないことが明らかになりました。
面白いことに気づいたけど、queueBuffer()
実行時間が上がるとスタッターが始まります。
これはSYSTRACE 前スタッターです:これは前から後への移行時にSYSTRACEある ::これはSYSTRACE 後スタッターある
私はどのように停止しますアプリが吃音から?
任意のコードを見ずに助けて非常に難しいが...ガベージコレクションの問題だろうか?各フレームに多くのオブジェクトを作成していますか? –
NativeActivityを使用していますが、現在はJavaオブジェクトをまったく使用していません。 – gq3