Android 开机会出现3个画面:
a. Linux 系统启动,出现Linux小企鹅画面(reboot);
b. Android平台启动初始化,出现"A N D R I O D"文字字样画面;
c. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片。

1 开机图片(Linux小企鹅)

Linux Kernel引导启动后,加载该图片。
/kernel/trunk/drivers/video/fbmem.c
/kernel/trunk/drivers/video/fbmem.h
/kernel/trunk/drivers/video/logo/logo.c
/kernel/trunk/drivers/video/logo/logo.h
/kernel/trunk/drivers/video/logo/Kconfig
/kernel/trunk/include/linux/linux_logo.h

2 开机文字("A N D R I O D")

Android 系统启动后,读取 /initlogo.rle(一张565 rle压缩的位图),如果读取成功,则在/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

if (load_565rle_image(INIT_IMAGE_FILE)) { fd=open("/dev/tty0",O_WRONLY); if(fd>=0) { const char *msg; msg="/n" /*.....省略部分内容*/ " A N D R O I D "; write(fd,msg,strlen(msg)); close(fd); } }

*.rle文件的制作步骤:
a. 使用GIMP或者Advanced Batch Converter软件,将图象转换为RAW格式;
b. 使用android自带的rgb2565工具,将RAW格式文件转换为RLE格式(如:rgb2565 -rle < initlogo.raw > initlogo.rle)。

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

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

相关代码:
/frameworks/base/libs/surfaceflinger/BootAnimation.h
/frameworks/base/libs/surfaceflinger/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

参考文档:

图说Android开机画面和开机动画
http://www.shudoo.com/09/1030/15/13418431.html

initlogo.rle: display an image on boot
http://forum.xda-developers.com/showthread.php?t=443431

分析Android 根文件系统启动过程(init守护进程分析)
http://crazier9527.javaeye.com/blog/454635

更多相关文章

  1. Android(安卓)Fresco实现图片毛玻璃效果
  2. Android使用开源框架ANDROID-IMAGE-INDICATOR实现图片轮播部署
  3. (转)修改Android的开关机铃声、Android开关机画面与动画(附代码流程
  4. Android图片压缩技巧
  5. android异步加载图片
  6. Android(安卓)图片加边框
  7. Android将图片转为字节流存储在SharedPreferences
  8. Android封装保存图片工具类ImageUtils
  9. Android播放循环播放本地图片

随机推荐

  1. Android(安卓)UI开发第六篇——仿QQ的滑
  2. Understanding Disk Encryption on Andro
  3. Android(安卓)Parcelable接口使用方法详
  4. Android(安卓)按钮点击事件
  5. android 非主线程内使用Looper
  6. Android学习笔记(1)————Android四大
  7. Android(安卓)- new BitmapDrawable depr
  8. 使用ThinkAndroid快速开发框架需要有以下
  9. android EditText 银行卡4位加空格
  10. Android(安卓)系统调用