的权限问题
android 关机动画
2011-12-08 15:29:10|分类: Android |标签: |字号大中小订阅
关机动画和开机动画功能是大体一致的,只是播放的动画不一样而已。
既然关机动画和开机动画如此相似,所以,先了解一下开机动画的流程是怎样的。
一.开机动画的图片存放位置:
1.默认位置
/development/data/etc/bootanimation.zip
2.不同的项目存放的位置
/device/qcom/项目名称/bootanimation.zip
二.开机动画的服务
1.文件位置
/system/core/rootdir/init.rc
该文件定义了许多的服务,其中就定义了开机动画的服务,代码如下:
servicebootanim /system/bin/bootanimation
user graphics
group graphics
disabled
oneshot
以上代码我所理解的含义是这样了,这是个服务。解析之后,会生成一个 bootanimation 的
shell 命令,以后通过 adb shell 进入系统,执行 bootanimation 命令之后会启动该服务。至于
字符串 bootanim,它是唯一标识,用来表示该 shell 命令。
三.播放动画
1.文件位置
/frameworks/base/cmds/bootanimation/BootAnimation.cpp
/frameworks/base/cmds/bootanimation/BootAnimation.h头文件
/frameworks/base/cmds/bootanimation/bootanimation_main.cpp入口文件
BootAnimation.cpp 主要用来读取 bootanimation.zip 文件,然后播放动画。函数 readToRun
用来读取动画文件,如下代码:
status_t err = mZip.open("/data/local/bootanimation.zip");
if (err != NO_ERROR) {
err = mZip.open("/system/media/bootanimation.zip");
if (err != NO_ERROR) {
mAndroidAnimation = true;
}
}
以上便是开机动画的主要文件,那么,我们该如何实现关机动画呢?
显然,开机动画和关机动画只是读取的动画文件不同而已,那么,在 BootAnimation.cpp 的
函数 readToRun 中读取动画文件时,需要加入一个标志来判断,如果是开机,则读取开机
动 画 , 如 果 是 关 机 , 则 读 取 关 机 动 画 。 因 此 , 我 们 我 们 加 入 一 个 bool 类 型 变 量