CN105391872A - 基于重构技术实现多应用网络请求能耗优化的方法 - Google Patents
基于重构技术实现多应用网络请求能耗优化的方法 Download PDFInfo
- Publication number
- CN105391872A CN105391872A CN201510671685.7A CN201510671685A CN105391872A CN 105391872 A CN105391872 A CN 105391872A CN 201510671685 A CN201510671685 A CN 201510671685A CN 105391872 A CN105391872 A CN 105391872A
- Authority
- CN
- China
- Prior art keywords
- network
- request
- network request
- wakeup
- api
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/725—Cordless telephones
- H04M1/73—Battery saving arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0251—Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
- H04W52/0258—Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity controlling an operation mode according to history or models of usage information, e.g. activity schedule or time of day
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本发明涉及一种基于重构技术实现多应用网络请求能耗优化的方法。该方法在修改并重构移动应用的二进制字节码,替换其使用的网络操作相关的应用编程接口(API),从而对原有网络操作进行调度,使重构后的应用能合并发送网络请求,达到节省手机电量的目的。该方法对现有移动应用进行程序化分析,找出与网络操作相关的计算逻辑,并进行相应的重构,最后重新生成网络请求可被调度的应用。本发明有助于提高手机的续航,尤其对于后台应用较多,在省电的同时又希望后台推送正常的用户具有十分重要的意义。
Description
技术领域
本发明是一种利用程序分析与重构技术实现在现有移动应用中调度应用发起的网络请求,从而实现网络请求合并调度,节省整体能耗的方法,属于软件技术领域,适用于软件维护。
背景技术
随着智能手机的发展,移动应用越来越依赖云端提供的硬件、软件资源,以提供更好的服务。然而,在利用到云端资源的同时,移动应用需要消耗大量的电量以通过网络与云端通信。特别在3G/4G环境下,一些应用(如新闻、天气、邮件等应用)在后台长时间间隔地利用网络获取相应的相应的推送消息。这种长时间间隔式的消息推送给电池容量有限的智能手机的续航带来了巨大的挑战。
针对运行在后台的应用在网络上的能耗,出现了各种基于防火墙技术的管理后台网络请求的应用。用户通过相应的权限设置,允许或禁止一个应用发送网络请求。然而,这类粗粒度的解决方案,一旦设置禁止一个应用的后台请求,会导致这个应用程序逻辑异常,进而导致相应的推送功能失效。因此,需要一种既能保证应用网络请求发送,又能节省网络能耗开销的方法。它可以在不需要移动应用开发人员进行二次开发的情况下,使现有的移动应用以一种更加节能的方式使用网络资源,降低网络能耗。
发明内容
本发明的目的是节省智能手机在网络方面的能耗。其核心思想是由用户指定终端中的部分应用为网络请求可调度应用。通过对这些网络请求可调度应用的程序分析和重构,使这些应用发起的网络请求具备被调度的能力,即被延迟发送。本方法通过调度并合并多应用间的网络请求,实现节省智能手机在网络方面的能耗;通过只延迟部分网络请求,而非禁止发送网络请求,保证应用功能的正常使用。
具体来说,本发明采用的技术方案如下:
一种基于重构技术实现多应用网络请求能耗优化的方法,其步骤包括:
1)对移动应用进行程序化分析,找出与网络操作相关的计算逻辑,并进行相应的重构,将移动应用中调用网络相关的API替换为可被调度的网络相关API;
2)移动应用调用重构后的API,使发送的网络请求被延迟调度,并对一段时间内的网络请求进行合并发送。
进一步地,步骤1)所述重构的过程包括:
a)利用关键字匹配,找出所有和网络操作相关的类;
b)重构网络相关的API:为保证所有网络相关操作均被替换为可调度的网络相关操作,通过插桩所有网络相关操作,将网络相关操作所需的上下文进行封装,传递进对应的调度函数,由调度器进行调度;如果网络操作有返回值,则由调度函数返回。
进一步地,步骤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)实现多应用网络请求能耗优化的应用重构方法
现有的移动应用往往利用框架层提供的应用编程接口(ApplicationProgramInterface,API)发送网络请求。本方法利用程序分析和重构,将原应用中调用网络相关的API替换为可被调度的网络相关API。当应用调用了新的API时,该应用发送的网络请求就会被延迟调度,进而实现一段时间内的网络请求合并发送。
重构前后,应用的网络请求发送流程变化如图1所示。以天气和邮件应用为例,不论是天气消息还是邮件消息,都是以一定的时间间隔去发送网络请求。重构前,每次网络请求都会立即发送,即立即唤醒3G/4G网络模块,网络请求发送完成后,3G/4G模块还会持续消耗电量数十秒钟,再进入休眠状态。由于两个应用网络请求缺少调度和合并机制,导致多次唤醒3G/4G网络模块,额外消耗了手机电量。重构后,每次网络请求会根据用户的设置延迟数秒种至数分钟不等,在被延迟的这段时间里,如果有其他的网络请求,那么这些网络请求就会被合并,即在同一时刻被发送。这样3G/4G模块仅被唤醒一次,节省了手机的电量。
为了调度运行时多应用发送的网络请求,具体的重构过程包含两个步骤:
(a)利用关键字匹配,找出所有和网络操作相关的类
应用利用现有的框架层提供的网络相关API发送各种网络请求。为使应用的网络请求可以被调度,本方法首先构建一个现有框架层网络相关操作的关键字库,再根据这个关键字库找出在应用中所有用到了网络相关API的类。最后对这些类进以下重构操作。
(b)重构网络相关的API
为保证所有网络相关操作均被替换为可调度的网络相关操作,本方法插桩所有网络相关操作(CallSite),将本次网络相关操作所需的上下文进行封装,传递进对应的调度函数,由调度器进行调度。如果这个网络操作有返回值,则由这个调度函数返回。这种重构方式可以保证重构后的程序上下文(Context)的一致性,包括栈(Stack)与堆(Heap)中数据的一致性。根据网络请求建立的链路的类型,可分为短链接和长链接。短链接即每次请求重新建立手机至云端的链路,例如HttpRequest;而长链接则是建立起手机与云端的链路后,多次复用这个链接,例如Socket。调度器针对网络请求的不同类型进行处理,以避免出现大量网络延迟的情况。
(2)网络请求合并机制
上述的重构过程使运行时的网络相关操作可以被调度器所调度。这些不同应用间的调度器相互配合,利用网络请求合并机制实现节省手机电量。网络请求合并机制主要包括以下两个方面:
(a)调度算法抽象
调度算法可以抽象为包含sleep和wakeUp两个原语的一段代码。sleep原语表示对执行本次网络操作进行延迟。wakeUp原语表示此时3G/4G模块已唤醒,可以发送网络请求,该原语会唤醒处于延迟中的网络操作。在实现中,本方法提供sleep和wakeUp两个原语的实现。针对不同的需求,可利用这两个原语实现出不同的调度算法。
(b)多应用间通讯机制
以上算法抽象中,wakeUp原语不仅需要在多线程间进行通讯(即单个应用中),还需要在多进程间进行通讯(即多个应用间),以实现多应用间的调度器相互配合,完成多应用的网络请求调度功能。在具体实现中,针对不同平台,可利用各种进程间通讯、消息广播等技术实现多应用间通讯机制。
实施例:
本节给出了安卓系统中多应用网络请求调度的实现。下面以一段代码为例,介绍重构过程示例和重构后的运行时体系结构示例。
如图2中(a)图所示,上述代码为重构前后的代码。重构前的网络操作httpClient.execute(args0),其所需的运行时上下文包括httpClient和args0两个对象。因此被重构为NetworkStub.execute(httpClient,arg0)。在NetworkStub.execute中,调度算法被激活,网络操作被延迟。在完成该操作后,再返回原网络操作返回的值。
图2中(b)图为调度器中具体实现的代码,仅用到了sleep和wakeUp两个原语。
在本实施例中,我们实现了一个根据屏幕状态进行调度的调度器,其sleep和wakeUp原语实例的流程图如图3所示。图3中(a)图为sleep原语实例的流程图。在屏幕关闭时,网络请求会被延迟发送。被延迟的网络请求在以下三种情况下会被执行:1.接收到wakeUp消息;2.该请求已达到最大延迟;3.接收到屏幕开启的消息。图3中(b)图为wakeUp原语实例的流程图。为避免多次发送唤醒消息造成的广播风暴,我们设置了一阀值(30秒)。仅当在这一阀值内没有发送过唤醒消息,才发送唤醒消息。
经过上述重构,应用所发起的网络请求可被调度、合并。
以上实施例针对是对Davlik字节码进行的实施。本方法也可针对不同的字节码、中间代码,例如Java字节码、Soot框架下的其它中间表示(intermediaterepresentation),进行相应重构。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (9)
1.一种基于重构技术实现多应用网络请求能耗优化的方法,其步骤包括:
1)对移动应用进行程序化分析,找出与网络操作相关的计算逻辑,并进行相应的重构,将移动应用中调用网络相关的API替换为可被调度的网络相关API;
2)移动应用调用重构后的API,使发送的网络请求被延迟调度,并对一段时间内的网络请求进行合并发送。
2.如权利要求1所述的方法,其特征在于,步骤1)所述重构的过程包括:
a)利用关键字匹配,找出所有和网络操作相关的类;
b)重构网络相关的API:为保证所有网络相关操作均被替换为可调度的网络相关操作,通过插桩所有网络相关操作,将网络相关操作所需的上下文进行封装,传递进对应的调度函数,由调度器进行调度;如果网络操作有返回值,则由调度函数返回。
3.如权利要求2所述的方法,其特征在于,步骤a)首先构建一个现有框架层网络相关操作的关键字库,再根据这个关键字库找出在应用中所有用到了网络相关API的类。
4.如权利要求2所述的方法,其特征在于,步骤b)中,网络请求建立的链路的类型分为短链接和长链接,短链接即每次请求重新建立手机至云端的链路,长链接则是建立起手机与云端的链路后,多次复用这个链接;所述调度器针对网络请求的不同类型进行处理,以避免出现大量网络延迟的情况。
5.如权利要求1~4中任一项所述的方法,其特征在于,步骤2)对网络请求进行调度和合并的机制包括调度算法抽象,即将调度算法抽象为包含sleep和wakeup两个原语的一段代码,sleep原语表示对执行本次网络操作进行延迟,wakeup原语表示可以发送网络请求,该wakeup原语会唤醒处于延迟中的网络操作。
6.如权利要求5所述的方法,其特征在于,被延迟的网络请求在以下三种情况下会被执行:
a)接收到wakeUp消息;b)该请求已达到最大延迟;c)接收到屏幕开启的消息。
7.如权利要求6所述的方法,其特征在于,设置一阀值,仅当在这一阀值内没有发送过唤醒消息时才发送唤醒消息,以避免多次发送唤醒消息造成的广播风暴。
8.如权利要求5所述的方法,其特征在于,步骤2)对网络请求进行调度和合并的机制还包括多应用间通讯机制,即wakeup原语不仅需要在多线程间进行通讯,还需要在多进程间进行通讯,以实现多应用间的调度器相互配合,完成多应用的网络请求调度功能。
9.如权利要求8所述的方法,其特征在于,利用进程间通讯或消息广播技术实现所述多应用间通讯机制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510671685.7A CN105391872B (zh) | 2015-10-13 | 2015-10-13 | 基于重构技术实现多应用网络请求能耗优化的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510671685.7A CN105391872B (zh) | 2015-10-13 | 2015-10-13 | 基于重构技术实现多应用网络请求能耗优化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105391872A true CN105391872A (zh) | 2016-03-09 |
CN105391872B CN105391872B (zh) | 2019-01-18 |
Family
ID=55423695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510671685.7A Active CN105391872B (zh) | 2015-10-13 | 2015-10-13 | 基于重构技术实现多应用网络请求能耗优化的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105391872B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107027160A (zh) * | 2017-05-08 | 2017-08-08 | 广东欧珀移动通信有限公司 | 信息处理方法、装置和移动终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101069173A (zh) * | 2003-04-21 | 2007-11-07 | 国际商业机器公司 | 用于低功率运行无线局域网接口的系统 |
CN101499971A (zh) * | 2009-03-09 | 2009-08-05 | 天津大学 | 服务网络性能优化系统 |
CN102629198A (zh) * | 2012-02-29 | 2012-08-08 | 北京大学 | 软件应用中计算逻辑的按需远程执行方法 |
CN103686956A (zh) * | 2012-09-25 | 2014-03-26 | 中国电信股份有限公司 | 移动终端及其数据网络通信方法和数据网络请求代理装置 |
-
2015
- 2015-10-13 CN CN201510671685.7A patent/CN105391872B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101069173A (zh) * | 2003-04-21 | 2007-11-07 | 国际商业机器公司 | 用于低功率运行无线局域网接口的系统 |
CN101499971A (zh) * | 2009-03-09 | 2009-08-05 | 天津大学 | 服务网络性能优化系统 |
CN102629198A (zh) * | 2012-02-29 | 2012-08-08 | 北京大学 | 软件应用中计算逻辑的按需远程执行方法 |
CN103686956A (zh) * | 2012-09-25 | 2014-03-26 | 中国电信股份有限公司 | 移动终端及其数据网络通信方法和数据网络请求代理装置 |
Non-Patent Citations (1)
Title |
---|
BO CHEN: "Towards Energy Optimization Based on Delay-sensitive traffic for WiFi Network", 《2014 UIC-ATC-SCALCORM》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107027160A (zh) * | 2017-05-08 | 2017-08-08 | 广东欧珀移动通信有限公司 | 信息处理方法、装置和移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN105391872B (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9329671B2 (en) | Power-efficient inter processor communication scheduling | |
CN102624762B (zh) | 基于云计算提升机器人软件功能的方法和云计算服务器 | |
CN104239132A (zh) | 一种唤醒对齐的方法、装置及终端 | |
CN105676987A (zh) | 关闭移动终端后台应用的方法、装置及移动终端 | |
CN102110022B (zh) | 基于优先级调度的传感器网络嵌入式操作系统 | |
CN106648849A (zh) | 进程的冷冻方法和移动终端 | |
CN101135981A (zh) | 一种实现批量报表生成的方法及装置 | |
CN104539672A (zh) | 一种基于云计算的移动应用程序消息推送代理系统 | |
CN111148052B (zh) | 状态确定方法、系统、介质及电子设备 | |
CN110493892A (zh) | 网络连接方法及装置、存储介质、通信终端 | |
CN103702401A (zh) | 基于用户行为分析的移动网络节能方法 | |
CN115996197B (zh) | 一种流量拥塞前置的分布式计算流量仿真系统与方法 | |
CN115588244B (zh) | 一种车联网大数据实时分析方法、装置、设备及介质 | |
CN113949703A (zh) | 一种电力人工智能的云边协同系统 | |
CN111464352A (zh) | 调用链路数据处理方法及装置 | |
CN113687989B (zh) | 一种基于无服务器架构的物联网数据异常检测方法及系统 | |
CN107506286A (zh) | Cpu和内存块的自动上下线方法和系统 | |
CN105391872A (zh) | 基于重构技术实现多应用网络请求能耗优化的方法 | |
CN105472710A (zh) | 黑名单处理方法及装置 | |
CN103019819A (zh) | 一种基于插件机制的动态库统一调度方法 | |
CN102455932A (zh) | 一种任务实例串行执行方法、装置及系统 | |
CN115150892B (zh) | 具有突发性业务的mec无线系统中vm-pm修复策略方法 | |
CN103701788A (zh) | 一种跨平台软总线的通信装置及软总线 | |
Cai et al. | Delaydroid: reducing tail-time energy by refactoring android apps | |
CN105656716A (zh) | 一种协议模块性能测试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |