Android bootanimation 制作过程

这个东西一直想研究,今天无意发现转过来看看

Android bootanimation制作过程:

android启动动画需要一个bootanimation.zip, bootanimation.zip 放在 /system/media 目录下。
 
bootanimation 格式:
bootanimation.zip 里面包含part1 part2文件夹 和 desc.txt
 
user1@user1-desktop:~/Downloads/boot/bootanimation$ tree
 .
 |-- desc.txt
 |-- part0
 |   |-- tianyi_00000.png
 |   |-- tianyi_00001.png
 |   |-- tianyi_00002.png
 |   |-- tianyi_00003.png
 |   |-- tianyi_00004.png
 |   |-- tianyi_00005.png
 |   |-- tianyi_00006.png
 |   |-- tianyi_00007.png
 |   |-- tianyi_00008.png
 |   |-- tianyi_00009.png
 |   |-- tianyi_00010.png
 |   |-- tianyi_00011.png
 |   |-- tianyi_00012.png
 |   |-- tianyi_00013.png
 |   |-- tianyi_00014.png
 |   |-- tianyi_00015.png
 |   |-- tianyi_00016.png
 |   |-- tianyi_00017.png
 |   |-- tianyi_00018.png
 |   |-- tianyi_00019.png
 |   |-- tianyi_00020.png
 |   |-- tianyi_00021.png
 |   |-- tianyi_00022.png
 |   |-- tianyi_00023.png
 |   |-- tianyi_00024.png
 |   |-- tianyi_00025.png
 |   |-- tianyi_00026.png
 |   `-- tianyi_00027.png
 `-- part1
     `-- tianyi_00028.png
 
part0, part1 文件夹里面放的是动画拆分的图片,格式为png .
 desc.txt里面是播放 的设置 .
 
desc.txt格式 :
 
user1@user1-desktop:~/Downloads/boot/bootanimation$ cat desc.txt
320 480 10
p 1 0 part0
 p 0 0 part1


320 480是指显示的分辨率 宽 高
10是一秒的帧数
p后面的数字是指播放次数 0为循环
后面那位数字 一般为0
 part0 为文件夹名

为什么要用两个文件夹呢? 一般 :
 part1是播放一遍的
 part2是循环播放直到开机

打包:
打包的时候一定不要压缩文件(压缩比为0)。
 
如果是在 linux下面,用下面的命令:
cd directory/that/contains/desc.txt/and/part0/part1/
 zip -r -X -Z store ../bootanimation part*/*.png desc.txt

 

Android系统开机动画包括两部分:
 
  开机显示的 ANDROID 文字;
 
  ANDROID发光动画。
 
  这篇文章说的开机动画是第一种,下面开始正文!
 
  1. 制作当前屏幕像素的图片(模拟器默认为320*480)
 
  使用PS制作一张320*480的图片,保存时选“保存为 Web 所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo.png
 
  注:好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。
 
  2. 将图片转换为raw格式
 
  使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:
 
  convert -depth 8 android_logo.png rgb:android_logo.raw
 
  注:ubuntu 10.04 默认已经安装ImgageMagick工具,如果当前系统没有安装,可以执行下面的命令安装:
 
  sudo apt-get install imagemagick
 
  3. 将raw格式转化为rle文件
 
  需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android 为当前源码所在目录),转换命令如下:
 
  rgb2565 -rle < android_logo.raw > initlogo.rle
 
  到目前为止,启动需要显示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改 android/system/core/init/init.h中的宏:
 
  #define INIT_IMAGE_FILE "/initlogo.rle"
 
   ============================================================================================
 
  下面需要将initlogo.rle加入的android文件系统中
 
  4. 找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),将文件名改为 ramdisk.img.gz,然后使用下面的命令解压:
 
  gunzip ramdisk.img.gz
 
  解压后得到ramdisk.img,可能有人要问,怎么文件名又改回去了?其实不然,使用file ramdisk.img查看一下就知道了:
 
  解压前:ramdisk.img: gzip compressed data, from Unix
 
  解压后:ramdisk.img: ASCII cpio archive (SVR4 with no CRC)
 
  跑题了,还是说正事儿。
 
  5. 使用cpio提取文件:
 
  新建一个temp目录:
 
  mkdir temp
 
  cd temp
 
  cpio -i -F ../ramdisk.img

  6. 导出文件列表:
 
  cpio -i -t -F ../ramdisk.img > list
 
  注:list是一个文本文件,里面存储了ramdisk.img的文件结构,我们需要在这个文件中加入initlogo.rle这一行,修改后 的文件如下:
 
  data
 
  default.prop
 
  dev
 
  init
 
  init.goldfish.rc
 
  init.rc
 
  initlogo.rle
 
  proc
 
  sbin
 
  sbin/adbd
 
  sys
 
  system
 
  7. 生成ramdisk.img
 
  cpio -o -H newc -O ramdisk.img < list
 
  注:根据list文件的描述,生成ramdisk.img文件
 
  8. 用ramdisk.img覆盖sdk目录下的ramdisk.img(android-sdk-windows/platforms/android- 2.1/images/ramdisk.img),最好先备份一下。
 
  9. 启动模拟器,就可以看到我们自己做的的开机界面了。

原作地址:http://blog.csdn.net/sunrock/archive/2011/03/18/6259068.aspx

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值