日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

bootanimation文件名_Android开机logo制作

發布時間:2025/4/16 Android 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bootanimation文件名_Android开机logo制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

制作Android的開機畫面

引用地址:

注意: 該地址僅在今日23:59:59之前有效

這里所說的是android啟動的第一個界面,即kernel啟動后由init進程調用的顯示界面

手頭有塊idea6410開發板,是4.3寸TFT液晶屏(480*272分辨率)

首先需要制作一個480*272大小的圖片:在WINDOWS上用PS應該是最方便的。保存時使用“保存為 Web 所用格式”,然后在彈開的窗口上,“預設”項選擇“PNG-24”,生成logo.png

接下來的工作,需要linux環境(windows上使用cygwin理論上也是可行的)

1、使用ImageMagick自帶的convert命令,進行raw格式轉換(convert -depth 8 logo.png rgb:slogo.raw)

注:imgageMagick安裝包,Ubuntu 執行sudo apt-get install p_w_picpathmagick??,CentOS yum install -y p_w_picpathmagick

2、編譯一下android自帶的rgb2565工具,其路徑在$ANDROID_HOME/build/tools/rgb2565上(gcc -O2 -Wall -Wno-unused-parameter -o rgb2565 to565.c)

3、對raw文件進行rle565格式轉換(rgb2565 -rle < logo.raw > initlogo.rle)

到目前為止,啟動需要顯示的圖像已經做好了,就是initlogo.rle,注意文件名必須是這個,如果想改文件名,需要修改 android/system/core/init/init.h中的宏:

#define INIT_IMAGE_FILE "/initlogo.rle"

下面是給虛擬機中換開機畫面

下面需要將initlogo.rle加入的android文件系統中

4. 找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),將文件名改為 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目錄:

mkdir temp

cd temp

cpio -i -F ../ramdisk.img

6. 導出文件列表:

cpio -i -t -F ../ramdisk.img > list

注:list是一個文本文件,里面存儲了ramdisk.img的文件結構,我們需要在這個文件中加入initlogo.rle這一行,修改 后的 文件如下:

data

default.prop

dev

init

init.goldfish.rc

init.rc

initlogo.rle

proc

sbin

sbin/adbd

sys

system

7. 生成ramdisk.img

cpio -o -H newc -O ramdisk.img < list

注:根據list文件的描述,生成ramdisk.img文件

8. 用ramdisk.img覆蓋sdk目錄下的ramdisk.img(android-sdk-windows/platforms/android- 2.1/p_w_picpaths/ramdisk.img),最好先備份一下。

9. 啟動模擬器,就可以看到我們自己做的的開機界面了。

以下轉自:http://my.oschina.net/zhang3/blog/11637

1. 制作 initlogo.rle

# 使用ImageMagick自帶的convert命令,進行raw格式轉換

convert -depth 8 logo.png rgb:logo.raw

# android自帶的rgb2565工具,對raw文件進行rle565格式轉換

$out/host/linux-x86/bin/rgb2565 -rle initlogo.rle

#然后將initlogo.rle拷貝到android系統根目錄,也就是root目錄底下

cp initlogo.rle out/target/product/Demo/root/

2.?相關的實現代碼,摘自 Android 2.1

//?啟動時載入圖像,如果沒有找?INIT_IMAGE_FILE?到這個文件名的圖片,

//?則打印?A?N?D?R?O?I?D?字樣。

if (?load_565rle_p_w_picpath(INIT_IMAGE_FILE)?)?{

fd?=?open("/dev/tty0" ,?O_WRONLY);

if (fd?>=?0)?{

const char *msg;

msg?=?"/n"

"/n"

"/n"

"/n"

"/n"

"/n"

"/n" //?console?is?40?cols?x?30?lines

"/n"

"/n"

"/n"

"/n"

"/n"

"/n"

"?????????????A?N?D?R?O?I?D?" ;

write(fd,?msg,?strlen(msg));

close(fd);

}

}

//"system/core/init/init.c"?1039?行?--86%--

//?啟動時載入圖像,如果沒有找?INIT_IMAGE_FILE?到這個文件名的圖片,

//?則打印?A?N?D?R?O?I?D?字樣。

if(?load_565rle_p_w_picpath(INIT_IMAGE_FILE)?)?{

fd?=?open("/dev/tty0",?O_WRONLY);

if(fd?>=?0)?{

constchar*msg;

msg?=?"/n"

"/n"

"/n"

"/n"

"/n"

"/n"

"/n"//?console?is?40?cols?x?30?lines

"/n"

"/n"

"/n"

"/n"

"/n"

"/n"

"?????????????A?N?D?R?O?I?D?";

write(fd,?msg,?strlen(msg));

close(fd);

}

}

