Android系統(tǒng)的開機畫面顯示過程分析.pdf

Android系統(tǒng)的開機畫面顯示過程分析.pdf

ID:51494392

大?。?98.06 KB

頁數(shù):61頁

時間:2020-03-25

Android系統(tǒng)的開機畫面顯示過程分析.pdf_第1頁
Android系統(tǒng)的開機畫面顯示過程分析.pdf_第2頁
Android系統(tǒng)的開機畫面顯示過程分析.pdf_第3頁
Android系統(tǒng)的開機畫面顯示過程分析.pdf_第4頁
Android系統(tǒng)的開機畫面顯示過程分析.pdf_第5頁
資源描述:

《Android系統(tǒng)的開機畫面顯示過程分析.pdf》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、Android系統(tǒng)的開機畫面顯示過程分析分類:Android2012-07-0900:561252人閱讀評論(39)收藏舉報好幾個月都沒有更新過博客了,從今天開始,老羅將嘗試對Android系統(tǒng)的UI實現(xiàn)作一個系統(tǒng)的分析,也算是落實之前所作出的承諾。提到Android系統(tǒng)的UI,我們最先接觸到的便是系統(tǒng)在啟動過程中所出現(xiàn)的畫面了。Android系統(tǒng)在啟動的過程中,最多可以出現(xiàn)三個畫面,每一個畫面都用來描述一個不同的啟動階段。本文將詳細分析這三個開機畫面的顯示過程,以便可以開啟我們對Android系統(tǒng)UI實現(xiàn)的分析之路。第一

2、個開機畫面是在內核啟動的過程中出現(xiàn)的,它是一個靜態(tài)的畫面。第二個開機畫面是在init進程啟動的過程中出現(xiàn)的,它也是一個靜態(tài)的畫面。第三個開機畫面是在系統(tǒng)服務啟動的過程中出現(xiàn)的,它是一個動態(tài)的畫面。無論是哪一個畫面,它們都是在一個稱為幀緩沖區(qū)(framebuffer,簡稱fb)的硬件設備上進行渲染的。接下來,我們就分別分析這三個畫面是如何在fb上顯示的。1.第一個開機畫面的顯示過程Android系統(tǒng)的第一個開機畫面其實是Linux內核的啟動畫面。在默認情況下,這個畫面是不會出現(xiàn)的,除非我們在編譯內核的時候,啟用以下兩個編譯選

3、項:CONFIG_FRAMEBUFFER_CONSOLECONFIG_LOGO第一個編譯選項表示內核支持幀緩沖區(qū)控制臺,它對應的配置菜單項為:DeviceDrivers--->Graphicssupport--->Consoledisplaydriversupport--->FramebufferConsolesupport。第二個編譯選項表示內核在啟動的過程中,需要顯示LOGO,它對應的配置菜單項為:DeviceDrivers--->Graphicssupport--->Bootuplogo。配置Android內核編譯選

4、項可以參考在Ubuntu上下載、編譯和安裝Android最新內核源代碼(LinuxKernel)一文。幀緩沖區(qū)硬件設備在內核中有一個對應的驅動程序模塊fbmem,它實現(xiàn)在文件kernel/goldfish/drivers/video/fbmem.c中,它的初始化函數(shù)如下所示:1/**2*fbmem_init-initframebuffersubsystem3*4*Initializetheframebuffersubsystem.5*6*NOTE:Thisfunctionis_only_tobecalledbydriver

5、s/char/mem.c.7*8*/910staticint__init11fbmem_init(void)12{13proc_create("fb",0,NULL,&fb_proc_fops);1415if(register_chrdev(FB_MAJOR,"fb",&fb_fops))16printk("unabletogetmajor%dforfbdevs",FB_MAJOR);1718fb_class=class_create(THIS_MODULE,"graphics");19if(IS_ERR(fb_cla

6、ss)){20printk(KERN_WARNING"Unabletocreatefbclass;errno=%ld",PTR_ERR(fb_class));21fb_class=NULL;22}23return0;24}這個函數(shù)首先調用函數(shù)proc_create在/proc目錄下創(chuàng)建了一個fb文件,接著又調用函數(shù)register_chrdev來注冊了一個名稱為fb的字符設備,最后調用函數(shù)class_create在/sys/class目錄下創(chuàng)建了一個graphics目錄,用來描述內核的圖形系統(tǒng)。模塊fbmem除了會執(zhí)行

7、上述初始化工作之外,還會導出一個函數(shù)register_framebuffer:25EXPORT_SYMBOL(register_framebuffer);這個函數(shù)在內核的啟動過程會被調用,以便用來執(zhí)行注冊幀緩沖區(qū)硬件設備的操作,它的實現(xiàn)如下所示:26/**27*register_framebuffer-registersaframebufferdevice28*@fb_info:framebufferinfostructure29*30*Registersaframebufferdevice@fb_info.31*32*R

8、eturnsnegativeerrnoonerror,orzeroforsuccess.33*34*/3536int37register_framebuffer(structfb_info*fb_info)38{39inti;40structfb_eventevent;41......4243if(nu

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。