1.开关机动画的启动
Android系统在init.rc中定义了很多Service,具体定义格式可以参考《Android Platform Developer’s Guide》中的“Android Init Language”。init.rc中定义的Service将会被init进程创建,其中已经定义的服务就包含了开机动画.
每一项服务必须在/init.rc中定义Android系统启动时,init守护进程将解析init.rc和启动属性服务,属性“ctl.start”和“ctl.stop”是用来启动和停止服务的。一旦收到设置“ctrl.start”属性的请求,属性服务将使用该属性值作为服务名找到该服务,启动该服务。这项服务的启动结果将会放入“ init.svc.<服务名>“属性中。客户端应用程序可以轮询那个属性值,以确定结果。
当android系统boot时,开始加载动画和开机铃声,其代码位于
//源文件SurfaceFlinger.cpp
当Android完成boot后,关闭动画和开机铃声,代码位于
//源文件SurfaceFlinger.cpp
在Android系统中,长按Power键默认会弹出对话框让你选择“飞行模式”,“静音”,“关机”等功能。
选择”关机“,弹出“设备将要关机”选择对话框。可以选择“是”关机,和“否”返回系统。
从代码中我们可以看出,如果选择上述对话框的“关机”选项之后,将会调用ShutdownThread.java的shutdown方法来关机。shutdown方法的第二个参数标识是否弹出询问对话框。
ShutdownThread代码位于
frameworks/base/core/java/com/android/internal/app/ShutdownThread.java
shutdown方法中有如下代码
从上述分析可知,开关机动画的启动/停止都会设置ctl.start bootanim property来,最终通过bootanimation service来实现的。
这样就转入 bootanimation这个service来真正处理开关机动画和铃声。
注:可以用setprop ctl.startbootanim:shut 命令动态启动bootanimation service
2. bootanimationservice详解
bootanimationservice 的代码所在位置:/frameworks/base/cmds/bootanimation, 主要有两个文件:
bootanimation_main.cpp
bootAnimation.cpp
bootanimation_main.cpp是主入口文件:
其主要的功能是根据传进来的参数决定是是要播放开机还是关机动画/铃音,并且启动BootAnimation:
BootAnimation.cpp集成自Thread,在创建时会调用readyToRun()->threadLoop():
readyToRun()方法判断/system/media/bootanimation.zip(shutanimaion.zip)是否存在,如果存在,则将 mAndroidAnimation 设置false,这个变量决定threadLoop中调用android()还是movie()来具体实现动画的播放。
threadLoop首先判断system/media/bootaudio.mp3(shutaudio.mp3)文件是否存在,如果存在则调用mediaplayer的接口播放(setdatasoruce,prepare,setvolume,start)。
然后根据 mAndroidAnimation 变量调用android()/movie(). 如果system/media/shutanimation.zip/bootanimation.zip存在的话,调用movie(),该接口会解析zip文件中的desc.txt文件,根据txt文件中的配置来播放动画。
分享到:
相关推荐
首先,开机动画的地址:system\media\bootanimation.zip。。。要修改开机动画就是修改bootanimation这个文件。如果说你的手机里没有这个文件,那就是说明你用的是官方原始版本的rom开机动画没有被修改过,但这不碍事...
Android开机动画修改,其中还提到了 1、desc.txt文件详解 2、bootanimation.zip is compressed; must be only stored报错的解决方法 3、播放开机动画的核心代码
Android 开机动画启动过程详解, 方便定制自己的开机动画
里面包含自己收集的android开机动画包bootanimation,以及自己用图片制作的bootanimation
Android系统定制,开机LOGO修改方案,开机动画修改方案,附件带有开发笔记,基于Android 5.1,高通平台msm8909定制。
修改开机画面及开机动画说明,以及开机动画包,按照说明步骤,即可修改android开机画面和动画。
Android开机动画源码,控制动画图片的显示和开机音乐的播放。
Android 开机动画,bootanimation.zip
修改Android开机动画、声音的资源
Android S MTK平台开机Logo与开机动画的资源文件。
卡罗拉双擎安卓导航开机动画bootanimation.zip,分辨率1280x720 卡罗拉双擎安卓导航开机动画bootanimation.zip,分辨率1280x720 卡罗拉双擎安卓导航开机动画bootanimation.zip,分辨率1280x720 卡罗拉双擎安卓...
android开机动画包制作工具,说明请看我的博客
卡罗拉安卓导航开机动画bootanimation.zip,分辨率1280x720 卡罗拉安卓导航开机动画bootanimation.zip,分辨率1280x720 卡罗拉安卓导航开机动画bootanimation.zip,分辨率1280x720 卡罗拉安卓导航开机动画...
系统通常默认支持开机动画,开机关机铃声服务倒是预先定义了,不过使用时需要在/sysytem/media/下添加相应的音频文件。长按Power键 弹出关键选项,关机时也只是显示进度条,而不是我们期望的关机动画同时伴有关机...
android4.1.2中开机动画的代码实现,对应博客为: http://blog.csdn.net/zjc08125/article/details/8842153
android字样的开机动画,主要用于客户需要的中性动画,和系统自带的android字样是一样的
NULL 博文链接:https://justsee.iteye.com/blog/1058301
android 开机动画sample 包, 可以在这个文件的基础上进行更改
把文件放在设备\system\media\根目录下,必须通过R\W 挂载
修改Android开机画面.doc 修改Android开机画面.doc