Android关机闹钟启动流程Android原生是不支持关机闹钟的,所以需要各个不同的平台厂商自己实现关机闹钟,下面以展讯平台8830平台为例分析
展讯平台的开机状态下闹钟和关机闹钟分属两个不同的模块,代码位置:开机闹钟:packages/apps/DeskClock关机闹钟:device/sprd/common/apps/alarm关机闹钟关机闹钟涉及的重要文件是alarm
c文件,关机闹钟的启动是从alarm
c的main方法开始的
当用户设置并启动一个闹钟时,会调用Alarms
javaalarm_flag_setup(Contextcontext,finallongalarmTimeInMillis,Alarmalarm)方法该方法主要作用:取出/sys/class/rtc/rtc0/default_time值,这个值是系统的初始时间,然后计算当前时间与此时间的差值然后存储到/productinfo/alarm_flag文件中,alarm_flag然后依次存储闹钟时间,闹钟响铃时间,闹钟贪睡时间,系统的时间格式(12小时还是24小时制)
当用户关机后闹钟时间到,会调用到alarm
c的main方法
bootmode判断是否闹钟启动模式,是则执行下一步,否则退出2
alarm_init():闹钟信息初始化(1)get_time_dm();读取文件,取出并赋予给相应变量(2)add_alarm_db_list():查询/data/data/com
android
deskclock/databases/alarms
db数据库,将闹钟信息存放到structalarm_db*p=g_alarm_db_list;(3)creat_alarm_sec_list():取出(2)中的g_alarm_db_list数据链表,while循环遍历状态为ena