十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
前言
創(chuàng)新互聯(lián)長期為近千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為南充企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站,南充網(wǎng)站改版等技術服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
小生是做android系統(tǒng)的,結合自己的工作與看的相關資料,留下如下感悟。愿與諸君分享交流,以求共同進步。不當之處望各位看官在留言中指正。
init進程總體說明
首先我們帶著兩個問題來看本節(jié):init進程是個什么玩意兒?它的主要作用是什么?
android系統(tǒng)中的init進程是從原生linux系統(tǒng)中的init進程中繼承過來的。絕大部份功能保持一致,但也有些許差異,它們之前的差異會在下面的內(nèi)容中詳細敘述。如果非要給android系統(tǒng)的init進程一個類似定義的東西的話,我的理解是:
init進程是由linux內(nèi)核啟動的第一個用戶空間的程序,主要負責系統(tǒng)運行環(huán)境初始化與子進程管理等相關工作。
android系統(tǒng)中的init進程主要負責以下五種任務:
1、讀取分析執(zhí)行init.rc和init.{hardversion}.rc等相關初始化腳本。(與linux中init進程的主要區(qū)別點)
2、生成設備驅動節(jié)點。
3、處理子進程相關消息。
4、初始化屬性服務。
5、顯示開機logo
各功能詳細說明
待續(xù)。。。
工作修改實例
工作中修改init進程代碼主要是為了增加以下功能:
因為我在做android盒子,所以需要增加一個自適應屏幕分辯率大小與logo大小并讓logo居中顯示的小功能。
實現(xiàn)思路如下:
1、修改后綴名為rle的logo文件格式,在其開頭處加上描述該文件高度與寬度的8字節(jié)數(shù)據(jù)。
2、修改init源碼中的logo.c文件,讀取rle文件時探測是否為自定義格式。如果不是則按照以前的流程,如果是則讀取logo圖片的高寬用做后續(xù)使用。
3、讀取當前顯示fb的大小,并與logo圖片的高寬一起計算得出圖片繪制的起始位置與結束位置,其他的像素點則用宏定義的顏色進行繪制。