- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android开关机动画/铃音是如何播放的?
1.?开关机动画的启动
Android系统在init.rc中定义了很多Servic,具体定义格式可以参考《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.服务名“属性中?。客户端应用程序可以轮询那个属性值,以确定结果。
service bootanim /system/bin/bootanimation
????user graphics
????group graphics
????disabled
oneshot
//定义了一个bootanim的服务,对应执行/system/bin/bootanimation
//disabled?表示init进程创建只是创建它,但不立刻执行
//oneshot?表示该服务只执行一次
当android系统boot时,开始加载动画和开机铃声,其代码位于
//源文件SurfaceFlinger.cpp
status_t SurfaceFlinger::readyToRun()
{
// start boot animation service
property_set(ctl.start, bootanim);//
}
?
当Android完成boot后,关闭动画和开机铃声,代码位于
//源文件SurfaceFlinger.cpp
void SurfaceFlinger::bootFinished()
{
//stop bootanim service
property_set(ctl.stop, bootanim);
}
在Android系统中,长按Power键默认会弹出对话框让你选择“飞行模式”,“静音”,“关机”等功能。
选择”关机“,弹出“设备将要关机”选择对话框。如果可以选择“是”关机,和“否”返回系统。
从代码中我们可以看出,如果选择上述对话框的“关机”选项之后,将会调用ShutdownThread.java的shutdown方法来关机。shutdown方法的第二个参数标识是否弹出询问对话框。
?ShutdownThread代码位于
frameworks/base/core/java/com/android/internal/app/ShutdownThread.java
shutdown方法中有如下代码
public static void shutdown(final Context context, boolean confirm)
{
….
beginShutdownSequence(context);
….
}
beginShutdownSequence(context)-》startBootAnimation():
private static void startBootAnimation()
{
if (bPlayaudio) {
SystemProperties.set(ctl.start,bootanim:shut mp3);
Log.d(TAG, bootanim:shut mp3 );
} else {
SystemProperties.set(ctl.start,bootanim:shut nomp3);
Log.d(TAG, bootanim:shut nomp3 );
}
}
从上述分析可知,开关机动画的启动/停止都会设置ctl.start bootanim property来,最终通过bootanimation service来实现的。
这样就转入 bootanimation这个service来真正处理开关机动画和铃声。
注:可以用setprop ctl.start bootanim:shut 命令动态启动bootanimation service
2. bootanimation service详解
bootanimation service 的代码所在
您可能关注的文档
- 《C语言程序设计教程》课件--函数.ppt
- 1-TPM原理介绍-科普.ppt
- 3D-MAX快捷键大全.doc
- 3DsMAX中英文对照表-全.doc
- 3-TPM核心功能.ppt
- ADAMS函数学习.ppt
- Android-贪吃蛇源码分析.doc
- android学习笔记.docx
- Android应用开发入门.doc
- Cmd+DOS命令大全.docx
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)