Android開機畫面總共有三屏
一、第一屏:開機logo
1、選張png格式的圖片,在Linux任意下執行(安裝工具):
- sudo apt-get install pnmtoplainpm
2、在所要定制logo的pngtopnm logo.png目錄執行(轉換成pnm格式):
- pngtopnm logo.png > logo_linux.pnm
3、再執行(轉化成224的pnm圖片):
- pnmquant 224 logo_linux.pnm > logo_linux_clut224_formal.pnm
4、執行(轉換成ppm格式):
- pnmtoplainpnm logo_linux_clut224_formal.pnm > logo_linux_clut224.ppm
5、/kernel/drivers/video/logo/logo_linux_clut224.ppm是默認的啟動Logo圖片,把自己的ogo_linux_clut224.ppm替換這個文件,同時刪除logo_linux_clut224.c logo_linux_clut224.o文件(如果存在) 。
6、進入kernel目錄重新編譯內核
- cd kernel
- make kernel.img
二、第二屏:Android字樣
- if( load_565rle_image(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"
- "\n"
- " A N D R O I D ";
- write(fd, msg, strlen(msg));
- close(fd);
- }
- } :
- #define INIT_IMAGE_FILE "/initlogo.rle"
- int load_565rle_image( char *file_name );
三、第三屏:開機動畫
- bool BootAnimation::android()
- {
- initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png");
- initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png");
- }
- #define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
- #define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
- #define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
示例如下:
- 480 800 15
- p 1 0 part0
- p 0 0 part1
- 480--width of the image, 800--height of the image, 15--frames of second
- p 1, display one time
- p 0, display recycling till handset power on finished
你可以制作自己的bootanimation.zip文件放置在合適的目錄下,這樣可以代替默認的開機界面:這里說的合適的目錄就是上面的宏定義,大家都懂^_^!怎么制作bootanimation.zip文件呢?和上面一樣創建兩個目錄和一個文件,然后使用軟件或者是命令行大包即可
- zip -r -0 bootanimation.zip part0 part1 desc.txt
至此,自定義開機畫面就完成了!
(1)、如果只要替換原動畫的話流程如下:
1、編譯成功后在android源碼根目錄生成out目錄
2、修改android\out\target\product\sdkDemo\system\framework目錄下的framework-res.apk
用winrar格式打開,替換assets\images里的2張圖片即可
(2)、如果要完全自己制作開機動畫的話,流程如下:
1、准備好要制作的圖片放在指定文件夾內(我的是android1、android2兩個目錄,里面是若干png格式圖片)
2、編寫desc.txt文件,指定動畫參數(我的配置是:1366 768 9p 1 0 android1p 0 0 android2)
3、在android1、android2、desc.txt所在目錄執行:
- zip -0 bootanimation.zip android1/*png android2/*png desc.txt
4、將bootanimation.zip拷貝到自定義media目錄下,修改自己的makefile文件,添加以下類似代碼:
- PRODUCT_COPY_FILES += \$(call find-copy-subdir-files,*,$(LOCAL_PATH)/media,system/media)
5、重新編譯