Android培訓班(37) – Android移動開發技術文章_手機開發 Android移動開發教學課程

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>


在init.rc文件裡,可以看到加載下面的服務:


service bootanim /system/bin/bootanimation


user graphics


group graphics


disabled


oneshot


bootanimation 服務的代碼在目錄:


Android-2.0/frameworks/base/cmds/bootanimation


 


bootanimation 服務是開機動畫,主要用來加載動畫資源。


它的主要入口函數代碼如下:


int main(int argc, char** argv)


{


#if defined(HAVE_PTHREADS)


setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_DISPLAY);


#endif


這段代碼設置進程的優先級。


 


char value[PROPERTY_VALUE_MAX];


property_get(“debug.sf.nobootanimation”, value, “0”);


這行代碼從屬性裡獲取是否顯示開機動畫,如果為1就不顯示。


 


int noBootAnimation = atoi(value);


LOGI_IF(noBootAnimation, “boot animation disabled”);


if (!noBootAnimation) {


這段代碼判斷是否顯示開機動畫。


 


sp<ProcessState> proc(ProcessState::self());


ProcessState::self()->startThreadPool();


啟動開機動畫的線程。


 


// create the boot animation object


sp<BootAnimation> boot = new BootAnimation();


創建開機動畫對象。


 


 


IPCThreadState::self()->joinThreadPool();


運行開機動畫線程。


 


 


}


return 0;


}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。