- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android 4.0 Alarm机制浅析
Android 4.0 Alarm 机制浅析
Author: VIC.LUO@CELLON.COM
最近在做关于Alarm 的一些东西,所以就把Android 平台上的alarm 的源代码给稍微看了
看。我个人其实基本不写文档的,而且即使写,也不过区区数字,这个应该是我工作4 年
来的第二篇文档(第一篇是写的和我一直以来工作相关的Messaging)所以内容上和排版
上大家就不要见怪。
Android 系统中alarm 机制最大的体现着就是闹钟这个app 了。通过这个应用我们可以设
置自己的各种定时闹钟,当然系统中的各种定时相关功能的实现也基本全部依赖Alarm 机
制。
闹钟的代码在 packages\apps\ DeskClock\src\com\android\deskclock 目录下,可以自行查看,
这里主要说的是Alarm 机制。
Alarm 机制实现的代码主要在
./frameworks/base/core/java/android/app/AlarmManager.java
./frameworks/base/services/java/com/android/server/AlarmManagerService.java
./frameworks/base/services/jni/com_android_server_AlarmManagerService.cpp
再往下就是驱动和kernel 的代码,个人对驱动和kernel 的代码不了解,就不说了。
AlarmManager 是framework 中提供给用户来使用的API ,其实现在AlarmManagerService ,
为一个server,通过binder 机制来提供服务,开机便注册到system_server 进程中 (所有
server 实现基本都如此)代码如下(systemserver.java )
alarm = new AlarmManagerService(context);
ServiceManager.addService(Context.ALARM_SERVICE, alarm);
下面就来介绍一下AlarmManagerService ,本来想用ams 代替,不过一般情况下ams 指的
是ActivityManagerService,所以也就罢了。
AlarmManagerService 的初始化:
1. mDescriptor = init(); 打开设备驱动,其jni 实现为
(com_android_server_AlarmManagerService.cpp )
static jint android_server_AlarmManagerService_init(JNIEnv* env, jobject obj)
{
return open(/dev/alarm, O_RDWR);
}
2. 设置时区
String tz = SystemProperties.get(TIMEZONE_PROPERTY);
if (tz != null) {
setTimeZone(tz);
}
3. mTimeTickSender 这个pendingintent 的作用应该是系统中经常用到的,它是用来
给发送一个时间改变的broadcast,Intent.ACTION_TIME_TICK,每整数分钟的开始
发送一次,就是每分钟的开始就发送,应用可以注册对应的receiver 来干各种事,
譬如更新时间显示等等,具体怎么触发的稍后再说。
mDateChangeSender 这个pendingintent 的作用是啥?代码中时这样写的
Intent.ACTION_DATE_CHANGED,其实和mTimeTickSender 差不多,只是它是每天
的开始发送一次,应该就是00:00:00 发送吧
这2 个pendingintent 和ClockReceiver 有莫大的关系,ClockReceiver 的构造函数如
下
您可能关注的文档
- TMS320C672x系列浮点DSP的EMIF研究与应用_张西峰.pdf
- _HDMI、DVI、VGA、RGB、分量、S端子、USB接口_介绍.pdf
- xaut_第2章_MCS-51结构和原理.pdf
- 条码扫描器与单片机的接口设计.pdf
- 电铁牵引变电站无功补偿及滤波微机监控系统(Ⅰ)——工作原理及硬件设计.pdf
- Z16C32SL中文资料(zilog)中文数据手册「EasyDatasheet - 矽搜」.pdf
- 本科单片微型计算机原理及应用第4章.pdf
- 计算机组成原理实验讲义_2012版.pdf
- 湖南工程学院 单片机考试试卷.pdf
- FN_HONDA2013 接口合安装使用说明_v20130901.pdf
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
最近下载
- 党课讲稿:坚持以人民为中心的发展思想.doc VIP
- 幼儿园 中班数学《排排队—高矮长短排序》.pptx VIP
- (高清版)B-T 7025.1-2023 电梯主参数及轿厢、井道、机房的型式与尺寸 第1部分Ⅰ、Ⅱ、Ⅲ、Ⅵ类电梯.pdf VIP
- 房屋租赁合同--2.doc VIP
- 2023星闪无线短距通信技术(SparkLink1.0)产业化推进白皮书.docx
- 大学生就业教育主题班会.pptx
- 2023届合肥高三二模作文“言与行”导写及范文.docx
- 《网络信息辨真假》(共12张PPT).pptx VIP
- 党纪学习教育六大纪律研讨发言提纲.docx VIP
- 湘少版小学英语修订教材解读.pptx VIP
文档评论(0)