android 启动界面的定制

来源:互联网 发布:mac os x ios下载 编辑:程序博客网 时间:2024/05/17 08:29

http://blog.csdn.net/mr_raptor/article/details/30113417

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),这样在系统启动时就会播放自己的开机动画和播放音乐。

0 0
原创粉丝点击