Android 开机动画定制

来源:互联网 发布:哈尔滨mac专柜地址 编辑:程序博客网 时间:2024/05/01 10:12

Android 开机会出现3个画面:
(一)底层Linux内核系统启动,出现Linux小企鹅画面(reboot);
(二)Android平台启动初始化,出现"A N D R I O D"文字字样画面;
(三)Android平台上层图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。

 

一、      底层Linux内核系统启动logo(小企鹅)修改

 

1、分析过程:

 

(1)先看一下Bootup logo选项的帮助文档,其启动LOGO是如何配置的。

到Android内核源码根目录下执行make menuconfig,按如下层次依次进入:

     ->DeviceDrivers

            ->Graphicssupport

           -> [*] Bootup logo --->

选择help查看详细信息:

CONFIG_LOGO:

       Enable andselect frame buffer bootup logos.

       Symbol: LOGO[=y]

       Prompt: Bootuplogo

          Defined at drivers/video/logo/Kconfig: 5

          Depends on: HAS_IOMEM && (FB||SGI_NEWPORT_CONSOLE)

          Location:

               ->DeviceDrivers

                  ->Graphicssupport

 

由此可知:drivers/video/logo/Kconfig:5 由此句话,我们知道,启动LOGO的图片的设置是在这个文件中。

 

(2)再看那张启动图片(小企鹅)logo_linux_clut224.ppm是怎么配置的:

->DeviceDrivers

            ->Graphicssupport

           -> [*] Bootup logo --->

              ->[*] Standard 224-color Linux logo  

选择help查看详细信息:

Symbol: LOGO_LINUX_CLUT224 [=y]

       Prompt: Standard224-colorLinux logo

          Defined at drivers/video/logo/Kconfig: 26

          Depends on: HAS_IOMEM && (FB||SGI_NEWPORT_CONSOLE) && LOGO

          Location:

            ->DeviceDrivers

               ->Graphicssupport

                 ->Bootuplogo (LOGO [=y])

 

由此可知:在~/work/android-2.6.29-samsung/drivers/video/logo目录下的Kconfig中有:

       26  config LOGO_LINUX_CLUT224

       27  bool"Standard224-colorLinux logo"

       28  default y

——即选择了logo_linux_clut224这张图片作为启动画面的logo。

 

若我们想加一个图片,应该在Kconfig中添加相应的配置选项,同时,要在logo 目录下有一个相应的.ppm 格式的图片文件(一个.ppm图片文件、一个.c的文件、一个.h的文件)... ...

这种情况我先不给大家介绍,我们直接用一个.ppm格式的新的图片文件覆盖原来的开机logo 图片文件,重新编译内核即可,相关过程如下。

 

2、修改过程:

 

1首先找一张符合LCD分辨率的png图片(logo.png),(听说bmp格式的也可以,只是格式转换的命令不同),然后按下面的命令做格式转换:

pngtopnm  logo.png  >  my_linux_logo.pnm(需要下载工具sudoapt-get install netpbm

pnmquant  224  my_linux_logo.pnm  >  my_linux_logo224.pnm

pnmtoplainpnm  my_linux_logo224.pnm >  my_linux_logo.ppm

2将ppm图片文件拷贝到logo 目录下,将原开机启动图片文件(小企鹅)做下备份:

cp  logo_linux_clut224.ppm  logo_linux_clut224_copy.ppm

3将新图片文件替换原来的图片文件:

mv  my_linux_logo.ppm  logo_linux_clut224.ppm

4然后make menuconfig,选中Standard224-colorLinuxlogo:

->DeviceDrivers

            ->Graphicssupport

           -> [*] Bootup logo --->

              ->[*] Standard 224-color Linux logo  

5设置图片居中显示:

修改drivers/video/fbmem.c

/*modified bycreatory*/

// image.dx=0;

// image.dy=y;

         image.dx=(info->var.xres/2)-(logo->width/2);

 image.dy=(info->var.yres/2)-(logo->height/2);

在drivers/video/console/fbcon.c文件中的

logo_height=fb_prepare_logo(info,ops->rotate);

下面加入

logo_height +=(info->var.yres/2)-(logo_height/2);

 

最后make zImage,将内核镜像烧到开发板中,即可大功告成!!!

 

 

 

二、      Android平台启动初始化"AN D R I O D"字样修改

在启动代码system/core/init/init.c中将下面的代码修改红色字体部分,即可在开机时显示所修改的内容,一般为了开机的简约,这段代码通常被屏蔽掉。

 

    if(load_565rle_image(INIT_IMAGE_FILE) ) {

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

    if (fd >=0) {

        constchar *msg;

            msg= "\n"

       "\n"

       "\n"

       "\n"

       "\n"

       "\n"

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

       "\n"

       "\n"

       "\n"

       "\n"

       "\n"

       "\n"

       "\n"

       "             A N D R O I D    ";//需要修改的地方

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

       close(fd);

    }

    }

重新进行源码的编译,启动Android系统即可。

三、Android图形系统启动,动画闪动ANDROID修改

 

1、主要过程分析:
BootAnimation::readyToRun()
      ==>
程序会尝试打开/data/local/bootanimation.zip/system/media/bootanimation.zip文件如果2个文件都不存在,那么mAndroidAnimation将为true
  mAndroidAnimation = false;
  status_t err = mZip.open("/data/local/bootanimation.zip");
  if (err != NO_ERROR) {
  err = mZip.open("/system/media/bootanimation.zip");
  if (err != NO_ERROR) {
  mAndroidAnimation = true;
  }
  }

于是最终将在下面threadLoop()函数中
BootAnimation::threadLoop()
  if (mAndroidAnimation) {
  r = Android(); //
执行android字体闪动的图片
  } else {
  r = movie(); //
执行bootanimation.zip中提供的动画图片
  }
==> BootAnimation::Android()
会加载"images/android-logo-mask.png""images/android-logo-shine.png"

==> BootAnimation::movie()会加载bootanimation.zip中的内容

2、添加方法:

/data/local/system/media目录下添加自己的动画bootanimation.zip文件(同时也可以添加相应的开机音乐 bootanimation.MP3),这样在系统启动时就会播放自己的开机动画和播放音乐。

 

原创粉丝点击