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

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

Info

Publication number
CN105391872B
CN105391872B CN201510671685.7A CN201510671685A CN105391872B CN 105391872 B CN105391872 B CN 105391872B CN 201510671685 A CN201510671685 A CN 201510671685A CN 105391872 B CN105391872 B CN 105391872B
Authority
CN
China
Prior art keywords
network
application
request
network request
wakeup
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.)
Active
Application number
CN201510671685.7A
Other languages
English (en)
Other versions
CN105391872A (zh
Inventor
黄罡
张颖
梅宏
蔡华谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN201510671685.7A priority Critical patent/CN105391872B/zh
Publication of CN105391872A publication Critical patent/CN105391872A/zh
Application granted granted Critical
Publication of CN105391872B publication Critical patent/CN105391872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/725Cordless telephones
    • H04M1/73Battery saving arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0251Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
    • H04W52/0258Power 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing 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)实现多应用网络请求能耗优化的应用重构方法
现有的移动应用往往利用框架层提供的应用编程接口(Application ProgramInterface,API)发送网络请求。本方法利用程序分析和重构,将原应用中调用网络相关的API替换为可被调度的网络相关API。当应用调用了新的API时,该应用发送的网络请求就会被延迟调度,进而实现一段时间内的网络请求合并发送。
重构前后,应用的网络请求发送流程变化如图1所示。以天气和邮件应用为例,不论是天气消息还是邮件消息,都是以一定的时间间隔去发送网络请求。重构前,每次网络请求都会立即发送,即立即唤醒3G/4G网络模块,网络请求发送完成后,3G/4G模块还会持续消耗电量数十秒钟,再进入休眠状态。由于两个应用网络请求缺少调度和合并机制,导致多次唤醒3G/4G网络模块,额外消耗了手机电量。重构后,每次网络请求会根据用户的设置延迟数秒种至数分钟不等,在被延迟的这段时间里,如果有其他的网络请求,那么这些网络请求就会被合并,即在同一时刻被发送。这样3G/4G模块仅被唤醒一次,节省了手机的电量。
为了调度运行时多应用发送的网络请求,具体的重构过程包含两个步骤:
(a)利用关键字匹配,找出所有和网络操作相关的类
应用利用现有的框架层提供的网络相关API发送各种网络请求。为使应用的网络请求可以被调度,本方法首先构建一个现有框架层网络相关操作的关键字库,再根据这个关键字库找出在应用中所有用到了网络相关API的类。最后对这些类进以下重构操作。
(b)重构网络相关的API
为保证所有网络相关操作均被替换为可调度的网络相关操作,本方法插桩所有网络相关操作(Call Site),将本次网络相关操作所需的上下文进行封装,传递进对应的调度函数,由调度器进行调度。如果这个网络操作有返回值,则由这个调度函数返回。这种重构方式可以保证重构后的程序上下文(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 (8)

1.一种基于重构技术实现多应用网络请求能耗优化的方法,其步骤包括:
1)对移动应用进行程序化分析,找出与网络操作相关的计算逻辑,并进行相应的重构,将移动应用中调用网络相关的API替换为可被调度的网络相关API;所述重构的过程包括:
a)利用关键字匹配,找出所有和网络操作相关的类;
b)重构网络相关的API:为保证所有网络相关操作均被替换为可调度的网络相关操作,通过插桩所有网络相关操作,将网络相关操作所需的上下文进行封装,传递进对应的调度函数,由调度器进行调度;如果网络操作有返回值,则由调度函数返回;
2)移动应用调用重构后的API,使发送的网络请求被延迟调度,并对一段时间内的网络请求进行合并发送。
2.如权利要求1所述的方法,其特征在于,步骤a)首先构建一个现有框架层网络相关操作的关键字库,再根据这个关键字库找出在应用中所有用到了网络相关API的类。
3.如权利要求1所述的方法,其特征在于,步骤b)中,网络请求建立的链路的类型分为短链接和长链接,短链接即每次请求重新建立手机至云端的链路,长链接则是建立起手机与云端的链路后,多次复用这个链接;所述调度器针对网络请求的不同类型进行处理,以避免出现大量网络延迟的情况。
4.如权利要求1~3中任一项所述的方法,其特征在于,步骤2)对网络请求进行调度和合并的机制包括调度算法抽象,即将调度算法抽象为包含sleep和wakeup两个原语的一段代码,sleep原语表示对执行本次网络操作进行延迟,wakeup原语表示可以发送网络请求,该wakeup原语会唤醒处于延迟中的网络操作。
5.如权利要求4所述的方法,其特征在于,被延迟的网络请求在以下三种情况下会被执行:
a)接收到wakeUp消息;b)该请求已达到最大延迟;c)接收到屏幕开启的消息。
6.如权利要求5所述的方法,其特征在于,设置一阀值,仅当在这一阀值内没有发送过唤醒消息时才发送唤醒消息,以避免多次发送唤醒消息造成的广播风暴。
7.如权利要求4所述的方法,其特征在于,步骤2)对网络请求进行调度和合并的机制还包括多应用间通讯机制,即wakeup原语不仅需要在多线程间进行通讯,还需要在多进程间进行通讯,以实现多应用间的调度器相互配合,完成多应用的网络请求调度功能。
8.如权利要求7所述的方法,其特征在于,利用进程间通讯或消息广播技术实现所述多应用间通讯机制。
CN201510671685.7A 2015-10-13 2015-10-13 基于重构技术实现多应用网络请求能耗优化的方法 Active CN105391872B (zh)

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 CN105391872A (zh) 2016-03-09
CN105391872B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107027160A (zh) * 2017-05-08 2017-08-08 广东欧珀移动通信有限公司 信息处理方法、装置和移动终端

