一种基于智能手机时钟机制的批处理唤醒低功耗方法与流程

文档序号:12270464阅读:256来源:国知局
一种基于智能手机时钟机制的批处理唤醒低功耗方法与流程

本发明涉及一种基于智能手机时钟机制的批处理唤醒低功耗方法,属于移动计算和移动终端研发领域。



背景技术:

随着嵌入式设备、无线传感网络、移动计算等快速发展,集成感知、计算和通信能力的普适智能系统被广泛部署,并逐步融入到人类的日常生活环境。其中最为显著的是,智能手机的普及,全球智能手机市场已经达到了一个新的里程碑,截至2014年为止,出货高达数十亿,将近63%的人都拥有一部或多部智能手机(“Worldwide smartphone shipments top one billion units,”http://www.idc.com/getdoc.jsp?containerId=prUS24645514.)。

然而智能手机的电池续航能力却没有出现突破性进展。现有的智能手机大多采用锂电池供电,例如3000mAh的锂电池往往只能支持智能手机续航20小时左右。并且,随着用户使用智能手机的时间增加,应用程序会越来越多的安装在智能手机上。数十个应用程序运行在智能手机上,应用程序往往采用多线程运行。在智能手机的实际使用中,往往出现数十个应用程序休眠,多个应用程序唤醒,多个线程运行的情况。根据唤醒机制设置,智能手机单位时间内消耗不同程度的电量。

现有的智能手机的唤醒机制往往都由操作系统来负责,其中以iPhone为代表的iOS,控制所有应用程序,前台线程和后台线程的唤醒时钟,以精确的时钟消息为依据,唤醒相应的部分。以Android为代表的智能手机操作系统,则在应用层面,采用统一的时钟管理单元进行时钟消息来唤醒相应的程序。Android系统为了节省单位时间的电量损耗,则采用了模糊的时钟消息为依据。但是当前这些主流的智能手机对时钟唤醒机制的优化较差,在整个时钟唤醒的流程上还需要优化,以在一定程度上增加手机续航时间。



技术实现要素:

针对已有工作的不足,本发明提出了一种基于智能手机时钟机制的批处理唤醒低功耗方法。本发明中,每一个应用程序将时钟消息发送给消息管理单元,消息管理单元根据时钟消息的时间戳进行排序,得到一时钟消息队列,并批处理式的唤醒多个应用程序或者多个应用程序线程。

本发明的技术方案为:

一种基于智能手机时钟机制的批处理唤醒低功耗方法,其步骤为:

1)智能手机的应用程序将时钟消息发送给消息管理单元;其中,该时钟消息包括应用程序信息和唤醒时间戳;

2)该消息管理单元根据时钟消息中的唤醒时间戳和进程号pid,对每一个进程设置一唤醒时间戳序列其中,tni为第i个进程pidi中第n个时钟消息的唤醒时间戳;然后对各应用程序的时间戳序列T={pid1,pid2,...,pidm}进行排序,得到一时钟队列Q;

3)该时钟管理单元根据消息队列,在时钟队列Q里取前k个唤醒时间戳对应的时钟消息,然后计算该k个时钟消息的唤醒时间戳差值平均值tavg;如果tavg小于阈值τ,则在该智能手机的系统时间经过tavg后,该时钟管理单元将该k个时钟消息一起发送到应用程序,唤醒其进程;如果tavg大于或等于设定阈值τ,那么时钟管理单元,则依照智能手机默认的时钟管理算法进行处理。

进一步的,智能手机的应用程序将自己的唤醒时间封装在时钟消息里面传递给时钟管理单元;其中,该时钟消息包括应用程序信息、应用程序的进程号pid和唤醒时间戳。

进一步的,应用程序的时钟设置通过智能手机操作系统内置函数,AlarmManager.set()。

进一步的,应用程序信息包括应用程序名称标识、应用程序对应的进程号。

进一步的,步骤3)中,如果tavg大于或等于设定阈值τ,那么时钟管理单元依照智能手机默认的时钟管理算法进行处理。

进一步的,利用公式计算唤醒时间戳差值平均值tavg;其中,ti为该k个时钟消息中的第i个时钟消息的唤醒时间戳。

