修改android啟動logo動態(tài)圖片靜態(tài)圖片_第1頁
修改android啟動logo動態(tài)圖片靜態(tài)圖片_第2頁
修改android啟動logo動態(tài)圖片靜態(tài)圖片_第3頁
修改android啟動logo動態(tài)圖片靜態(tài)圖片_第4頁
修改android啟動logo動態(tài)圖片靜態(tài)圖片_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、修改和制作Android開機(jī)Logo(完整版)日期:2012-02-15 作者:zhh以下在Telechips tcc8923上,用Android4.0的源碼編譯通過1.bootloader圖片修改     bootablebootloaderlkplatformtcc_sharedincludelcdlogo.h替換就行了logo.h的制作:準(zhǔn)備一張圖片,然后用Img2Lcd工具把圖片轉(zhuǎn)成C語言數(shù)組注意:在使用Img2Lcd工具轉(zhuǎn)換的圖片最左邊會有一條白邊,把數(shù)組中前8個數(shù)值刪除就不會有這樣的情況。僅僅支持.bmp格式的文件2.kernel圖片(lin

2、ux logo)原來是沒有的,需要先在menuconfig中加入配置Device Driver-Graphic support-Bootup Logo中選中224 color然后把自己的LOGO(png-8格式)轉(zhuǎn)換成ppm格式,替換這個文件,同時刪除logo_linux_clut224.c logo_linux_clut224.o文件,重新編譯。(/drivers/video/logo/logo_linux_clut224.ppm 是默認(rèn)的啟動LOGO圖片格式為ppm)ppm圖片的生成:# pngtopnm logo_linux_clut224.png > logo_linux_clu

3、t224.pnm# pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224.pnm(如果執(zhí)行出錯,可以省略)# pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm注意:使用pngtopnm ,pnmquant ,pnmtoplainpnm 工具前要先安裝,在虛擬機(jī)下sudo apt-get install netpbm 這三個工具會安裝好。設(shè)置圖片居中顯示: 修改drivers/video/fbmem.c/*modified by creatory*/

4、image.dx=0;/ image.dy=y;  image.dx=(info->var.xres/2)-(logo->width/2); image.dy=(info->var.yres/2)-(logo->height/2);在drivers/video/console/fbcon.c文件中的logo_height=fb_prepare_logo(info,ops->rotate);下面加入logo_height += (info->var.yres/2)-(logo_height/2);第三張圖片:這張圖片是水果的圖片加入的log

5、o圖片,制作和修改方法如下:1). 制作當(dāng)前屏幕像素的圖片(模擬器默認(rèn)為1024*768) 使用PS制作一張1024*168的圖片,保存時選“保存為 Web 所用格式”,然后在彈開的窗口上,“預(yù)設(shè)”項選擇“PNG-24”,保存為android_logo.png(注:好像只支持png-24,其他格式生成的rle文件顯示不正常,有興趣大家可以再驗證一下。2). 將圖片轉(zhuǎn)換為raw格式 使用linux下的ImageMagick自帶的convert命令,進(jìn)行raw格式轉(zhuǎn)換,命令為:  convert -depth 8 android_logo.png rgb:androi

6、d_logo.raw注:ubuntu 10.04 默認(rèn)已經(jīng)安裝ImgageMagick工具,如果當(dāng)前系統(tǒng)沒有安裝,可以執(zhí)行下面的命令安裝:  sudo apt-get install imagemagick3). 將raw格式轉(zhuǎn)化為rle文件 需要用到android編譯后的rgb2565工具,在android/out/host/linux-x86/bin目錄下(android為當(dāng)前源碼所在目錄),轉(zhuǎn)換命令如下: rgb2565 -rle < android_logo.raw > initlogo.rle4).修改:tcc8923_20120127/de

