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. 启动模拟器,就可以看到我们自己做的的开机界面了。

更多相关文章

  1. 一个让你掌握Android所有控件的Demo
  2. Android中读写文件
  3. Android资源文件夹及资源文件的详细介绍
  4. Android+Jquery Mobile学习系列(1)-开发环境
  5. Android中集成第三方库的方法和问题
  6. 【原创】APK反破解之二:Android(安卓)APK 签名比对
  7. [置顶] Android应用程序签名
  8. Android核心分析---Android电话系统
  9. NPM 和webpack 的基础使用

随机推荐

  1. 必须在调用加载前设置广告尺寸和广告单元
  2. Android 菜单动态变化【添加或去除】
  3. android中保存一个ArrayList到SharedPref
  4. 如何禁用主页键
  5. 2012第19周移动应用动态
  6. android 获取正在运行的应用程序列表
  7. LinearLayout分隔符未显示[重复]
  8. Android UI(二)DridView的菜单
  9. Android开发入门之为应用添加多个Activit
  10. Android实现一键复制粘贴,兼容低版本系统(a