kernel logo到開機動畫之間閃現黑屏

[DESCRIPTION]

現象:L版本開機時,kernel logo與開機動畫之間閃一幀黑屏。

[SOLUTION]

1.這個現象是因爲,在BootAnimation開始繪圖之前,會先做一次clear screen的動作,避免出現 前面的圖干擾到BootAnimation的顯示。這是Google default design,雖然不可避免,但是可以優化。

優化方法:

通過check main_log先確認播放開機動畫是哪個function,在對應function刪除clear screen的動 作的對應代碼。

源碼位置:/frameworks/base/cmds/bootanimation/BootAnimation.cpp
bool BootAnimation::android() { 
initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png"); 
initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png"); 
/*----------------------------刪除clear screen對應code------------------------*/ 
// clear screen
glShadeModel(GL_FLAT); 
glDisable(GL_DITHER); 
glDisable(GL_SCISSOR_TEST); 
glClearColor(0,0,0,1);  
glClear(GL_COLOR_BUFFER_BIT); 

eglSwapBuffers(mDisplay, mSurface);
/*----------------------------刪除clear screen對應code------------------------*/ 

bool BootAnimation::movie() 
/*----------------------------刪除clear screen對應code------------------------*/ 
// clear screen 
glShadeModel(GL_FLAT); 
glDisable(GL_DITHER); 
glDisable(GL_SCISSOR_TEST); 
glDisable(GL_BLEND); 
glClearColor(0,0,0,1); 
glClear(GL_COLOR_BUFFER_BIT); 

eglSwapBuffers(mDisplay, mSurface); 
/*----------------------------刪除clear screen對應code------------------------*
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章