减少计算设备的网络使用
【专利说明】减少计算设备的网络使用
[0001]背景
[0002]数据传输的高成本是移动计算设备的广泛使用的障碍。例如,在移动电话的情况中,数据计划成本对中等收入的比率可能相对较高。因此,具有在数据消费方面高效的操作系统的移动电话是非常期望的。
[0003]若干现有技术试图通过提供数据的高效消费来减轻针对移动计算设备的网络传输的高成本。例如,压缩、重复去除,和其它类似技术可用在发送到特定移动计算设备的网络通信上。然而,这样的技术可能不能够将网络传输的规模减少到可接受的程度。
[0004]另一个技术涉及通过各种应用将网络使用统计展示给移动计算设备的用户,并允许用户根据移动计算设备的数据计划来改变他的行为。然而,这一技术依赖于在用户部分上监控的主动行为,并且对于用户可能是耗时的。
[0005]此外,可向应用开发者提供减少网络使用的应用编程接口(API)。例如,基于用户数据计划中包括多少字节来执行网络传输的API可被实现在一个应用中。然而,对于应用开发者而言通常难以理解在特定应用的上下文中对这种API的使用。
【发明内容】
[0006]下面呈现了本发明的简化概述,以便提供此处所描述的某些方面的基本概念。此
【发明内容】
不是所要求保护的主题的详尽的概述。既不是要指出所要求保护的主题的关键性元素,也不是要详细描述本发明的范围。唯一的目的是以简化形式呈现所要求保护的主题的某些概念,作为稍后呈现的比较详细的描述的前奏。
[0007]一实施例提供了用于减少网络使用的方法。该方法包括从位于计算设备的应用编程接口的应用接收与网络传输相关的网络呼叫。该方法还包括,确定网络传输是否与应用的当前状态相关,并且如果它与应用的当前状态无关就延迟该网络传输。
[0008]另一个实施例提供了用于减少网络使用的计算系统。该计算系统包括适于执行所存储的指令的处理器和系统存储器。该系统存储器包括配置用于分析来自应用的网络呼叫以确定对应的网络传输是否与应用的当前状态相关的代码。系统存储器还包括配置用于在网络传输与应用的当前状态无关的情况下延迟该网络传输的代码。
[0009]此外,另一个实施例提供包括多个指令的一个或多个计算机可读存储介质,当指令被处理器执行时致使该处理器分析来自应用的网络呼叫以确定对应的网络传输是否与应用的当前状态相关。指令还使得处理器在网络传输与应用的当前状态无关的情况下延迟该网络传输一段指定量的时间。
[0010]提供本
【发明内容】
以便以简化形式介绍一些概念;这些概念将在以下的详细描述中进一步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0011]附图简述
[0012]图1是可被用于实现减少网络使用的方法的计算环境的框图;
[0013]图2是用于通过延迟网络传输减少网络使用的方法的处理流程图;
[0014]图3是用于通过代理API减少网络使用的方法的处理流程图;
[0015]图4是用于通过网络卸载过程减少网络使用的方法的处理流程图;
[0016]图5是用于可被用来延迟网络传输的应用文件的二进制重写的方法的处理流程图;
[0017]图6是示出存储了适于实现减少网络使用的方法的代码的计算机可读存储介质的框图。
[0018]贯穿本公开和各附图,相同的编号参考相同的组件和特征。100系列中标号指的是最初在图1中所找到的特征,200系列中的标号指的是最初在图2中找到的特征,300系列中的标号指的是最初在图3中找到的特征,依此类推。
[0019]详细描述
[0020]此处公开的各实施例阐释了一种用于减少诸如移动计算设备的计算设备的网络使用的方法和系统。这可通过延迟,即推迟,由应用所请求的网络传输一段指定量的时间来实现。此外,这可通过延迟网络传输直至网络传输的结果与应用的当前状态相关来实现。例如,如果网络传输更新应用的用户界面(UI)的特定部分,针对网络传输的网络呼叫可不被执行,直到Π的那部分对计算设备的用户当前可见。
[0021]此外,网络传输可被执行使得仅仅获得与应用的当前状态相关的数据。这可通过使用代理应用编程接口(API)来实现,以基于对用户当前可见的Π的那部分来确定哪些数据要下载到计算设备。替换地,这可通过执行网络卸载过程来实现。网络卸载过程可包括将对应于网络传输的网络呼叫的代码卸载到数据中心、将网络呼叫的代码解析以标识与相关数据相关的代码、在数据中心内执行所标识的代码,并将相关数据发送到计算设备。
[0022]作为预备事项,一些附图在一个或多个结构组件(被称为功能、模块、特征、元素等)的上下文中来描述概念。附图中示出的各种组件能够以任何方式来实现,例如,通过软件、硬件(例如,分立的逻辑组件等等)、固件等等,或这些实现的任何组合。在一个实施例中,各个组件可以反映对应的组件在实际实现中的使用。在其他实施例中,附图中所示出的任何单个组件可由多个实际组件来实现。对附图中的任何两个或更多单独的组件的描绘可以反映由单个实际组件所执行的不同的功能。以下讨论的图1提供了关于可用于实现附图中所示的各功能的一个系统的细节。
[0023]其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成以某一顺序执行的不同的框。这样的实现是示例性的而非限制性的。此处描述的某些框可被分组在一起并在单个操作中执行,某些框可被分成多个组成框,并且某些框可以按与此处所示出的不同的次序来执行(包括以并行方式执行这些框)。流程图中示出的框可以通过软件、硬件、固件、手动处理等等或这些实现的任何组合来实现。如此处所使用的,硬件可以包括计算机系统、诸如专用集成电路(ASIC)之类的分立逻辑组件等以及它们的任意组合。
[0024]关于术语,短语“被配置成”涵盖可以构造任何类型的结构组件来执行所标识的操作的任何方式。结构组件可以被配置成使用软件、硬件、固件等或其任意组合来执行操作。
[0025]术语“逻辑”涵盖用于执行任务的任何功能。例如,流程图中所示出的每一操作对应于用于执行该操作的逻辑。操作可以使用软件、硬件、固件等或其任意组合来执行。
[0026]如在此使用的,术语“组件”、“系统”、“客户机”等旨在指代计算机相关的实体,它们可以是硬件、(例如,执行中的)软件和/或固件、或其组合。例如,组件可以是,在处理器上运行的进程、对象、可执行码、程序、函数、库、子例程,和/或计算机或软件和硬件的组合。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程中,组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
[0027]此外,所要求保护的主题可以使用产生控制计算机以实现所公开的主题的软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装置或制品。如此处所使用的术语“制品”可以包含可以从任何有形的计算机可读设备或介质访问的计算机程序。
[0028]计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、以及磁带等等)、光盘(例如,紧致盘(CD)以及数字多功能盘(DVD)等等)、智能卡、以及闪存设备(例如,卡、棒以及钥匙驱动器等等)。相反,计算机可读介质(即,非存储介质)一般可附加地包括用于无线信号之类的通信介质,诸如传输介质。
[0029]图1是可被用于实现减少网络使用的方法的计算环境100的框图。计算环境100可包括计算设备102。计算设备102可以是,例如,移动电话、平板电脑、台式计算机、膝上计算机、电子阅读器、电视机、媒体播放器等。计算设备102可包括适于执行所存储的指令的处理器104,以及存储可由处理器104执行的指令的存储器设备106。处理器104可以是单核处理器、多核处理器、计算群集、或者任意数量的其他配置。存储器设备106可包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他合适的存储器系统。由处理器104执行的所存储的指令可通过延迟或去除网络传输来实现用于减少计算设备102的网络使用的方法。处理器104可通过总线108连接到一个或多个输入和输出设备。
[0030]计算设备102可包括存储设备110。存储设备110可包括硬盘驱动器、光盘驱动器、拇指驱动器、驱动器阵列、等等。存储设备I1可适于存储网络使用减少模块112。此夕卜,存储设备108还可适于存储API 114和任何数量的应用116。应用116可通过API 114相互通信。网络使用减少模块112可被用于通过分析与从任一应用116发送到API 114的网络传输相关的网络呼叫,并延迟或去除与应用116的当前状态不相关的网络传输来减少计算设备102的网络使用。
[0031]人机界面(HMI) 118可将计算设备102连接到