当前位置: 首页 > 专利查询>北京大学专利>正文

基于重构技术实现多应用网络请求能耗优化的方法技术

技术编号:13005743 阅读:140 留言:0更新日期:2016-03-10 17:26
本发明专利技术涉及一种基于重构技术实现多应用网络请求能耗优化的方法。该方法在修改并重构移动应用的二进制字节码,替换其使用的网络操作相关的应用编程接口(API),从而对原有网络操作进行调度,使重构后的应用能合并发送网络请求,达到节省手机电量的目的。该方法对现有移动应用进行程序化分析,找出与网络操作相关的计算逻辑,并进行相应的重构,最后重新生成网络请求可被调度的应用。本发明专利技术有助于提高手机的续航,尤其对于后台应用较多,在省电的同时又希望后台推送正常的用户具有十分重要的意义。

【技术实现步骤摘要】

本专利技术是一种利用程序分析与重构技术实现在现有移动应用中调度应用发起的网络请求,从而实现网络请求合并调度,节省整体能耗的方法,属于软件
,适用于软件维护。
技术介绍
随着智能手机的发展,移动应用越来越依赖云端提供的硬件、软件资源,以提供更好的服务。然而,在利用到云端资源的同时,移动应用需要消耗大量的电量以通过网络与云端通信。特别在3G/4G环境下,一些应用(如新闻、天气、邮件等应用)在后台长时间间隔地利用网络获取相应的相应的推送消息。这种长时间间隔式的消息推送给电池容量有限的智能手机的续航带来了巨大的挑战。针对运行在后台的应用在网络上的能耗,出现了各种基于防火墙技术的管理后台网络请求的应用。用户通过相应的权限设置,允许或禁止一个应用发送网络请求。然而,这类粗粒度的解决方案,一旦设置禁止一个应用的后台请求,会导致这个应用程序逻辑异常,进而导致相应的推送功能失效。因此,需要一种既能保证应用网络请求发送,又能节省网络能耗开销的方法。它可以在不需要移动应用开发人员进行二次开发的情况下,使现有的移动应用以一种更加节能的方式使用网络资源,降低网络能耗。
技术实现思路
本专利技术的目的是节省智能手机在网络方面的能耗。其核心思想是由用户指定终端中的部分应用为网络请求可调度应用。通过对这些网络请求可调度应用的程序分析和重构,使这些应用发起的网络请求具备被调度的能力,即被延迟发送。本方法通过调度并合并多应用间的网络请求,实现节省智能手机在网络方面的能耗;通过只延迟部分网络请求,而非禁止发送网络请求,保证应用功能的正常使用。具体来说,本专利技术采用的技术方案如下:一种,其步骤包括:1)对移动应用进行程序化分析,找出与网络操作相关的计算逻辑,并进行相应的重构,将移动应用中调用网络相关的API替换为可被调度的网络相关API ;2)移动应用调用重构后的API,使发送的网络请求被延迟调度,并对一段时间内的网络请求进行合并发送。进一步地,步骤1)所述重构的过程包括:a)利用关键字匹配,找出所有和网络操作相关的类;b)重构网络相关的AP1:为保证所有网络相关操作均被替换为可调度的网络相关操作,通过插粧所有网络相关操作,将网络相关操作所需的上下文进行封装,传递进对应的调度函数,由调度器进行调度;如果网络操作有返回值,则由调度函数返回。进一步地,步骤a)首先构建一个现有框架层网络相关操作的关键字库,再根据这个关键字库找出在应用中所有用到了网络相关API的类。进一步地,步骤b)中,网络请求建立的链路的类型分为短链接和长链接,短链接即每次请求重新建立手机至云端的链路,长链接则是建立起手机与云端的链路后,多次复用这个链接;所述调度器针对网络请求的不同类型进行处理,以避免出现大量网络延迟的情况。进一步地,步骤2)对网络请求进行调度和合并的机制包括调度算法抽象,即将调度算法抽象为包含sleep和wakeup两个原语的一段代码,sleep原语表示对执行本次网络操作进行延迟,wakeup原语表示可以发送网络请求,该wakeup原语会唤醒处于延迟中的网络操作。进一步地,步骤2)对网络请求进行调度和合并的机制还包括多应用间通讯机制,即wakeup原语不仅需要在多线程间进行通讯,还需要在多进程间进行通讯,以实现多应用间的调度器相互配合,完成多应用的网络请求调度功能。本专利技术提出了一种既能保证应用网络请求发送,又能节省网络能耗开销的方法。它可以在不需要移动应用开发人员进行二次开发的情况下,使现有的移动应用以一种更加节能的方式使用网络资源,降低网络能耗。本方法在保证后台应用功能性正常的情况下,根据用户提供的应用可接受推送最大延迟的配置,调度应用的网络请求。在时间维度上聚合这些网络请求,以节省更多的电量。【附图说明】图1是重构前后应用的网络请求发送流程变化示意图,其中(a)为原始网络请求控制流,(b)为重构后网络请求控制流。图2是重构及调度器的实现代码示意图,其中(a)为短链接重构示例,(b)为调度器中的sleep和wakeUp原语。图3是sleep和wakeUp原语实例的流程图,其中(a)为sleep原语实例的流程图,(b)为wakeUp原语实例的流程图。【具体实施方式】为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本专利技术做进一步说明。本专利技术提供一种利用程序分析与重构技术实现多应用间网络请求合并发送的方法。其核心思想是修改并重构移动应用的二进制字节码,替换其使用的网络操作相关的应用编程接口(API),从而对原有网络操作进行调度,使重构后的应用能合并发送网络请求,达到节省手机电量的目的。本方法首先对现有移动应用进行程序化分析,找出与网络操作相关的计算逻辑,并进行相应的重构,最后重新生成网络请求可被调度的应用。本专利技术有助于提高手机的续航能力,尤其对于后台应用较多,在省电的同时又希望后台推送正常的用户具有十分重要的意义。本专利技术包含两部分内容:1、实现多应用网络请求能耗优化的应用重构方法;2、网络请求合并机制。具体技术方案如下:(1)实现多应用网络请求能耗优化的应用重构方法现有的移动应用往往利用框架层提供的应用编程接口(Applicat1n ProgramInterface, API)发送网络请求。本方法利用程序分析和重构,将原应用中调用网络相关的API替换为可被调度的网络相关API。当应用调用了新的API时,该应用发送的网络请求就会被延迟调度,进而实现一段时间内的网络请求合并发送。重构前后,应用的网络请求发送流程变化如图1所示。以天气和邮件应用为例,不论是天气消息还是邮件消息,都是以一定的时间间隔去发送网络请求。重构前,每次网络请求都会立即发送,即立即唤醒3G/4G网络模块,网络请求发送完成后,3G/4G模块还会持续消耗电量数十秒钟,再进入休眠状态。由于两个应用网络请求缺少调度和合并机制,导致多次唤醒3G/4G网络模块,额外消耗了手机电量。重构后,每次网络请求会根据用户的设置延迟数秒种至数分钟不等,在被延迟的这段时间里,如果有其他的网络请求,那么这些网络请求就会被合并,即在同一时刻被发送。这样3G/4G模块仅被唤醒一次,节省了手机的电量。为了调度运行时多应用发送的网络请求,具体的重构过程包含两个步骤:(a)利用关键字匹配,找出所有和网络操作相关的类应用利用现有的框架层提供的网络相关API发送各种网络请求。为使应用的网络请求可以被调度,本方法首先构建一个现有框架层网络相关操作的关键字库,再根据这个关键字库找出在应用中所有用到了网络相关API的类。最后对这些类进以下重构当前第1页1 2 本文档来自技高网...

【技术保护点】
一种基于重构技术实现多应用网络请求能耗优化的方法,其步骤包括:1)对移动应用进行程序化分析,找出与网络操作相关的计算逻辑,并进行相应的重构,将移动应用中调用网络相关的API替换为可被调度的网络相关API;2)移动应用调用重构后的API,使发送的网络请求被延迟调度,并对一段时间内的网络请求进行合并发送。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄罡张颖梅宏蔡华谦
申请(专利权)人:北京大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1