問題是,一旦應用程序啓動,應用程序看起來會滯後一段時間(此時並不一致)。例如,當瀏覽菜單時,導航動畫將非常不連貫。然而,這種滯後通常只持續2-3秒。這個問題在玩家進入遊戲後的2-3秒內也會出現。Android Opengl ES 2應用程序最初啓動時出現延遲
我已經排除了GC作爲這種滯後的可能原因,因爲所有內容都是預先加載的,並且所有內存分配都會執行一次,當遊戲第一次加載並且任何時候玩家開始新一輪遊戲時。
我在運行Android 2.2的愛可視43上運行這些測試。該設備可以處理3D遊戲,並且我已經嘗試了幾個並且沒有這些遊戲滯後,所以它必定是我的代碼的問題。我在我的遊戲中使用3個線程,其中2個線程不是由我創建的(渲染線程和事件線程),第3個線程是遊戲更新線程。
而且這只是一個假設,但感覺就好像當它來繪製一個新的紋理(即以前沒有畫出一個),即使紋理與GLES20.glGenTextures
,GLES20.glBindTexture
和GLUtils.texImage2D
預裝遊戲只落後。
我可以根據需要提供來源。
您是否嘗試過使用DDMS traceview進行分析? – Tim 2012-03-29 05:25:08