[转载]Android系统开机画面的实现

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"

看宏名相信大家就知道了,这就是设置动画文件的名称了。为什么会又显示图片又设置动画显示呢,这个Android版本有关。显示两个图片:前景和背 景图片 是在1.5版本用,后来就改为了设置动画文件,就是:bootanimation.zip,是zip格式的,这个文件包含三个内容:两个目录:part0 和part1,一个文件desc.txt。

两个目录用来包含要显示的图片,分为第一阶段和第二阶段。剩下的文件就是设置关于如何显示的信息

示例如下:

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

至此,自定义开机画面就完成了!

时间: 2024-08-02 01:07:48

[转载]Android系统开机画面的实现的相关文章

源码中修改Android的开机画面和动画【转】

本文转载自:http://blog.csdn.net/dddxxxx/article/details/54343976 参照文章:http://blog.csdn.net/a345017062/article/details/6222962.http://bbs.gfan.com/android-146253-1-1.html. Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止.第二个过程从Frameworks启动完成到Launcher程序启动完成.

纯CSS打造的安卓系统开机画面动画特效代

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>纯CSS打造的安卓系统开机画面动画特效代码</title> <style> .android{ position:relative; width:200px; heigh

Android 系统开机logo的修改【转】

本文转载自:http://blog.csdn.net/yandongqiangZHRJ/article/details/8585273 看到了好几个修改logo的博文,但是说的不是很清楚,在这里亲手送上通过自己的动手修改过验证后的方法. Android 开机其实总共会出现3个画面: 1.第一个就是 Linux 系统启动,出现linux小企鹅画面(reboot): 2.当android系统从Linux内核启动后,将会执行anddroid平台的初始化过程,屏幕上将会出现”A N D R I O D”

Android系统开机启动画面显示过程简要说明

开机启动会显示三个画面: Linux内核的启动画面,静态画面 Init进程启动过程中出现的静态画面 系统服务启动过程中出现的动态画面 这些画面的显示的过程不同,但最终是通过framebuffer显示的,每层对它显示的过程进行了封装.即无论是哪一个画面,它们都是在一个称为帧缓冲区(frame buffer,简称fb)的硬件设备上进行渲染的. Framebuffer是对硬件显示设备的抽象,屏蔽底层不同的显示设备.对framebuffer上进行写操作即可得到对应的画面. 第一个启动画面:显示一只企鹅

[转载] CentOS系统开机自动挂载光驱 和 fstab文件详解

参考 http://blog.itpub.net/12272958/viewspace-676977/ 一.开机自动挂载光驱 1.按习惯,root用户,在/media目录下建立目录cdrom——mkdir/media/cdrom 2.修改/etc/fstab文件.在该文件最后按顺序添加如下内容: /dev/cdrom /media/cdrom auto exec 0 0 3.重启CentOS系统 4.执行命令:mount -tiso9660 /dev/cdrom /media/cdrom 完成光

性能测试之二----Android系统开机时间(转)

原文地址:http://blog.x6x8.com/?p=96 (1)在主屏幕上轻按“设置”按钮.或者,按下物理按钮菜单键“Menu”,选择“(系统)设置”. (2)在设置的列表下,选择最下面“关于本机”按钮. (3)然后,轻按“状态消息”按钮. (4)拉到最下面查看“开机时间”.

Android 更新开机画面以及关机画面

在项目中添加两个动画文件,文件制作麻烦找百度: device/qcom/YOUR_PROJECT_NAME/bootanimation.zip device/qcom/YOUR_PROJECT_NAME/shutdownanimation.zip 之后在YOUR_PROJECT_NAME.mk中添加以下代码 PRODUCT_COPY_FILES += device/qcom/$(TARGET_PRODUCT)/bootanimation.zip:system/media/bootanimatio

Android系统的定制---定制系统开机动画

4.3定制Android平台系统 通常产品厂商在拿到Android源码后会在Android源码基础上进行定制修改,以匹配适应自己的产品,从本节开始,我们从最原始的Android源码系统里一步一步定制出自己的Android系统.本节主要内容包含:根据Android源码,添加新产品编译项,定制系统启动界面和文字,定制系统启动动画和声音,定制系统桌面. 4.3.1添加新产品编译项 Android系统的源代码是一个逻辑结构非常独立工程,在一套Android源码中可以编译出多个产品映像,在需要编译某一个产

深入浅出 - Android系统移植与平台开发(十一)- Android系统的定制【转】

本文转载自: 4.3定制Android平台系统 通常产品厂商在拿到Android源码后会在android源码基础上进行定制修改,以匹配适应自己的产品,从本节开始,我们从最原始的Android源码系统里一步一步定制出自己的Android系统.本节主要内容包含:根据Android源码,添加新产品编译项,定制系统启动界面和文字,定制系统启动动画和声音,定制系统桌面. 4.3.1 添加新产品编译项 Android系统的源代码是一个逻辑结构非常独立工程,在一套Android源码中可以编译出多个产品映像,在