How tough life is, how strong you should be!
分类: LINUX
2012-10-15 18:13:19
相关的代码分析还是看老罗的android之旅博客,写的很好,下面是自己动手换掉我的手机的开机logo
我的手机是htc g6,屏幕分辨率是320*480
在任何一个ANDROID的手机或其他设备中,都有这个文件:
/system/media/bootanimation.zip
这个就是ANDROID系统开机动画文件
把他pull出来到你的硬盘
解压这个文件,可以看到它内部的文件结构:
这里的ANDROID文件件一般名称是part0文件夹
下面是每一个文件夹的内容:
/android:
/part0:
/desc.txt
480 854是指前面文件夹里png的分辨率,24是指每秒播放帧数(这个收到机器的影响,一般开机CPU满负荷运行,开始的一段时间播放帧数会低于设定帧数,所以前一段的动画的设计需要考虑到这一点)
p是标识符,1 0两个数字分别指循环次数和阶段间隔时间,android就是文件夹的名字
文件夹的名字各异,左童鞋一般设计为这样的结构:
第一个文件夹:展示画面,只播放一次,播放一次 的时间需要小于系统原本开机的时间,否则会拖慢开机速度(播放完才进系统);
第二个文件夹:循环画面,播放无限次,随时可以推出播放,也就是只要开机加载完毕就可以直接跳到系统。
生成bootanimation.zip
注意此处是直接打包这几个文件,而不是在上级目录打包!!!
确定就ok了~
在ubuntu
zip -Z store bootanimation.zip part0/*PNG part1/*PNG desc.txt
OR
zip -0 bootanimation.zip part0/*PNG part1/*PNG desc.txt
adb push bootanimation.zip /system/media/
ps:替换的时候不要忘记该权限~
开机动图是默认放在android/frameworks/base/core/res/assets/images下的
要自己加动图的话,可以放在以下路径之一:/data/local/bootanimation.zip
/system/media/bootanimation.zip
(1)adb shell后,可以直接运行“bootanimation”来重新看开机动画,它会一直处于动画状态,而不会停止。
(2)adb shell后,命令“setprop ctl.start bootanim”执行开机动画;命令“getprop ctl.start bootanim”停止开机动画。这两句命令分别对应SurfaceFlinger.cpp的两句语句:property_set("ctl.start", "bootanim");和property_set("ctl.stop", "bootanim");
下面是我的制作材料,网上下的
将分辨率改成自己的,就好了