android開logo,這一塊在工作改動的也是比較多的,也比較簡單,不同的公司,不同型號的產品,開機的標識不一樣。
我們平時目測的開機logo一般是兩種:靜態的和動畫的。其實在實現logo的過程中,有四幅:(1)、uboot顯示;(2)、kernel顯示logo_linux_clut244.ppm;(3)、android第一幅intilogo.rle;(4)、android第二幅,bootanimation。前三幅一般我們做成相同的,(4)為動畫顯示。啟動過程如下所示。
這篇重點說一下要用到的檔案怎麼生成,程式方面的就不再去深入,這一塊的**量也不小,一般不需要額什麼改動。uboot的logo會影響開機的速度,我們也沒有做這一塊,uboot啟動還是比較快,幾秒鐘的黑屏大家還是可以接受。下面從核心logo說起。
一、核心logo
1、核心目錄中 make menuconfig
把開機logo儲存為bmp或者png格式:如linux.png;linux.bmp通過linux工具把轉化為:ppm格式。替換:driver/video/logo/logo_linux_clut244.ppm
下面命令需要安裝netpbm的工具包
如果沒有:
sudo apt-get install netpbm
(1)、png格式,執行下面命令
[html]view plain
copy
#pngtopnm linuxlogo.png
>
linuxlogo.pnm //生成ppm
#pnmquant 224 linuxlogo.pnm >
linuxlogo224.pnm//轉換成224顏色
#pnmtoplainpnm linuxlogo224.pnm >
logo_linux_clut224.ppm //轉換成ascii格式
可以把上面命令寫成乙個指令碼,這樣使用更方便:
kernellogo_png.sh
[html]view plain
copy
pngtopnm $1
>
linuxlogo.pnm //$1為引數,這樣不用每次改名稱,後幾步為執行過程
pnmquant 224 linuxlogo.pnm >
linuxlogo224.pnm
pnmtoplainpnm linuxlogo224.pnm >
logo_linux_clut224.ppm
#刪除過程中生成不需要的檔案
rm -rf ./linuxlogo.pnm ./linuxlogo224.pnm
rm -rf ./linuxlogo.pnm ./linuxlogo224.pnm
如下圖:①cat ./kenrellogo_png.sh 檢視指令碼內容,如下面所解釋
②./kenrellogo_png.sh 執行指令碼
③ls檢視到生成的logo_linux_clut224.ppm
(1)、bmp格式的
指令碼為kenrellogo_bmp.sh
[html]view plain
copy
convert $1 linuxlogo.png //把bmp轉換成png格式,下面過程和png格式相同
pngtopnm linuxlogo.png >
linuxlogo.pnm
pnmquant 224 linuxlogo.pnm >
linuxlogo224.pnm
pnmtoplainpnm linuxlogo224.pnm >
logo_linux_clut224.ppm
rm -rf ./linuxlogo.pnm ./linuxlogo224.pnm ./linuxlogo.png
把logo_linux_clut224.ppm拷貝到製作好的logo檔案到/drivers/video/logo 資料夾替換
logo_linux_clut224.ppm檔案,刪除該資料夾下的logo_linux_clut224.o,編譯燒錄,就可以看到你所更改的。
注:convert是乙個很強大編輯工具,沒用的需要安裝,在ubuntu下的輸入以下命令: sudo apt-get install imagemagick
二、android logo
1、android第一張logo
(1)找一張.png格式的,使用linux下的imagemagick自帶的convert命令,進行raw格式轉換,命令為:
[html]view plain
copy
convert -depth 8 android_logo.pngrgb:android_logo.raw
(2)、需要用到android編譯後的rgb2565工具,在android/out/host/linux-x86/bin目錄下(android為當前原始碼所在目錄),轉換命令如下:
[html]view plain
copy
rgb2565 -rle
<
android_logo.raw
>
initlogo.rle
注:ubuntu10.04 預設已經安裝imgagemagick工具,如果當前系統沒有安裝,可以執行下面的命令安裝:
sudo apt-getinstall imagemagick
為了方便,我們把rgb2565這個bin檔案,拷貝到我們做動畫的資料夾中。同上面也寫乙個指令碼出來:
android_rle.sh
[html]view plain
copy
convert -depth 8 $1 rgb:logo.raw//轉換成raw檔案
rgb2565 -rle <
logo.raw
>
initlogo.rle//生成我們要的rle檔案,注意:rbg2565在android/out/host/linux-x86/bin目錄拷過來。
啟動需要顯示的影象已經做好了,就是initlogo.rle,注意檔名必須是這個,如果想改檔名,需要修改android/system/core/init/init.h中的巨集:
[html]view plain
copy
#define init_image_file "/initlogo.rle"
放到相的目錄下就行了.
1、android第二張(動畫)
(1)、開機動畫檔案為:/system/media/bootanimation.zip是乙個標準的zip檔案,不過設定壓縮率時選擇儲存。
(2)、linux下用命令打包:
(3)、壓縮包的結構:
①part 這個資料夾中為我們所顯示的png
②desc.txt中的內容我們要分析下,美工去做,我們要讓正常顯示就要在這裡面寫一些值。看下裡面的內容
[html]view plain
copy
400 800 18
p 1 0 part0
#400 800 為的解析度 400*800
#18為每秒顯示的張數,也就是18fps/s
#p代表定義乙個部分。
#字串定義了載入檔案的路徑
Android 更換開機logo和開機動畫
開機logo有kernel logo和uboot logo兩個 如何找到對應的?確認當前專案的裝置使用的是哪種尺寸的logo 一般在對應專案的projectconfig.mk檔案裡可以找到 例如 boot logo hd720找到vendor mediatek proprietary bootabl...
linux開機logo製作
pngtopnm,pnmquant,pnmtoplainpnm pngtopnmlinuxlogo.png linuxlogo.pnm pnmquant 224 linuxlogo.pnm linuxlogo224.pnm pnmtoplainpnm linuxlogo224.pnm linuxlo...
linux開機logo製作
或者 bmptoppm pic.bmp temp1.ppm 生成ppm ppmquant 224 temp1.ppm temp2.ppm 轉換成224顏色 pnmnoraw temp2.ppm logo.ppm 轉換成ascii格式 這樣您製作的logo就已經成功了,將linuxlogo224.pp...