android開logo,這一塊在工做改動的也是比較多的,也比較簡單,不一樣的公司,不一樣型號的產品,開機的標識不同。html
咱們平時目測的開機logo通常是兩種:靜態的和動畫的。其實在實現logo的過程當中,有四幅圖片:(1)、uboot顯示;(2)、kernel顯示logo_linux_clut244.ppm;(3)、android第一幅intilogo.rle;(4)、android第二幅,bootanimation。前三幅通常咱們作成相同的,(4)爲動畫顯示。啓動過程以下所示。linux
這篇重點說一下要用到的文件怎麼生成,程序方面的就再也不去深刻,這一塊的代碼量也不小,通常不須要額什麼改動。UBOOT的logo會影響開機的速度,咱們也沒有作這一塊,UBOOT啓動仍是比較快,幾秒鐘的黑屏你們仍是能夠接受。下面從內核logo提及。android
1、內核logoubuntu
一、內核目錄中 make menuconfigapp
Device Drivers ---->Graphics support ---->Bootup logo ----> Standard 224-color Linux logo
把開機LOGO圖片保存爲bmp或者png格式:如linux.png;linux.bmp經過linux工具把圖片轉化爲:ppm格式。替換:driver/video/logo/logo_linux_clut244.ppmide
下面命令須要安裝netpbm的工具包 若是沒有:sudo apt-get install netpbm工具
我作的實驗,包括腳本能夠在這裏下載:android logo 腳本oop
(1)、png格式圖片,執行下面命令動畫
能夠把上面命令寫成一個腳本,這樣使用更方便:google
kernelLogo_png.sh
以下圖:①cat ./kenrelLogo_png.sh 查看腳本內容,以下面所解釋
②./kenrelLogo_png.sh 執行腳本
③Ls查看到生成的logo_linux_clut224.ppm
(1)、bmp格式的圖片
腳本爲kenrelLogo_bmp.sh
把logo_linux_clut224.ppm拷貝到製做好的LOGO文件到 /drivers/video/logo 文件夾替換 logo_linux_clut224.ppm 文件,刪除該文件夾下的logo_linux_clut224.o,編譯燒錄,就能夠看到你所更改的圖片。
2、android logo
一、android第一張logo
(1)找一張.png格式的圖片,使用linux下的ImageMagick自帶的convert命令,進行raw格式轉換,命令爲:
(2)、須要用到android編譯後的rgb2565工具,在android/out/host/linux-x86/bin目錄下(android爲當前源碼所在目錄),轉換命令以下:
注:ubuntu10.04 默認已經安裝ImgageMagick工具,若是當前系統沒有安裝,能夠執行下面的命令安裝:
sudo apt-getinstall imagemagick
爲了方便,咱們把rgb2565這個bin文件,拷貝到咱們作動畫的文件夾中。同上面也寫一個腳本出來:
android_rle.sh
啓動須要顯示的圖像已經作好了,就是initlogo.rle,注意文件名必須是這個,若是想改文件名,須要修改android/system/core/init/init.h中的宏:
放到相的目錄下就好了.
一、android第二張圖片(動畫)
(1)、開機動畫文件爲:/system/media/bootanimation.zip是一個標準的zip文件,不過設置壓縮率時選擇存儲。
(2)、linux下用命令打包:
zip -r -X -Zstore ../bootanimation part*/*.png desc.txt
(3)、壓縮包的結構:
①Part 這個文件夾中爲咱們所顯示的png圖片
②desc.txt中的內容咱們要分析下,圖片美工去作,咱們要讓正常顯示就要在這裏面寫一些值。看下里面的內容
3.1 在 Widows 環境中創建文件夾:
bootanimation
3.2 在bootanimation文件夾中創建子文件夾:
part0
part1
而後將一批.png文件拷貝到文件夾part0裏面,part1中暫時不放圖片文件
3.3 在 bootanimation 文件夾中創建文本文件:
desc.txt
可能在desc.txt中寫以下信息(注,該文件是google定義的,可在網上搜索獲得):
1024 600 10
p 1 0 part0
p 0 0 part1
文件 desc.txt 的內容解釋:
(1)分辨率
1024 600
第一行」1024 600」:表示機器屏幕分辨率width height
(2)幀率
第一行」10」:表示每秒中播放10張圖片(gong 10zhang )
(3)p 1 0 part0
p:表示play
1:表示播放一遍,若是是0則表示循環播放
0:表示延時時間
part0:此文件夾下放置開機顯示的動畫圖片,圖片分辨率要和機器分辨率同樣,不然顯示會有問題
(4)p 0 0 part1
在part0的圖片都顯示完畢後,就顯示part1中的圖片
3.4 在文件夾 bootanimation 內,同時選擇「part0, part1, desc.txt」,而後壓縮
壓縮的設置以下:
(a)壓縮文件名:
bootanimation.zip
(b)壓縮文件格式:
ZIP
(c)壓縮方式:
存儲
3.5 將前面生成的bootanimation.zip拷貝到工程中
$ cd Project_root/
$ cd device/rockchip/rk2928sdk/apk/
$ mkdir app_newpad
注:將生成的bootanimation.zip文件拷貝到文件夾app_newpad中
3.6 編輯 device.mk
$ cd Project_root/
$ cd device/rockchip/rk2928sdk/
$ vi device.mk
##################################
# copy proprietary apk
##################################
COPY_APK_TARGET := $(call all-apk-files-under,apk)
PRODUCT_COPY_FILES += $(foreach apkName, $(COPY_APK_TARGET), \
$(addprefix $(LOCAL_PATH)/apk/, $(apkName)):$(addprefix system/app/, $(apkName)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/apk/flashplayer.nm:system/app/flashplayer.nm
# 添加如下信息
# 注意路徑的一致性
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/apk/app_newpad/bootanimation.zip:system/media/bootanimation.zip