7、vice/telechips/m805_892x/device.mk 添加下面一行:PRODUCT_COPY_FILES += device/telechips/common/initlogo.rle:root/initlogo.rle意思是復(fù)制rle文件到ramdisk.img5、替換文件devicetelechipscommoninitlogo.rle;同時刪除outtargetproducttcc8900ramdisk.img,ramdisk-recovery.img,再重新編譯,就可以了第二種方法:到目前為止,啟動需要顯示的圖像已經(jīng)做好了,就是initlogo.rle,注意文件名必須是

8、這個,如果想改文件名,需要修改android/system/core/init/init.h中的宏: #define INIT_IMAGE_FILE "/initlogo.rle"=下面需要將initlogo.rle加入的android文件系統(tǒng)中以下的4,5,6,7,需要先進(jìn)行如下設(shè)置,把initlogo.rle放入devicetelechipscommon,刪除ramdisk.img之類的相關(guān)的文件重新make即可。4). 找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),將文件名改為

9、ramdisk.img.gz,然后使用下面的命令解壓: gunzip ramdisk.img.gz 解壓后得到ramdisk.img,可能有人要問,怎么文件名又改回去了?其實不然,使用file ramdisk.img查看一下就知道了: 解壓前:ramdisk.img: gzip compressed data, from Unix 解壓后:ramdisk.img: ASCII cpio archive (SVR4 with no CRC) 跑題了,還是說正事兒。5). 使用cpio提取文件: 新建一個temp目錄: mkdi

10、r temp cd temp cpio -i -F ./ramdisk.img6). 導(dǎo)出文件列表: cpio -i -t -F ./ramdisk.img > list注:list是一個文本文件,里面存儲了ramdisk.img的文件結(jié)構(gòu),我們需要在這個文件中加入initlogo.rle這一行,修改后的文件如下 pdevinitinit.rcinitlogo.rleprocsbinsbin/adbdsyssystem7). 生成ramdisk.img cpio -o -H newc -O ramdisk.i

11、mg < list注:根據(jù)list文件的描述,生成ramdisk.img文件8). 用ramdisk.img覆蓋sdk目錄下的ramdisk.img(android-sdk-windows/platforms/android-2.1/images/ramdisk.img),最好先備份一下。二、開機(jī)動畫(閃動的ANDROID字樣的動畫圖片)Android 的系統(tǒng)登錄動畫類似于Windows系統(tǒng)的滾動條,是由前景和背景兩張PNG圖片組成,這兩張圖片存在于/system/framework /framework-res.apk文件當(dāng)中。前景圖片(android-logo-mask.png)上的

12、Android文字部分鏤空,背景圖片(android-logo-shine.png)則是簡單的紋理。系統(tǒng)登錄時,前景圖片在最上層顯示,程序代碼控制背景圖片連續(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.pngAndroid默認(rèn)的前景圖片,文

13、字部分鏤空,大小256×64/frameworks/base/core/res/assets/images/android-logo-shine.pngAndroid默認(rèn)的背景圖片,有動感效果,大小512×64二、開機(jī)文字("A N D R I O D") Android 系統(tǒng)啟動后,init.c中main()調(diào)用load_565rle_image()函數(shù)讀取/initlogo.rle(一張565 rle壓縮的位圖),如果讀取成功,則在/dev/graphics/fb0顯示Logo圖片;如果讀取失敗,則將/dev/tty0設(shè)為TEXT模式, 并打開/de

14、v/tty0,輸出文本“A N D R I O D”字樣。 定義加載圖片文件名稱 #define INIT_IMAGE_FILE "/initlogo.rle" int load_565rle_image( char *file_name ); #endif init.c中main()加載/initlogo.rle文件。 if( load_565rle_image(INIT_IMAGE_FILE) ) /加載initlogo.rle文件     fd = open("/dev/tty0", O_WRONLY);/將/dev/tty0設(shè)

15、為text模式     if (fd >= 0)         const char *msg;             msg = "n"         "n"         "n"        

16、; "n"         "n"         "n"         "n"  / console is 40 cols x 30 lines         "n"       &#

17、160; "n"         "n"         "n"         "n"         "n"         "n"         "             A N D R O I D "         write(fd, msg, strlen(msg);         close(fd);    

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論