Citations (4)

* Cited by examiner, † Cited by third party
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 中国电信股份有限公司 移动终端及其数据网络通信方法和数据网络请求代理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
Towards Energy Optimization Based on Delay-sensitive traffic for WiFi Network;BO Chen;《2014 UIC-ATC-ScalCorm》;20141231;252-257

Also Published As

Publication number Publication date
CN105391872A (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN106662907B (zh) 基于终端的唤醒锁控制方法、装置及终端
CN110187973A (zh) 一种面向边缘计算的服务部署优化方法
CN112148455B (zh) 一种任务处理方法、设备及介质
CN110493892B (zh) 网络连接方法及装置、存储介质、通信终端
CN106951314B (zh) 面向Android系统后台服务自动唤醒的切断方法
Benedetto et al. MobiCOP: a scalable and reliable mobile code offloading solution
CN115588244A (zh) 一种车联网大数据实时分析方法、装置、设备及介质
CN105391872B (zh) 基于重构技术实现多应用网络请求能耗优化的方法
Wang et al. A Smart Semipartitioned Real‐Time Scheduling Strategy for Mixed‐Criticality Systems in 6G‐Based Edge Computing
CN103019819A (zh) 一种基于插件机制的动态库统一调度方法
CN107329842B (zh) 基于Qt信号槽机制的获取数据的方法及终端
Wu et al. Research on network element management model based on cloud native technology
CN112383439A (zh) 一种智能燃气表空中升级系统及升级方法
CN114915460B (zh) 一种面向容器云的异构动态扩缩容装置及方法
CN109840079B (zh) 一种智能开源云开发平台及方法
CN111638871A (zh) 一种设备信息处理方法、装置、设备、介质
CN111541646A (zh) 一种增强密码机安全服务接入能力的方法
CN111190731A (zh) 基于权重的集群任务调度系统
US8276165B2 (en) Continuation-based runtime callback invocation
Huang et al. DelayDroid: an instrumented approach to reducing tail-time energy of Android apps
CN110347448A (zh) 一种构造终端应用行为的运行时模型的方法
Cai et al. Delaydroid: reducing tail-time energy by refactoring android apps
CN112764883A (zh) 一种基于软件定义的云桌面系统的能源管理方法
CN110244834A (zh) 一种应用行为对齐方法及终端设备
CN110765009A (zh) 一种自动化执行的ai语音软件测试框架

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