Chinaunix首页 | 论坛 | 博客
  • 博客访问: 525438
  • 博文数量: 107
  • 博客积分: 927
  • 博客等级: 大尉
  • 技术积分: 865
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-13 17:50
文章分类

全部博文(107)

文章存档

2014年(2)

2013年(13)

2012年(16)

2011年(76)

分类: Java

2011-10-21 10:28:01

Android开机logo

用图片工具编辑好想要的png之后,保存为logo.png

在logo.png所在命令下执行命令:

#使用ImageMagick自带的convert命令,进行raw格式转换


convert -depth 8 logo.png rgb:logo.raw

 

android自带的rgb2565工具,对raw文件进行rle565格式转换

$(SRC_HOME)/out/host/linux-x86/bin/rgb2565 -rle initlogo.rle

 

然后将initlogo.rle拷贝到android系统根目录,也就是root目录底下

cp initlogo.rle root/

 

删除中间文件

rm -f logo.raw

 



在制作完 initlogo.rle 之后, 放入终端使用,发现第一次可以显示,第二次重启时又变成android的字符了,查看代码 system/core/init/init.c [load_565rle_image] --> logo.c 中发现源码在显示完毕initlogo.rle之后作了 unlink 操作, 而android 默认initlogo.rle 所在的system.img 是只读的,所以如果按照android 的标准形式作分区及其属性是没有问题, 但对于自定义的ya 或者 ubi形式的可读写的rootfs时就又问题了, 所以干脆注释unlink 代码吧.


Android开机动画

准备自己喜欢的开机图片,注意:图片必须为.png 格式,最好小于40Kb
(如果不会做连接的图片组 直接找个适合自己分辨率的动态图片分解出PNG格式的静态图片
ImageReady可以批量导出)
建立part1 part2或android文件夹 放进一组连接的图片组
保存下来的png图片记得要按顺序编号命名。
开始写desc.txt 这个文件里面的命令。
desc.txt里面的命令格式如下:

480 800 30
p 1 0 part0
p 0 0 part1
480 800意思是说你开机动画在屏幕先以多少的分辨率显示,注意不要超过480x854的分辨率,
否则你的画面就显示不全了。
30 这个数字是代表着每秒播放的帧数,打个比方,part0文件夹里面共76个图片,
播放时间就是76/30=2.533333秒播放完毕,当然在手机里面会有一定的延时,尤其是你的图片文件
比较大的情况下,手机想播快也快不起来,卡啊
p 1(代表着播放一次) 0(空指令)part0  */这句指令就代表这part0文件夹内的图片只按名称顺序播放一次
p 0(重复播放)0
 (空指令)part1 */这一句指令代表着part1文件夹内的图片会循环反复播放
还有一种是指令
p 0 10 part1
 这里面的那个10代表着播放完part1文件夹内的图片一遍之后稍作停顿,然后再循环播放一遍,

再停顿少许,再播放,再停顿稍许·········重复下去
p 1 10 part1
  同理,这句代表着播放完part1文件夹内的图片之后稍作停顿然后继续执行下一条命令。


图片准备好了,desc.txt里面的命令准备好了,就可以把他们一起打包压缩成zip格式了。
记住,是zip格式,而不是rar格式。另外压缩的时候注意一点,
压缩的时候压缩方式要选择存储,否则开机时

手机会不认的。开机的时候会黑着没动画一直到进入桌面为止。
如果压缩完太大,重新解压用JPEG Imager软件处理再压缩zip格式。建议不要大于6M。
压缩文件重命名为bootanimation.zip

system/media/bootanimation.zip 或system/customize/resource/bootanimation.zip 或 /data/local/bootanimation.zip 替换、重启。

阅读(2064) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~