//"system/core/init/init.c"?1039?行?--86%--

// 啟動時載入圖像,如果沒有找 INIT_IMAGE_FILE 到這個文件名的圖片,

// 則打印 A N D R O I D 字樣。

if( load_565rle_p_w_picpath(INIT_IMAGE_FILE) ) {

fd = open("/dev/tty0", O_WRONLY);

if (fd >= 0) {

const char *msg;

msg = "/n"

"/n"

"/n"

"/n"

"/n"

"/n"

"/n" // console is 40 cols x 30 lines

"/n"

"/n"

"/n"

"/n"

"/n"

"/n"

" A N D R O I D ";

write(fd, msg, strlen(msg));

close(fd);

}

}

//"system/core/init/init.c" 1039 行 --86%--

3. 圖像文件名的指定

//?圖像文件名宏的定義?INIT_IMAGE_FILE

void queue_all_property_triggers();

#define?INIT_IMAGE_FILE?"/initlogo.rle"

int load_565rle_p_w_picpath( char *file_name?);

//?"system/core/init/init.h"?179?行?--100%--

1. 介紹 android 開機畫面由三部分組成,第一部分在 bootloader 啟動時顯示,第二部分在啟動 kernel 時顯示,第三部分在系統啟動時( bootanimation )顯示(動畫)

2. bootloader 開機圖片

1) 一般使用 rle 格式圖片,不同的 android 系統不同此圖片可能放在不同位置,以下實例均以 G1 為例, G1 放在 splash 分區中

2) 制作 rle 格式開機圖片

a) 將圖片轉成 320x480 , 256 色,保存成不帶 Alpha 通道的 png 格式

b) 使用 convert 工具將 splash.png 轉換成8位色的 splash.raw

convert splash.png -depth 8 rgb:splash.raw 確認 splash.raw 大小為 460800 字節

c) 使用 android 工具 rgb2565 改變圖像格式 out/host/linux-x86/bin/rgb2565 < splash.raw > splash.raw565 確認 splash.raw565 大小為 307200 字節

3) 燒寫(以 G1 為例) 按 Power+Camera 啟動到燒寫模式 fastboot flash splash1 splash.raw565

3. kernel 開機圖片

1) 相關代碼 kernel/drivers/video/msm/msm_fb.c ( G1 使用高通芯片組 MSM7201 芯片組) 它會讀出根目錄下的 xx.rle ,并顯示為開機畫面, rle 做法同上

4. bootanimation 開機動畫

1) android 2.0 之前

a) 說明 使用 bootanimation 程序顯示開機畫面,如需修改開機畫面,需要修改源碼

b) 代碼 frameworks/base/cmds/bootanimation/*

frameworks/base/core/res/assets/p_w_picpaths/android-logo*

2) android 2.0 及之后

a) 說明 使用 bootanimation 程序顯示開機畫面,如需修改開機畫面,不用修改代碼,只需按格式要求做 bootanimation.zip 包,放在系統的 /system/media 目錄中,或 /data/local 目錄中即可,兩個目錄下都存在時,優先使用 /data/local 下的

b) 代碼 frameworks/base/cmds/bootanimation/*

frameworks/base/core/res/assets/p_w_picpaths*

c) 制作動畫包

i. 描述文件 desc.txt

480 427 30

p 1 0 part0

p 0 10 part1 總體說明: 480 為寬度, 427 為高度, 30 為幀數,即每秒播放動畫 30 幀 部分說明:第一項 p 為標志符,第二項為循環次數 1 為只播放 1 次,0為無限循環,第三項為兩次循環之間間隔的幀數,第四項為對應的目錄名

ii. 圖片 圖片放在 desc.txt 中目錄名指定的目錄中,目錄中按字符順序播放

iii. 打包

2 windows 使用 winrar 找包,選擇 ZIP 格式,壓縮標準要選 “ 儲存 ”

2 linux

zip -0 -r ../bootanimation.zip ./*

linux 命令使用 -0 指定壓縮等級為最低等級 stored ,即只歸檔不壓縮,否則可能由于包格式問題引起動畫顯示為黑屏

2 注意 打包不要帶上層目錄

5. 參考

總結

以上是生活随笔為你收集整理的bootanimation文件名_Android开机logo制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。