android开机动画
android 开机动画
#移动开发 #Android
1. 介绍
android 开机画面由三部分组成,第一部分在 bootloader
启动时显示,第二部分在启动 kernel 时显示,第三部分在系统启动时(
bootanimation)显示(动画)
2. bootloader 开机图片
- 一般使用 rle 格式图片,不同的 android 系统不同此图片可能放在不同位置,以下实例均以 G1 为例,G1 放在
splash 分区中
- 制作 rle 格式开机图片
将图片转成 320x480,256 色,保存成不带 Alpha 通道的 png 格式
使用 convert 工具将 splash.png 转换成8位色的 splash.raw
convert splash.png -depth 8 rgb:splash.raw
确认 splash.raw 大小为 460800 字节使用 android 工具 rgb2565 改变图像格式
out/host/linux-x86/bin/rgb2565 < splash.raw > splash.raw565
确认 splash.raw565 大小为 307200 字节
- 烧写(以 G1 为例) 按 Power+Camera 启动到烧写模式
fastboot flash splash1 splash.raw565
3. kernel 开机图片
- 相关代码
kernel/drivers/video/msm/msm_fb.c(G1 使用高通芯片组 MSM7201 芯片组) 它会读出根目录下的 xx.rle,并显示为开机画面,rle 做法同上
4. bootanimation 开机动画
- android 2.0 之前
说明
使用 bootanimation 程序显示开机画面,如需修改开机画面,需要修改源码代码
frameworks/base/cmds/bootanimation/*
frameworks/base/core/res/assets/images/android-logo*
- android 2.0 及之后
- 说明
使用 bootanimation 程序显示开机画面,如需修改开机画面,不用修改代码,只需按格式要求做 bootanimation.zip
包,放在系统的 /system/media 目录中,或 /data/local 目录中即可,两个目录下都存在时,优先使用 /data/local
下的
代码
frameworks/base/cmds/bootanimation/*
frameworks/base/core/res/assets/images*制作动画包
描述文件 desc.txt
480 427 30
p 1 0 part0
p 0 10 part1
总体说明:480 为宽度,427 为高度,30 为帧数,即每秒播放动画 30 帧
部分说明:第一项 p 为标志符,第二项为循环次数 1 为只播放 1 次,0为无限循环,第三项为两次循环之间间隔的帧数,第四项为对应的目录名图片
图片放在 desc.txt 中目录名指定的目录中,目录中按字符顺序播放打包
² windows
使用 winrar 找包,选择 ZIP 格式,压缩标准要选 “储存”
² linux
zip -0 -r../bootanimation.zip./*
linux 命令使用 -0 指定压缩等级为最低等级
stored,即只归档不压缩,否则可能由于包格式问题引起动画显示为黑屏
² 注意
打包不要带上层目录
5. 参考
- bootanimation 相关
[http://blog.21ic.com/user1/2537/archives/2009/65606.html
](http://blog.21ic.com/user1/2537/archives/2009/65606.html)
- rle 文件制作
[http://hi.baidu.com/kernel_linux/blog/item/9eff140f9d089c206159f3cb.html
](http://hi.baidu.com/kernel_linux/blog/item/9eff140f9d089c206159f3cb.html)
- bootloader 启动
[http://blog.csdn.net/yili_xie/archive/2010/05/14/5592276.aspx
](http://blog.csdn.net/yili_xie/archive/2010/05/14/5592276.aspx)
(转载请注明出处 http://xy0811.spaces.live.com/)