现在的位置: 首页 > 综合 > 正文

android 开机logo及开机动画

2013年07月29日 ⁄ 综合 ⁄ 共 1616字 ⁄ 字号 评论关闭

Android系统从Linux内核启动后,将会执行anddroid平台的初始化过程,屏幕上将会出现”A ND R I O D”文字字样画面

Android 系统启动后,读取 /initlogo.rle(一张565rle压缩的位图),如果读取成功,测在/dev/graphics/fb0显示Logo图片;如果读取失败,则将/dev/tty0设为TEXT模式,并打开/dev/tty0,输出文本“A N D R I O D”字样。

相关代码:

/system/core/init/init.c
/system/core/init/init.h
/system/core/init/init.rc
/system/core/init/logo.c

*.rle文件的制作步骤:

1). 制作当前屏幕像素的图片

 使用PS制作一张适合屏幕大小的图片,保存时选“保存为 Web所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo.png(

注:好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。

2). 将图片转换为raw格式
 使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:
  convert -depth 8 android_logo.pngrgb:android_logo.raw

 注:Ubuntu 10.04默认已经安装ImgageMagick工具,如果当前系统没有安装,可以执行下面的命令安装:
  sudo apt-get install imagemagick

3). 将raw格式转化为rle文件
 需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:
 rgb2565 -rle < android_logo.raw >initlogo.rle

到目前为止,启动需要显示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改

android/system/core/init/init.h中的宏:
 #define INIT_IMAGE_FILE "/initlogo.rle"

4).将制作好的initlogo.rle文件拷贝到android系统的root目录下,也就是out/target/product/..../root下

再编译android系统,经过验证发现initlogo.rle图片的数据文件打包到ramdisk.img文件中。

开机动画(闪动的ANDROID字样的动画图片)

Android 的系统登录动画类似于Windows系统的滚动条,是由前景和背景两张PNG图片组成,这两张图片存在于/system/framework /framework-res.apk文件当中。前景图片(android-logo-mask.png)上的Android文字部分镂空,背景图片 (android-logo-shine.png)则是简单的纹理。系统登录时,前景图片在最上层显示,程序代码控制背景图片连续滚动,透过前景图片文字 镂空部分滚动显示背景纹理,从而实现动画效果。

相关代码:
/frameworks/base/cmds/bootanimation/BootAnimation.h
/frameworks/base/cmds/bootanimation/BootAnimation.cpp

/frameworks/base/core/res/assets/images/android-logo-mask.png
Android默认的前景图片,文字部分镂空,大小256×64
/frameworks/base/core/res/assets/images/android-logo-shine.png
Android默认的背景图片,有动感效果,大小512×64

抱歉!评论已关闭.