如图1所示,多个应用程序设置自己的唤醒时间,不同应用程序的唤醒方式都与开发者有关,没有统一的规定,并将这个唤醒时间信息通过时钟消息发送给时钟管理单元,应用程序的时钟设置通过智能手机操作系统内置函数,AlarmManager.set()。同时时钟管理单元根据多个应用程序设置的时钟唤醒的情况,批处理式的发送时钟唤醒消息给应用程序。当应用程序接收到唤醒消息时,无论当前应用程序的状态,都会通过智能手机操作系统内置函数BroadcastReceiver.onReceiver()唤醒应用程序。时钟管理单元处理时钟消息和唤醒消息如图2所示。时钟管理单元将接收到的时钟信息的时间戳提取出来,并进行排序,进入时钟序列,批处理式地发送唤醒消息。

本方法的基于智能手机时钟机制的批处理唤醒低功耗算法,其主要步骤(如图1和图2所示)包括:

1.时钟管理单元接受时钟消息,提取时钟消息的应用程序名称标识,应用程序对应的进程号和时间戳。

2.时钟管理单元,根据时间戳重新排序,进入时钟消息队列。

3.时钟管理单元根据消息队列,批处理式的发送唤醒消息到应用程序,唤醒其进程或线程。

上述步骤的具体实现方法为:

1.时钟管理单元接受时钟消息,提取时钟消息的应用程序信息,进程和时间戳。

智能手机的应用程序为了在某个时间点或者过了某段时间以后醒过来完成某项任务,通过AlarmManager.set()设置具体的唤醒时间,然后智能手机将这个唤醒时间和对应的应用程序信息(名称标识,进程号)封装在时钟消息里面传递给时钟管理单元。时钟管理单元,首先提取出这个时钟消息的应用程序消息(包括其进程号pid)和唤醒时间戳。

2.时钟管理单元,根据时钟消息的时间戳对时钟消息重新排序,进入时钟消息队列

在步骤1中,我们获得了所有应用程序所设置的唤醒时间戳,进程号pid。对于每一个进程而言,都有一个唤醒时间戳序列,如下:

其中全部的应用程序的时间戳序列可以表示为,如下:T={pid1,pid2,...,pidm}时钟管理单元对时间序列重新排序,进入队列时钟队列Q,如下:

Q=sort(T)

其中sort()为排序算法,tni为第i个进程中第n个时钟消息的唤醒时间戳。

3.时钟管理单元根据消息队列,批处理式的发送唤醒消息到应用程序,唤醒其进程在步骤2中,我们获得了新的时钟消息排序队列。时钟管理单元的批处理方式,在时钟队列里,每次取前k个唤醒时间戳对应的时钟消息,计算这些时钟消息的时间戳差值平均值:

其中tavg为前k个时钟消息的平均值。如果tavg小于阈值τ,那么这k个时钟消息,在智能手机系统时间经过tavg时,时钟管理单元将这个k个唤醒消息一起发送到相应的应用程序,唤醒其进程或线程。如果tavg大于或等于设定阈值τ,那么时钟管理单元,则依照智能手机原先默认的时钟管理算法进行。

与现有技术相比,本发明的积极效果为:

(1)传统的时钟唤醒方式中,各应用程序时钟唤醒相对独立,随着应用程序数目的增多能量消耗越大,本方法优化了时钟唤醒方式节省了能耗,并随着应用程序的增多节省的能耗越多;

(2)本方法在不增加应用程序的响应延迟时的前提保证能耗最低。

附图说明

图1为批处理唤醒过程:应用程序置唤醒时间和时钟管理单元唤醒应用程序;

图2为时钟管理单元进行时钟消息批处理过程图。

具体实施方式

一种基于智能手机时钟机制的批处理唤醒低功耗算法,下面我们描述具体的实现细节。

a)获取应用程序的时钟消息,记录其进程号pid;

b)在(a)后,对所有的时钟消息的时间戳进行排序,获得新队列Q;

c)在(b)后,选取新队列Q的前k个时钟消息,并计算其平均时间戳差值tavg

d)在(c)后,如果tavg小于预先设定的阈值,等到系统时间经过tavg时,将前k个时钟消息的唤醒时间一起发送给应用程序;

e)在(c)后,如果tavg大于等于预先设定的阈值,时钟管理单元按照系统原先默认的时钟唤醒算法运行。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1