用于移动应用的系统和方法技术方案

技术编号:12905801 阅读:77 留言:0更新日期:2016-02-24 13:49
公开了用于提高移动应用的性能的系统和方法。示例性方法可以包括接收对应用的请求,其中该请求可以包括目标设备信息。该方法还可以确定应用是否之前已经被高速缓存。如果应用还没有高速缓存,则该方法能够将应用作为字节代码下载并且利用提前编译器将该字节代码处理成本机代码格式。该方法还可以经网络将本机代码格式的该应用提供给目标设备。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】 对相关申请的交叉引用 本申请涉及于2013年4月26日提交的美国临时申请序列No. 61/816, 461、于2013 年8月28日提交的美国临时申请序列No. 61/871,075,其中每一个都通过引用整体被并入 本文并且要求其优先权。
所公开的主题涉及用于提高移动应用的性能的技术。
技术介绍
某些移动应用可以用诸如Java或.NET的语言来编写。开发者可以利用诸如Java 或.NET的语言来编写应用、将应用编译为字节代码,并且利用兼容的虚拟机(VM)在许多平 台上运行该应用。诸如Java或.NET的语言允许开发者避免某些低级问题,诸如存储器管 理。此外,诸如Java或.NET的语言还可以提供可移植性和安全性特征,这些特征例如使浏 览器能够运行不受信任的小程序。 但是,诸如Java或.NET的语言还会需要比本机代码所需的更高的开销。例如,与 本机执行相比,字节代码解释会涉及超过10倍的速度减小。虽然诸如即时编译(JIT)的现 有技术可以通过将字节代码编译为本机代码格式来提高性能,但是JIT会花时间来执行并 且减小应用响应时间。此外,由于移动环境中的CRJ和电池约束以及更快地对用户作出响 应的需求,诸如JIT的某些现有技术会具有减少的功能性,诸如全局优化。此外,提前编译 (Α0Τ)可以代替JIT而被使用。由于缺乏运行时信息,由Α0Τ产生的代码会比原始字节代码 需要更多的文件系统空间。照此,存在提高移动应用的性能的需求。
技术实现思路
本文公开了用于提高移动应用的性能的系统和方法。 在所公开主题的一方面,公开了用于经网络将应用以被目标设备使用的本机代码 格式提供给目标设备的技术。示例性方法可以包括接收对该应用的请求,该请求包括目标 设备信息。该方法还可以确定该应用是否之前已经被高速缓存,并且如果还没有的话,就将 该应用作为字节代码下载并且利用提前编译器将该字节代码处理成本机代码格式。该方法 还可以经该网络将本机代码格式的该应用提供给目标设备。 在一些实施例中,该方法还可以包括接收请求,该请求包括诸如设备类型、操作系 统版本和平台版本的目标设备信息。在一些实施例中,该方法还可以包括,如果该本机代码 格式的应用还未被高速缓存的话,就高速缓存该应用。 所公开的主题还提供用于经网络将应用以被目标设备使用的本机代码格式提供 给目标设备的装置。示例性装置可以包括处理器和存储器。该装置还可以包括存储在存储 器中的计算机程序指令,该指令在被处理器执行时使处理器执行某些操作。这些操作可以 包括接收对该应用的请求,其中该请求可以包括目标设备信息。该指令还可以包括确定该 应用是否已经被高速缓存,并且如果该应用还未被高速缓存的话,就将该应用作为字节代 码下载并且利用提前编译器将该字节代码处理成本机代码格式。该指令还可以包括经该网 络将本机代码格式的该应用提供给目标设备。 在一些实施例中,处理是由应用开发者服务器执行的。在一些实施例中,处理是由 应用中介(broker)服务器执行的。在其它实施例中,处理是由目标设备执行的。在一些实 施例中,目标设备可以执行字节代码和本机代码当中的至少一种。【附图说明】 图1示出了根据所公开的主题的示例性系统。 图2示出了根据所公开的主题、用于经网络将应用以本机代码格式提供给目标设 备的示例性方法。 图3示出了根据所公开的主题、用于经网络将应用以本机代码格式提供给目标设 备的备选示例性方法。 图4示出了根据所公开的主题的示例性系统体系架构。 图5A和图5B示出了根据所公开的主题的示例性解释器。 图6示出了根据所公开的主题的示例性解释器的进一步细节。 图7示出了根据所公开的主题的示例性翻译器。【具体实施方式】 给出了用于提高移动应用的性能的技术。示例性技术包括接收对应用的请求,其 中该请求可以包括目标设备信息。方法还可以确定,例如,本机代码格式的应用是否之前已 经被高速缓存,并且如果应用还未被高速缓存的话,就将应用作为字节代码下载或者要求 目标设备上传字节代码。该方法还提供利用提前编译器将该字节代码处理成本机代码格 式。该方法还可以经该网络将本机代码格式的应用提供给目标设备。 图1示出了根据所公开的主题的示例性系统。参照图1,当用户101想要下载应用 时,她的设备101可以向应用加速器103发送请求。应当理解的是,设备101可以是目标设 备101。请求可以经网络107被发送。请求可包括诸如设备类型和系统版本的信息。 应用加速器103可以确定这是否是第一次对给定的环境请求该应用。如果是第一 次,则应用加速器103可以从应用源105下载该应用。可以理解的是,应用源105可以是应 用中介105。所下载的应用可以是字节代码版本。在一种实施例中,预处理后的字节代码 (例如依赖于平台的字节代码)可以从应用中介105或应用源105被接收。然后,应用加 速器103可以将该应用编译为可在用户的设备101中执行的本机代码格式。在一种实施例 中,应用加速器103可以将应用的字节代码的一部分处理成本机代码格式。在另一种实施 例中,应用加速器103可以执行诸如概要分析(profiling)的技术,以确定应用中要转换为 本机代码的部分。在一个例子中,应用的选定部分可以被选择并且用于应用的该选定部分 的字节代码可以被转换为本机代码。在一种实施例中,应用加速器103可以接收例如通用 字节代码或预处理后的字节代码。本机代码可以包括优化后的代码。然后,应用加速器103 可以高速缓存该应用的本机版本。这可以使应用加速器103能够摊销(amortize)编译成 本并且更快地响应来自相同设备类型和操作系统版本的后续请求。应当理解的是,应用加 速器103可以驻留在设备101中或在设备101外面。 在示例性软件分发模型中,开发者可以在可移除介质中或者通过在线网站装运他 们的软件。在这种模型中,字节代码可以为意欲在许多不同平台上运行的软件提供出色的 可移植性,因为开发者难以跟踪不同的用户设备并且非专业用户难以选择正确的软件版 本。但是,在目前的应用分发模型中,应用源105或应用中介可以确定关于应用的信息,例 如,用户正在从其下载应用的设备101和系统版本。例如,从Android的应用商店(Google Play)下载应用的协议指定设备类型101和Android SDK版本,Google Play使用设备类型 101和Android SDK版本来过滤掉与设备不兼容的应用。 在一种实施例中,给定设备和系统配置,应用源105可以随后Α0Τ-编译字节代码 并为特定设备类型将字节代码应用优化成本机代码,同时对开发者和用户二者都保持透 明。在一个例子中,字节代码的可移植性会随着中介管理或者应用源管理的可移植性而消 失。此外,某些移动平台可以在系统级别强化安全性。例如,Android可以为每个被安装的 应用分配不同的用户标识符(UID),从而隔离应用的数据与执行。这会使由字节代码提供的 安全性不那么有吸引力。而且,由于用户已经信任应用源105不向应用添加恶意,因此它们 可以让应用源105代表它们在装运Α0Τ-编译的本机代码之前验证字节代码。 在一种实施例中,目标设备101可以加载并执行例如以下二者:(1)从应用源105 下本文档来自技高网...

【技术保护点】
一种用于经网络将应用以被目标设备使用的本机代码格式从应用源提供给所述目标设备的方法,包括:接收对所述应用的请求,所述请求包括目标设备信息;确定所述应用是否已经被高速缓存,如果所述应用还未被高速缓存:将所述应用作为字节代码从所述应用源下载;及利用提前编译器将所述字节代码处理成所述本机代码格式;及经所述网络将本机代码格式的所述应用提供给所述目标设备。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:杨俊峰Y·全
申请(专利权)人:纽约市哥伦比亚大学理事会
类型:发明
国别省市:美国;US

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

1