



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、一去除 embeddedlinux 的開機光標(biāo):在內(nèi)核的當(dāng)前目錄進入到 drivers/video/console/fbcon.c 文件?各 staticvoidfb_flashcursor(void*private)和 staticvoidfbcon_cursor(structvc_data*vc,intmode)里的內(nèi)容注釋掉,使之變成空函數(shù)二、Android 開機會出現(xiàn) 3 個畫面:1. Linux 系統(tǒng)啟動,出現(xiàn) Linux 小企鵝畫面(reboot)(Android1.5 及以上版本已經(jīng)取消加載圖片);2. Android 平臺啟動初始化,出現(xiàn)ANDRIOD文字字樣畫面;3. And
2、roid 平臺圖形系統(tǒng)啟動,出現(xiàn)含閃動的 ANDROID 字樣的動畫圖片(start)。4、splash(LK 里跑的 logo)1、開機圖片(Linux 小企鵝)(Android1.5 及以上版本已經(jīng)取消加載圖片);LinuxKernel 引導(dǎo)啟動后,加載該圖片。logo.c 中定義 nologo,在 fb_find_logo(intdepth)函數(shù)中根據(jù) nologo 的值判斷是否需要加載相應(yīng)圖片。代碼如下:staticintnologo;module_param(nologo,bool,0);MODULE_PARM_DESC(nologo,Disablesstartuplogo);/*l
3、ogosaremarked_initdata.Use_init_refoktotell* modpostthatitisintendedthatthisfunctionusesdata* marked_initdata.*/conststructlinux_logo*_init_refokfb_find_logo(intdepth)conststructlinux_logo*logo=NULL;if(nologo)returnNULL;相關(guān)代碼:/kernel/drivers/video/fbmem.c/kernel/drivers/video/logo/logo.c/kernel/drive
4、rs/video/logo/Kconfig/kernel/include/linux/linux_logo.h(1)讓內(nèi)核支持啟動 LOGO在內(nèi)核目錄中 makemenuconfigDeviceDriversGraphicssupport選中 Bootuplogo-Standard224-colorLinuxlogo(2)制作一張啟動 LOGO 的 PNG 格式的圖片 logo_linux_clut224.png(3)sudoapt-getinstallnetpbm#pngtopnmlogo_linux_clut224.pnglogo_linux.pnm#pnmquant224logo_lin
5、ux.pnmlogo_linux_224.pnm#pnmtoplainpnmlogo_linux_224.pnmlogo_linux_clut224.ppm(4)將 LOGO 文件放入內(nèi)核中拷貝到制作好的 LOGO 文件到/drivers/video/logo 文件夾替換 logo_linux_clut224.ppm 文件(5)重新編譯內(nèi)核2、開機文字(ANDRIOD)Android 系統(tǒng)啟動后,init.c 中 main()調(diào)用 10ad_565rle_image()函數(shù)讀取/initlogo.rle(一張 565rle壓縮的位圖),如果讀取成功,則在/dev/graphics/fb0 顯示
6、 Logo 圖片;如果讀取失敗,則將/dev/tty0 設(shè)為 TEXT 模式,并打開/dev/tty0,輸出文本“ANDRIOD 字樣。定義加載圖片文件名稱#defineINIT_IMAGE_FILE/initlogo.rleintload_565rle_image(char*file_name);#endifinit.c 中 main()力口載/initlogo.rle 文件。if(load_565rle_image(INIT_IMAGE_FILE)/力口載 initlogo.rle 文件fd=open(/dev/tty0,O_WRONLY);/將/dev/tty0 設(shè)為 text 模式if
7、(fd=0)constchar*msg;msg=/n/n/n/n/n/n/n/consoleis40colsx30lines/n/n/n/n/n/n/nANDROID;write(fd,msg,strlen(msg);close(fd);)相關(guān)代碼:/system/core/init/init.c/system/core/init/init.h/system/core/init/init.rc/system/core/init/logo.c*.rle 文件的制作步驟:a.使用 GIMP 或者 AdvancedBatchConverter 軟件,將圖象轉(zhuǎn)換為 RA 慌式;b.使用 android
8、 自帶的 rgb2565 工具,將 RAW&式文件轉(zhuǎn)換為 RLE 格式(如:rgb2565-rleinitlogo.rle)。3、開機動畫(閃動的 ANDROID 字樣的動畫圖片)Android1.5 版本:Android 的系統(tǒng)登錄動畫類似于 Windows 系統(tǒng)的滾動條,是由前景和背景兩張 PNG 圖片組成, 這兩張圖片存在于手機或模擬器/system/framework/framework-res.apk 文件當(dāng)中,對應(yīng)原文件位于/frameworks/base/core/res/assets/images/。前景圖片(android-logo-mask.png)上的 Andro
9、id 文字部分鏤空,背景圖片(android-logo-shine.png)則是簡單的紋理。系統(tǒng)登錄時,前景圖片在最上層顯示,程序代碼(BootAnimation.android()控制背景圖片連續(xù)滾動,透過前景圖片文字鏤空部分滾動顯示背景紋理,從而實現(xiàn)動畫效果。相關(guān)代碼:/frameworks/base/libs/surfaceflinger/BootAnimation.h/frameworks/base/libs/surfaceflinger/BootAnimation.cpp/frameworks/base/core/res/assets/images/android-logo-mask
10、.png 片,文字部分鏤空,大小 256X64/frameworks/base/core/res/assets/images/android-logo-shine.pngAndroid 默認(rèn)的背景圖片,有動感效果,大小 512X64Android1.6 及以上版本:init.c 解析 init.rc(其中定義服務(wù):servicebootanim/system/bin/bootanimation),bo6tanim 服務(wù)由SurfaceFlinger.readyToRun()(property_set(ctl.start,bootanim);)執(zhí)行開機動畫、bootFinished()(prop
11、erty_set(ctl.stop,bootanim);)執(zhí)行停止開機動畫。BootAnimation.h 和 BootAnimation.cpp 文件放到了/frameworks/base/cmds/bootanimation 目錄下了,增加了一個入口文件bootanimation_main.cpp。Android.mk 文件中可以看到,將開機動畫從原來的 SurfaceFlinger 里提取Android 默認(rèn)的前景圖出來了,生成可執(zhí)行文件:bootanimation。Android.mk 代碼如下:/=Android.mk=LOCAL_PATH:=$(callmy-dir)include
12、$(CLEAR_VARS)LOCAL_SRC_FILESk/bootanimation_main.cpp/BootAnimation.cpp#need-lrtonLinuxsimulatortopickupclock_gettimeifeq($(TARGET_SIMULATOR),true)ifeq($(HOST_OS),linux)LOCAL_LDLIBS+=-lrtendifendifLOCAL_SHARED_LIBRARIES:=/libcutils/libutils/libui/libcorecg/libsgl/libEGL/libGLESv1_CM/libmediaLOCAL_C_I
13、NCLUDES:=/$(callinclude-path-for,corecggraphics)LOCAL_MODULE:=bootanimationinclude$(BUILD_EXECUTABLE)/=(1)adbshell 后,可以直接運行bootanimation 來重新看開機動畫,它會一直處于動畫狀態(tài),而不會停止。(2)adbshell 后,命令setpropctl.startbootanim 執(zhí)行開機動畫;命令getpropctl.startbootanim”停止開機動畫。這兩句命令分別對應(yīng) SurfaceFlinger.cpp 的兩句語句:property_set(ctl.start,bootanim);和 property_set(ctl.stop,bootanim);相關(guān)文件:/frameworks/base/cmds/bootanimation/BootAnimation.h/frameworks/base/cmds/bootanimation/BootAnimation.cpp/frameworks/base/cmds/bootanimation/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專利導(dǎo)航分析師崗位面試問題及答案
- 知識產(chǎn)權(quán)運營師崗位面試問題及答案
- 河南廣東聯(lián)考2025年高一化學(xué)第二學(xué)期期末調(diào)研模擬試題含解析
- 廣西賀州市桂梧高級中學(xué)2025屆高一化學(xué)第二學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 甘肅省慶陽市長慶中學(xué)2025年高二下化學(xué)期末調(diào)研模擬試題含解析
- 北京集體資產(chǎn)管理辦法
- 公司出國證件管理辦法
- 智慧手環(huán)使用管理辦法
- 晉中市健康碼管理辦法
- 內(nèi)貿(mào)船舶衛(wèi)生管理辦法
- 2025深圳輔警考試真題
- 智慧型陸基式漁業(yè)產(chǎn)業(yè)園項目可行性研究報告模板-備案拿地
- 廣告安裝培訓(xùn)課件
- 海底撈寢室管理制度
- 2025年重慶市中考數(shù)學(xué)試卷真題及答案詳解(精校打印版)
- 云倉代發(fā)貨合同協(xié)議書
- A-Level數(shù)學(xué)PureMath1函數(shù)與三角函數(shù)2025年春季模擬試卷
- 汾酒集團招聘考試試題及答案
- 碳資產(chǎn)管理與碳金融 課件 第1-5章 碳排放與氣候變化政策分析-溫室氣體排放量的核查
- 《全媒體營銷》課件-項目一 全媒體營銷基礎(chǔ)與產(chǎn)業(yè)變革
- 內(nèi)網(wǎng)滲透面試題及答案
評論
0/150
提交評論