1.android开机动画显示原理

开机时,系统自动检测在/system/media/目录或/data/local/目录有没有bootanimation.zip文件。如果有,这按照bootanimation.zip里面的png排列顺序依次显示开机图片,开起来就是动画效果;否则按照android默认的方式显示开机动画。

android开机动画叫源码位于frameworks/base/cmds/bootanimation下,这个程序编译后生成/syetem/bin/bootanimation,将/data/local/bootanimation.zip/system/media/bootanimation.zip里面的png图片以动画的形式播放出来。

在每个方案目录下的init.rc文件中,指定了bootanimation的执行:

servicebootanim/system/bin/bootanimation

加载开机动画和音乐的源码在:

frameworks/base/cmds/bootanimation/BootAnimation.cpp

首先看一下定义的常量:

#defineUSER_BOOTANIMATION_FILE"/data/local/bootanimation.zip"

#defineSYSTEM_BOOTANIMATION_FILE"/system/media/bootanimation.zip"

#defineSYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"

BootAnimation::readyToRun()准备工作:

进入一个if判断语句

if((encryptedAnimation&&

(access(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE,R_OK)==0)&&

(mZip.open(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE)==NO_ERROR)) ||((access(USER_BOOTANIMATION_FILE,R_OK)==0)&&

(mZip.open(USER_BOOTANIMATION_FILE)==NO_ERROR))||

((access(SYSTEM_BOOTANIMATION_FILE,R_OK)==0)&&

(mZip.open(SYSTEM_BOOTANIMATION_FILE)==NO_ERROR))){

mAndroidAnimation=false;

}

BootAnimation::threadLoop()执行动画:

if(mAndroidAnimation){

r=Android();//执行android字体闪动的图片

}else{

r=movie();//执行bootanimation.zip中提供的动画图片

}

BootAnimation::Android()会加载"images/android-logo-mask.png""images/android-logo-shine.png"。而BootAnimation::movie()会加载bootanimation.zip中的内容

另外,开机音乐路径的加载在bootanimation_main.cpp中指定:

boot->playBootMusic("/system/media/boot.wav")

2.修改开机动画

知道原理之后,就可以直接自定义开机画面,开机动画和音乐资源放在android\device\softwinner\wing-XXXXX\media中,编译之后会放在/system/media/目录中。

动画文件bootanimation.zip文件由下面几个文件目录组成:

desc.txt动画属性描述文件;

part0第一阶段动画图片的目录(动画是由一帧帧图片组成的);

part1第二阶段动画图片的目录;

...

Partn

一般来说就两个文件夹part0part1,两个文件夹里面放着编号号的png图片。

desc.txt文件内容格式如下:

3204805

p10part0

p00part1

其中,320为图片的宽,480为图片的高,后面的那个5表示帧数,即每秒播放的图片张数。

p为描述符,后面的1表示播放一次,后面的0表示阶段切换时间,part0表示png资源路径。

p为描述符,后面的0表示本阶段无限循环(直到开机结束),再后面的0表示本阶段切换时间,part1表示路径。

开机logo的路径:lichee\tools\pack\chips\sun9iw1p1\boot-resource\boot-resource\bootlog0.bmp

\boot-resource\boot-resource\bat\bootlog0.bmp

图片和desc.txt文档都准备好后,开始打包为bootanimation.zip。选中图片文件夹part0desc.txt(提醒一下:打包前将图片文件夹中的Thumbs.db删除),然后右键选择WINRAR"添加到压缩文件"进入自定义压缩文件设置:压缩文件格式选择:ZIP,压缩方式选择:存储,然后点击确定即可。


更多相关文章

  1. android编译系统的makefile文件Android.mk写法
  2. android文件系统挂载分析
  3. Android技术积累:图片异步加载
  4. Android基于多触控的图片缩放和拖动代码实现
  5. Android的图片上传
  6. Android 平台上拍照/录像,图片/视频选择,编辑和压缩的一站式解决方
  7. Android 自定义文件路径选择器
  8. Android 动画实现原理

随机推荐

  1. android 界面布局 很好的一篇总结 【转】
  2. android 权限大全
  3. Mac系统下Android(安卓)SDK更新以及ADT无
  4. 解决Android(安卓)studio升级到3.5的一些
  5. Android中使用Movie显示gif动态图
  6. linux ,Android基础知识总结
  7. Android设备管理器漏洞
  8. android闪屏的制作
  9. 给android新手的10条建议
  10. Android(安卓)View绘制过程以及事件传递