【android】【Bootanimation】Bootanimation---综述


     
BootAnimation者,开机动画也。而型有二,其一谓之android,如滚石游走,自左到右;再者谓之movie,实乃名不副实,盖可自数张图片顺序播放而得,只若movie也。其真容可见于frameworks/base/cmds/bootanimation下。
      Android模式,其实就是在系统开机的过程中,看到的闪动的ANDROID字样的动画,其本质是由两张图片叠加而来的。那两张图片放在./frameworks/base/core/res/assets/images 目录下,一张镂空的android图,一张发光效果,动画效果就是下面那张发光的效果图不断左右移动。
      而以movie模式来看,主要是通过如下三个路径是否存在文件判断来实现:
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
      关于两种模式的切换,可以参考如下代码的实现:

BootAnimation::readyToRun()

进入一个if判断语句

?
1
2
3
4
5
6
7
8
9
10
11
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()

?
1
2
3
4
5
if (mAndroidAnimation) {
  r = Android(); / / 执行android字体闪动的图片
  } else {
  r = movie(); / / 执行bootanimation. zip 中提供的动画图片
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值