歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android系統開機畫面修改

Android系統開機畫面修改

日期:2017/3/1 10:27:24   编辑:Linux編程

Android系統開機畫面分為下面三個階段:

1、開機圖片:Android內核是基於標准內核的,對linux比較熟悉,特別是在開發板上移植過Linux系統的人就知道在內核引導過程中會顯示出一個小企鵝的圖片,這就是第一階段的開機圖片,相信大家知道怎麼去修改它。Android1.5及其以上版本都取消了這個圖片的顯示,具體的看內核相關代碼就知道了;

2、開機文字:Android系統開機會出現“A N D R O I D”這行字,相信大家都不陌生,那麼這個怎麼修改呢?相關文件在Android系統源碼(不是Android內核源碼)system/core/init/init.c,如下代碼片段:

  1. if( load_565rle_image(INIT_IMAGE_FILE) ) {
  2. fd = open("/dev/tty0", O_WRONLY);
  3. if (fd >= 0) {
  4. const char *msg;
  5. msg = "\n"
  6. "\n"
  7. "\n"
  8. "\n"
  9. "\n"
  10. "\n"
  11. "\n" // console is 40 cols x 30 lines
  12. "\n"
  13. "\n"
  14. "\n"
  15. "\n"
  16. "\n"
  17. "\n"
  18. "\n"
  19. " A N D R O I D ";
  20. write(fd, msg, strlen(msg));
  21. close(fd);
  22. }
  23. }

到這裡大家就知道怎麼修改了吧。但是這裡要提到的一點就是,上面的代碼片段有一個if語句,就是先檢測在文件系統根目錄下是否存在要實現的開機動畫,如果不存在的話,那麼就顯示這個文本信息代替,所以,這個階段是可以實現圖片的顯示的,而且圖片的格式是.rle格式的。如果不存在就顯示文本,所以你可以選擇系那是自己的文字,也就是修改“A N D R O I D”字樣啊。也可以選擇顯示圖片,但是要自己在文件系統的根目錄下提供提片,具體的圖片的名字在init.h文件中定義:

  1. #define INIT_IMAGE_FILE "/initlogo.rle"
  2. int load_565rle_image( char *file_name );

看到上面的宏定義大家就懂了吧,至於怎麼制作rle格式的,這個使用一些軟件就好。

3、開機動畫:這個階段就是大家能看到的系統啟動過程中,www.linuxidc.com顯示完"A N D R O I D"字樣後顯示的圖片,類似進度條一樣,圖片內容也是“A N D R O I D”字樣。這裡怎麼修改呢?

其實這個部分的動畫是使用兩個圖片顯示出來的,具體的圖片文件所在路徑為:frameworks/base/core/res/assets/images,大家看一下就知道了,也就知道怎麼修改了。但是還沒完。

和這部分相關的源碼文件主要是如下幾個:frameworks/base/cmds/bootanimation下面的幾個文件就是的了,可以看看BootAnimation.cpp文件的內容,有如下代碼片段:

  1. bool BootAnimation::android()
  2. {
  3. initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png");
  4. initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png");

這就是設置顯示的前景圖片和背景圖片。

接著看還有如下代碼:

  1. #define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
  2. #define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
  3. #define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
Copyright © Linux教程網 All Rights Reserved