替换Android手机的开机动画小结

一直都有个心愿就是想自定义自己的G6开机动画。鼓捣了一阵子后,终于拿下。
按照网上的教程,Linux用户肯定是一路顺风的,很快就搞定了;但如果是Window用户那可就是不走运的--我就属于这倒霉的一分子。
参考帖:
http://www.droidforums.net/forum/droid-hacks/9163-desc-txt-boot-animations-works-like.html

这儿先给出系统实现开机动画的代码地址:
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=cmds/bootanimation/BootAnimation.cpp;h=12c9fe502220fb489b0417b0e895d5d8c37d29cf;hb=HEAD

直接进入步骤
1.准备好图片素材,格式仅限png,并根据播放顺序命名图片文件。
相关代码为401→413行。

2.编写desc.txt。desc.txt文件描述着开机动画的播放帧数及图片源。
在Window下打开desc.txt会只有一行如“320 480 30■p 1 0 part0■p 0 10 part1■”
如果你全选后复制到其它的文本编辑器,你将会看这些代码将会重新格式化为:
320 480 30
p 1 0 part0
p 0 10 part1

好了,这儿有两个问题了,问:
2.1 直接打开时,那个“■”是什么意思,ROM的作者为什么让Window下的用户看个"■"呢?
2.2 代码是什么意思呢?
答:
2.1 出现"■"表明这个文件是linux环境下生成的“换行”符。而由于Window下每行结尾是“换行”+“回车”,所以只会读到一个黑框。
由于android是linux系统,在编写desc.txt时放进手机内时,Window要删除“回车”符,否则android会将“回车”与下一行的字符"p"组成一个字符串,导致信息无效,手机启动时出现黑屏。删除工具我使用的Hex Editor Neo。或者也可以只敲代码,在换行时直接ctrl+c / ctrl + v就行了。
2.2 代码的解释:
“320 480 30”→→“开机时显示的图片宽  开机时显示的图片高  图片帧数”
320 480并非屏幕或图片的像素宽高。在实验中,可以写成任意的数值,在开机时,图片会自动变形为指定的宽高数值。
接下来有几行就表示定义了几部分的开机动画
“p 1 0 part0”→→“动画阶段标识符  动画循环播放次数  本阶段动画播放结束时延迟时长  本阶段动画素材文件夹名称”
动画循环播放次数为“0”时表示无限循环直到开机完成。
相关代码:345→418行 movie()方法。

好了,编写好desc.txt文件后,我们就要把准备好的资源文件打包成bootanimation.zip文件了。文件名必须为“bootanimation.zip”的原因请见代码中常量SYSTEM_BOOTANIMATION_FILE的定义。zip为linux通用压缩包格式。
打包方法可以使用WinRAR。请选择“zip”压缩格式,压缩方式请选择“存储”。如下图:
press

好了。bootanimation.zip就制作完了,使用工具将手机中的/system/media下的bootanimation.zip替换一下,重启手机后就发现开机动画已经显示成你先前准备好的素材了。

对2.1的补充:
计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。  
  于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。  
  这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。  
  后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。Unix 系统里,每行结尾只有“<换行>”,即“/n”;Windows系统里面,每行结尾是“<换行><回车>”,即“/n/r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值