android開(kāi)機(jī)logo制作詳細(xì)步驟_第1頁(yè)
android開(kāi)機(jī)logo制作詳細(xì)步驟_第2頁(yè)
android開(kāi)機(jī)logo制作詳細(xì)步驟_第3頁(yè)
android開(kāi)機(jī)logo制作詳細(xì)步驟_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一去除 embeddedlinux 的開(kāi)機(jī)光標(biāo):在內(nèi)核的當(dāng)前目錄進(jìn)入到 drivers/video/console/fbcon.c 文件?各 staticvoidfb_flashcursor(void*private)和 staticvoidfbcon_cursor(structvc_data*vc,intmode)里的內(nèi)容注釋掉,使之變成空函數(shù)二、Android 開(kāi)機(jī)會(huì)出現(xiàn) 3 個(gè)畫(huà)面:1. Linux 系統(tǒng)啟動(dòng),出現(xiàn) Linux 小企鵝畫(huà)面(reboot)(Android1.5 及以上版本已經(jīng)取消加載圖片);2. Android 平臺(tái)啟動(dòng)初始化,出現(xiàn)ANDRIOD文字字樣畫(huà)面;3. And

2、roid 平臺(tái)圖形系統(tǒng)啟動(dòng),出現(xiàn)含閃動(dòng)的 ANDROID 字樣的動(dòng)畫(huà)圖片(start)。4、splash(LK 里跑的 logo)1、開(kāi)機(jī)圖片(Linux 小企鵝)(Android1.5 及以上版本已經(jīng)取消加載圖片);LinuxKernel 引導(dǎo)啟動(dòng)后,加載該圖片。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)核支持啟動(dòng) LOGO在內(nèi)核目錄中 makemenuconfigDeviceDriversGraphicssupport選中 Bootuplogo-Standard224-colorLinuxlogo(2)制作一張啟動(dòng) 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、開(kāi)機(jī)文字(ANDRIOD)Android 系統(tǒng)啟動(dòng)后,init.c 中 main()調(diào)用 10ad_565rle_image()函數(shù)讀取/initlogo.rle(一張 565rle壓縮的位圖),如果讀取成功,則在/dev/graphics/fb0 顯示

6、 Logo 圖片;如果讀取失敗,則將/dev/tty0 設(shè)為 TEXT 模式,并打開(kāi)/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、開(kāi)機(jī)動(dòng)畫(huà)(閃動(dòng)的 ANDROID 字樣的動(dòng)畫(huà)圖片)Android1.5 版本:Android 的系統(tǒng)登錄動(dòng)畫(huà)類似于 Windows 系統(tǒng)的滾動(dòng)條,是由前景和背景兩張 PNG 圖片組成, 這兩張圖片存在于手機(jī)或模擬器/system/framework/framework-res.apk 文件當(dāng)中,對(duì)應(yīng)原文件位于/frameworks/base/core/res/assets/images/。前景圖片(android-logo-mask.png)上的 Andro

9、id 文字部分鏤空,背景圖片(android-logo-shine.png)則是簡(jiǎn)單的紋理。系統(tǒng)登錄時(shí),前景圖片在最上層顯示,程序代碼(BootAnimation.android()控制背景圖片連續(xù)滾動(dòng),透過(guò)前景圖片文字鏤空部分滾動(dòng)顯示背景紋理,從而實(shí)現(xiàn)動(dòng)畫(huà)效果。相關(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)的背景圖片,有動(dòng)感效果,大小 512X64Android1.6 及以上版本:init.c 解析 init.rc(其中定義服務(wù):servicebootanim/system/bin/bootanimation),bo6tanim 服務(wù)由SurfaceFlinger.readyToRun()(property_set(ctl.start,bootanim);)執(zhí)行開(kāi)機(jī)動(dòng)畫(huà)、bootFinished()(prop

11、erty_set(ctl.stop,bootanim);)執(zhí)行停止開(kāi)機(jī)動(dòng)畫(huà)。BootAnimation.h 和 BootAnimation.cpp 文件放到了/frameworks/base/cmds/bootanimation 目錄下了,增加了一個(gè)入口文件bootanimation_main.cpp。Android.mk 文件中可以看到,將開(kāi)機(jī)動(dòng)畫(huà)從原來(lái)的 SurfaceFlinger 里提取Android 默認(rèn)的前景圖出來(lái)了,生成可執(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 后,可以直接運(yùn)行bootanimation 來(lái)重新看開(kāi)機(jī)動(dòng)畫(huà),它會(huì)一直處于動(dòng)畫(huà)狀態(tài),而不會(huì)停止。(2)adbshell 后,命令setpropctl.startbootanim 執(zhí)行開(kāi)機(jī)動(dòng)畫(huà);命令getpropctl.startbootanim”停止開(kāi)機(jī)動(dòng)畫(huà)。這兩句命令分別對(duì)應(yīng) SurfaceFlinger.cpp 的兩句語(yǔ)句: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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論