CN106233226B - 在移动装置上执行的寄载应用内的服务代替的进程内俘获 - Google Patents
在移动装置上执行的寄载应用内的服务代替的进程内俘获 Download PDFInfo
- Publication number
- CN106233226B CN106233226B CN201480078060.3A CN201480078060A CN106233226B CN 106233226 B CN106233226 B CN 106233226B CN 201480078060 A CN201480078060 A CN 201480078060A CN 106233226 B CN106233226 B CN 106233226B
- Authority
- CN
- China
- Prior art keywords
- hosted
- native
- operating system
- class
- software application
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种计算装置,包括:中央处理单元,所述中央处理单元执行本机操作系统,所述本机操作系统包括具有本机软件应用的本机运行时间环境。每个本机软件应用具有用于在本机操作系统下执行的指令。寄载运行时间环境在本机运行时间环境内执行,每个寄载运行时间环境执行寄载软件应用,所述寄载软件应用具有用于在与本机操作系统不同的寄载操作系统下执行的指令。作为所述寄载运行时间环境的第一进程执行的第一寄载软件应用包括引用由面向对象编程(OOP)类限定的对象的成员的指令。所述进程执行使用数据和/或代码的指令,该指令不同于由所述引用类规定为所述引用成员的指令。
Description
本申请要求于2014年2月27日提交的名称为IN-PROCESS TRAPPING FOR SERVICESUBSTITUTION IN HOSTED APPLICATIONS EXECUTING ON MOBILE DEVICES WITH MULTI-OPERATING SYSTEM ENVIRONMENT的美国专利申请No.61/945,534的优先权权益,该案的教导内容通过引用结合于此。
技术领域
本发明涉及数字数据处理,并且更具体而言,涉及用于在单个硬件/软件平台应用程序(“apps”)上执行的方法和设备,其中该单个硬件/软件平台应用程序为在多个不同的这种平台上执行而制造。本发明具有支持在用于智能移动装置的应用程序之间的跨平台兼容性的应用,该智能移动装置例如智能电话、平板电脑、机顶盒、连接的电视、车载信息娱乐系统、或机上娱乐系统等,这些均为非限制性实例。
背景技术
根据分析,智能移动装置市场在过去一年增长了大约40%。这在很大程度上由销售运行开源Linux和Android操作系统的变体的装置引起。虽然这有利于市场,但是那些装置因为缺乏为其开发的应用程序的跨兼容性而受到影响。因此,例如,为运行Meego操作系统的移动装置开发的应用程序不能在执行Tizen或Android操作系统的装置上运行。在人们转向完全不同的系列的操作系统时,该问题当然是复杂的。例如,为Tizen开发的应用程序不能在运行WebOS或Windows OS等的装置上运行。
这不仅对购买了缺乏与旧应用程序的兼容性的新移动装置的用户是个问题,而且对于因缺乏可用应用程序的大生态系统而阻碍其提供新硬件/软件平台的努力的在供应链中的制造商、运送者等也是个问题。应用程序开发人员也经受市场上的分裂的影响,因为他们可能被迫将应用程序转移到各种平台,以便建立或保持产品可行性。
解决跨兼容性问题的一些现有技术的努力具有有限的成功。例如,Acer的AspireOne支持双重启动模式:一种模式用于Windows OS,一种模式用于Android。然而,该装置不能在单个模式中为这两个操作系统运行应用程序。
鉴于以上内容,本发明的一个目标在于,提供用于数字数据处理的改进的系统和方法。
更尤其地,另一个目标在于,提供这种系统和方法,以支持在为在多个不同的硬件/软件平台上执行而制造的单个硬件/软件平台应用程序(“apps”)上进行执行。
另一个目标在于,提供这种系统和方法,以支持在用于智能移动装置的应用程序之间的跨平台兼容性,该智能移动装置例如智能电话、平板电脑、机顶盒、连接的电视、车载信息娱乐系统、或机上娱乐系统等,这些均为非限制性实例。
这些和其他目标在以下文本中以及在附图中显而易见。
发明内容
以上内容在由本发明实现的目标之中,在一些方面,提供了一种计算装置,包括:中央处理单元,所述中央处理单元执行本机操作系统,所述本机操作系统包括一个或多个本机运行时间环境,其中,一个或多个本机软件应用在所述一个或多个本机运行时间环境内执行,其中,每个这种本机软件应用具有用于在本机操作系统下执行的指令。一个或多个寄载运行时间环境在一个或多个本机运行时间环境内执行,每个寄载运行时间环境执行寄载软件应用,所述寄载软件应用具有用于在与本机操作系统不同的寄载操作系统下执行的指令。
在所述寄载运行时间环境的第一进程内执行的第一寄载软件应用包括引用由面向对象编程(OOP)类(“引用类”)限定的对象的成员(在后文中称为“引用成员”)的指令。所述进程执行使用不同于由所述引用类所指定的作为引用成员、数据和/或代码的指令(在后文中称为“代替成员”)。如在本文中所使用的,对象的“成员”是方法成员和数据成员中的任一个。
本发明的相关方面提供一种计算装置,例如,如上所述,其中,所述引用成员和代替成员从第一软件应用程序的角度来看提供相似的功能,然而,为其使用不同的机制。
根据本发明的一些方面,那些不同的机制可以是不同的网络(或其他外部)服务。因此,例如,所述引用成员可以是由第一类限定的对象的方法成员,该方法成员使用第一外部网络服务来支持所述第一寄载软件应用所需要的映射、导航、广告、电子钱包、账户授权和/或其他服务中的任一个,然而,所述代替成员包括使用第二不同的网络服务来支持上述服务的代码。
那些不同的机制还可以是不同的本机功能或服务。因此,例如,在所述引用成员使用位于寄载运行时间环境本地的电话、相机、地址/联系方式、文档预览、音乐/多媒体播放或其他功能/服务时,所述代替成员可以使用本机操作系统的相似功能/服务。
本发明的其他相关方面提供了一种计算装置,例如,如上所述,其中,在所述装置上加载该软件应用期间,将在第一软件应用中对所述引用成员和/或引用类的引用解析至代替成员。
本发明的进一步方面如上所述提供使用于在计算装置上执行第一软件应用的操作并行的方法。
本发明的这些和其他方面在附图中以及在以下描述中显而易见。
附图说明
下面参照附图,可以实现更完整地理解本发明,其中:
图1A-1C描述了体现本发明的类型的计算装置;
图2描述了在图1A-1C的装置中执行的类型的本机操作系统;
图3描述了由用于在图1A-1C的装置中执行寄载软件应用的本机软件应用限定的一个或多个寄载运行时间环境;
图4描述了在基于与在本机运行时间环境内执行的该应用程序的启动代理的用户交互启动示例性寄载软件应用,通过该应用程序的IO代理显示表示寄载软件应用的操作的应用窗口,并且将用户输入从该代理传输回寄载应用时元件的交互;以及
图5描述了在根据本发明的系统中的寄载应用,其中,使用对代替成员的引用来代替引用对象的所选成员的指令。
具体实施方式
架构
图1A描述了体现本发明的类型的计算装置10。示出的装置10包括在市场上可购买到的类型的通常提供的类型的计算装置的中央处理单元(CPU)、输入/输出(I/O)、存储器(RAM)以及非易失性存储器(MEM)子部分,所有这些均根据本文的教导进行适配。在示出的实施方式中,装置10包括移动计算装置,例如智能电话或平板电脑,然而,在其他实施方式中,其可以包括其他计算装置(移动或其他形式),例如,仅举几例,机顶盒、连接的电视、车载信息娱乐系统、或机上娱乐系统。
装置10可以通过网络(在此处,由“云”12表示)以本领域中已知的常见方式永久地、间断地或者以其他方式连接至一个或多个其他计算装置、服务器或能够数字通信的其他设备(未示出),该网络可以包括互联网、城域网、广域网、局域网、卫星网络、蜂窝网络、点对点网络和/或一个或多个上述的组合,所有这些均根据本文的教导进行适配。
装置10的CPU(例如,与I/O、RAM和/或MEM子部分相结合)执行在市场上可购买到的类型的本机操作系统14,所有这些均根据本文的教导进行适配。仅举几例,这种操作系统的实例包括Meego、Tizen、Android、WebOS以及Linux操作系统。更一般而言和/或此外,本机操作系统14可以是基于Linux的操作系统,例如,通过非限制性实例,基于Android的操作系统。
本机运行时间环境
图2描述了在图1A-1C的示出装置10上执行的类型的本机操作系统14。
参考该图2,本机操作系统14限定在本领域已知的类型的一个或多个本机运行时间环境16(根据本文的教导进行适配),在该环境内,执行在本领域已知的类型的本机软件应用(根据本文的教导进行适配),即,具有用于在本机操作系统下执行的指令的应用。这种应用在图中标记为15、18以及46-52。如在此处以及本文中的别处所使用的,术语“应用程序”和“应用”可交换使用。
根据本机操作系统14及其在装置10上的实现方式的细节,本机运行时间环境16可以包括一个或多个虚拟机或其他,如在本领域中常见的那样(根据本文的教导进行适配)。通过非限制性的实例,示出的本机运行时间环境16包括应用资源19和运行时间库20,均是在本领域中已知的类型,根据本文的教导进行适配。该运行时间环境16还包括在本领域中已知的类型的内核24,根据本文的教导进行适配。
通过在本领域中常见的方式(根据本文的教导进行适配),内核24(或在可替换的实施方式的运行时间环境中提供的可替换的功能)尤其用作在CPU 12(更通常地,在其上执行的本机运行时间环境16内执行的本机应用)和与装置10成为一体或附接到装置10的硬件装置24-30之间的接口。这包括显示器/触摸屏24和通过本领域已知的常见方式(根据本文的教导进行适配)驱动在其上的显示器的帧缓冲器26。通过非限制性实例,这还可以包括键盘、轨迹球、触摸棒、其他用户输入装置和/或在本领域中已知的类型的其他整体或外围装置。在以下讨论中,显示器/触摸屏24、帧缓冲器26、以及支持在装置10与其用户之间的交互的其他整体/外围装置被称为“硬件接口”,而无论其是否包括硬件、软件或其组合(更通常是这样)。
在一个或多个本机运行时间环境16内执行的本机软件应用18(在此处无限制性地称为“应用兼容性层”或“ACL”)限定一个或多个寄载运行时间环境,寄载软件应用在该寄载运行时间环境内执行。每个这种寄载软件应用具有用于在与本机操作系统不同的寄载操作系统下执行的指令。
本机软件应用46-52是寄载软件应用34、36的代理。尤其地,在一些实施方式中,在寄载运行时间环境32内执行的寄载软件应用可以具有在本机运行时间环境16内执行的多个对应的代理:启动代理和IO代理。在此处,为了说明的目的,寄载软件应用34显示为具有启动代理46和IO代理50。寄载软件应用36同样显示为具有启动代理48和IO代理52。虽然在示出的实施方式中使用启动和IO代理两者,但是在其他实施方式中,寄载软件应用可具有仅仅一种类型的对应代理(例如,IO或启动)等;并且在其他实施方式中,一个或多个寄载软件应用可以没有这种代理。
寄载运行时间环境
寄载操作系统可以是例如基于Linux的操作系统,例如,通过非限制性实例,基于Android的操作系统。本机操作系统14可以同样是例如基于Linux的操作系统和/或基于Android的操作系统,虽然是与寄载操作系统的种类不同的“种类”。通过更特别的实例,其中,本机操作系统14包括上述Tizen、WebOS、Linux操作系统中的一个(根据本文的教导进行适配),通过非限制性实例,寄载操作系统可以包括市场上可购买的Android操作系统(根据本文的教导进行适配)的“种类”,再次通过非限制性实例。
图3描述了在根据本发明的装置10中的由本机软件应用18(或ACL)限定的用于执行寄载软件应用34、36的一个或多个寄载运行时间环境32。示出的寄载运行时间环境32是在本领域已知的类型(根据本文的教导进行适配),在该寄载运行时间环境内,构建并且旨在执行具有用于在寄载操作系统下执行的指令的软件应用(即,寄载软件应用)。
根据寄载操作系统的类型及其在运行时间环境32内的实现方式的细节,寄载运行时间环境32可以包括一个或多个虚拟机或其他,如在本领域中常见的那样(根据本文的教导进行适配)。示出的寄载运行时间环境32旨在执行基于Android的软件应用34、36(然而,其他实施方式可以旨在执行为其他操作系统设计和构建的应用),并且通过非限制性实例,包括资源框架38、虚拟机(VM)40、事件处理器42以及运行时间库44,所有这些都通过非限制性实例并且所有这些都是在本领域已知的类型,根据本文的教导进行适配。
在本领域中已知的类型的受保护的内核空间内运行操作的意义上,示出的运行时间环境32不包括内核本身(例如,通常可能包含在基于Linux/Android的操作环境的运行时间环境内)。反而,一些这种操作(例如,通常可能包含在例如基于Linux/Android的操作环境的内核内的操作)在用户空间内执行。
通过实例,资源框架34、虚拟机(VM)36、事件处理器42、运行时间库44和/或运行时间环境32的其他元件依赖于那些内核空间操作,以将图形载入帧缓冲器中,用于在显示器上呈现。并非在寄载运行时间环境32的内核中执行,在示出的实施方式中,那些操作提高到用户空间,并且用于将这种图形载入“虚拟”帧缓冲器54中,该帧缓冲器(如下文所讨论的)与本机运行时间环境16以及在此处执行的应用(尤其是I/O代理应用50、52)共享。
通过将操作传递给本机操作系统14及其运行时间环境16,并且更广泛地说,传递否则将在运行时间环境32内并且具体而言例如由其内核执行的寄载软件应用34、36的执行所需要的功能,可以避免执行其他这种内核空间操作的执行。
在示出的实施方式中,例如,由与寄载软件应用34、36的本机软件应用代理46-52(在运行时间环境16内执行)通信和/或以其他方式依赖所述代理的资源框架34、虚拟机(VM)36、事件处理器42、运行时间库44和/或运行时间环境32的其他元件实现这种传递,以执行这种功能或其替换。
可以通过以下以及在本文中的其他地方的讨论,并且在下面标识的通过引用结合于此的申请,获得对以上内容的进一步理解。
本机和寄载软件应用安装
通过用于在这种类型的操作系统14的操作系统内安装应用程序的本领域的常见方式,本机软件应用(例如,15和18)安装(基于用户的指示或以其他方式)在装置10上,并且更尤其地,用于在本机运行时间环境16内执行。这种安装通常涉及本机操作系统14和执行对OS 14而言常见的类型的“安装程序”应用(未示出)的运行时间环境16的合作行动,并且通过本领域已知的常见方式(根据本文的教导进行适配),通常包括从(例如,从开发人员网站等下载的)应用打包文件中打开要安装的应用程序的可执行文件、图标文件、其他支持文件等,并且将这些储存到在装置10上的静态存储器(MEM)中的指定位置。这种应用打包文件在本文中称为“本机”应用打包文件。
在ACL 18的控制下,安装寄载软件应用34、36(基于用户的指示或以其他方式),用于在寄载运行时间环境32下执行。为此,ACL 18可以使用对于寄载操作系统而言常见的类型的安装程序应用,虽然如在本文中所讨论的进行了修改,以例如从应用打包文件中或以其他方式将要安装的应用程序的可执行文件、图标文件、其他支持文件等打开到在装置10上的静态存储器(MEM)中的合适位置,例如,由本机操作系统14规定的位置,然而,与寄载操作系统相一致,或以其他方式。这种应用打包文件在本文中称为“寄载”应用打包文件。
与其他本机软件应用(例如,15和18)不同,通过从ACL 18到本机操作系统14的请求,与由ACL 18进行的每个相应的寄载软件应用的安装相结合,安装作为寄载软件应用34、36的代理的本机软件应用46-52(如果有的话)。每个这种代理46-52由本机操作系统14通过常见方式安装,虽然是从由ACL 18的代理安装程序接口62生成的应用打包文件(或其他方式)。
代替相应的寄载软件应用34、36的可执行文件,那些打包文件可以包括“存根(stub)”可执行文件,其适合于
(ii)在本机操作系统14下并且尤其在本机运行时间环境16内执行,
(ii)实现分别由启动代理和IO代理实现的下面(以及在本文的其他地方)讨论的功能。
那些打包文件还可以包括与最初供应有用于相应的寄载软件应用34、36的应用打包文件(或者其他方式)的图标文件相同的或者作为其变体的图标文件。虽然在示出的实施方式中,两个代理可以与每个寄载软件应用相关联,但是仅仅一个图标与在例如图1A的图形桌面上显示的两个代理相关联。
多操作系统的移动和其他计算装置
计算装置10支持多个操作系统的应用的无缝执行,或者换言之,其合并了用户体验,使得在寄载运行时间环境内执行的应用对于用户而言犹如在本机操作系统14内执行一样。
因此,例如,向用户呈现表示寄载软件应用的执行的应用窗口,而不干扰状态栏,该状态栏形成“桌面”的一部分,该“桌面”由本机操作系统14和/或本机运行时间环境16作为总体图形用户接口的一部分而生成,因此,使得寄载软件应用显示为与本机软件应用相似。这通过实例在图1A-1C中示出。
参考图1A,本机操作系统14驱动计算装置在显示器/触摸屏24上显示具有图标58的图形桌面,图标58表示可以由装置10的用户选择用于启动或其他激活的应用。在示出的实施方式中,这些可以是本机软件应用(例如,15)和寄载软件应用(例如,34、36)。
该桌面显示器包括在本领域中常见的类型的状态栏56,并且尤其地,对于本机操作系统14而言是常见的(虽然一些实施方式可以在这方面改变)。在此处,状态栏56指示当前日期/时间、载波导电性信号强度(例如,Wi-Fi、蜂窝等)、运行中的应用程序等,然而,在其他实施方式中,可以指示其他内容。
参考图1B,在本机软件应用(例如,15)由操作系统14和/或运行时间环境16响应于用户选择而激活时,由本机运行时间环境16为了在屏幕24上呈现而(反映应用的执行)为其生成的应用窗口60与状态栏56一起占据该屏幕,在此处,尤其是状态栏56在屏幕的顶部部分而应用窗口60在剩余部分。换言之,操作系统14和/或运行时间环境16不使用应用窗口60覆盖状态栏56。(当然,要理解的是,这是操作系统14和/或运行时间环境16的默认操作模式,并且在其他模式中,例如,所谓的“全屏”模式,应用窗口60可以占据整个屏幕。)
参考图1C,同样,在示出的实施方式中,在激活寄载软件应用34、36时,与本机软件应用一样,在屏幕24上呈现为其生成的应用窗口(反映在寄载运行时间环境32内的执行),即,呈现该窗口,而不覆盖状态栏56(例如,至少在默认模式中显示时)。
合并用户体验使得在寄载运行时间环境内执行的应用对于用户而言犹如它们在本机操作系统14内执行一样的示出的计算装置10的另一个实例是使用共同的通知机制,例如,本机操作系统14和/或运行时间环境16的通知机制,如在下面确定的通过引用结合于此的申请中所讨论的。
另一个实例是响应于用户对通知的回复(或者其他方式)来对运行软件应用的一致激活,无论是本机应用(例如,15)还是寄载软件应用34、36,再次,如在下面提到的通过引用结合于此的申请中所确定的。
另一个实例是在寄载软件应用与本机软件应用之间使用一致主题化,如上所述。
通过以下讨论等,对于在本领域的技术人员,其他实例显而易见。
在多操作系统移动和其他计算装置中的寄载应用显示
参考图4,可以领会装置10的操作在这些方面的进一步理解,该图描述了在基于与在本机运行时间环境16内执行的该应用程序的启动代理46(在此处,标记为“App#1启动存根”)的用户交互在寄载运行时间环境32内启动示例性寄载软件应用34(在此处,标记为“App 1”),通过该应用程序的IO代理50(在此处,标记为“App#1IO存根”)显示表示寄载软件应用34的操作的应用窗口,并且将用户输入从该代理50传输回应用34时上述元件的交互。
在示出的步骤64之前,本机运行时间环境16(和/或本机操作系统14)在上述图形桌面(例如,参考图1A)上呈现图标58,表示装置10的用户可以选择本机和寄载软件应用以启动或进行其他激活。如上所述,与相应应用程序的安装相结合,将那些图标提供给本机运行时间环境16和/或本机操作系统14。
根据这种类型的本机操作系统14的操作系统的惯例,在用户为激活而选择其时,作为启动代理46的本机软件应用由本机运行时间环境16和/或本机操作系统14启动。参考步骤64。代理50可以同时由本机运行时间环境16和/或本机操作系统14启动;可替换地,可以由代理46在其启动时启动代理50。
在启动时(或来自本机运行时间环境16和/或本机操作系统14的激活的其他通知),代理46实现相应的寄载软件应用34的激活。参考步骤66。
在示出的实施方式中,代理46通过将启动消息传输给事件处理器42来这样做,该事件处理器42形成寄载运行时间环境32的一部分并且由一个或多个寄载软件应用34、36共有(例如,因为其是系统级事件的共同的共享接收者,例如,到硬件接口的用户输入,将这些事件分发给在寄载运行时间环境32内执行的合适的寄载应用或其他软件或者作为寄载操作系统的一部分来提供的合适的寄载应用或其他软件)。可以由代理46使用用于进程间通信(IPC)的任何传统机制(例如,API、邮箱等)传送给事件处理器42的启动消息包括代理46的标识符和/或其相应的寄载软件应用34以及寄载操作系统和/或寄载运行时间环境32实现寄载软件应用的启动所需要的任何其他信息。
在步骤68中,事件处理器42以寄载操作系统和/或寄载运行时间环境32所要求的常见方式启动寄载软件应用34。更简单地说,启动该应用34,犹如由装置10的用户直接选择那样。
在启动寄载软件应用34之后,事件处理器42使用IPC,例如,如上所述,来用信号通知寄载软件应用34已经开始执行,并且更适当地,确保通过本机运行时间环境16启动(如果还未实现)和激活代理应用50。参考步骤70。
在启动之后,寄载软件应用34在寄载运行时间环境32内通过常见的方式运行,例如,给寄载资源框架38、寄载事件处理器42以及运行时间库44进行这种调用,所有这些都通过非限制性实例,如果安装在执行这种类型的寄载操作系统的单个操作系统的装置上,则会进行这种调用。其优点在于,不需要开发人员或其发布者特别重新编码(即,“转移”)寄载软件应用34以便可以在装置10的多操作系统环境中运行。
寄载资源框架38、寄载事件处理器42、运行时间库44以及寄载运行时间环境32的其他元件通过这种类型的寄载操作系统的操作系统的领域中已知的常见方式,响应于这种调用(所有这些均根据本文的教导进行适配)。因此,例如,如上所述,反而在用户空间内执行可能通常由寄载运行时间环境32在特权内核空间内执行的类型的一些这种操作(例如,用于加载帧缓冲器的操作)。而且,通过进一步实例,其他这种操作(或者更广泛地说,功能)被传递给本机操作系统14及其运行时间环境16,例如,通过代理46-52。
通过实例,代替使用限定表示寄载软件应用34的执行的应用窗口的图形加载实际帧缓冲器,寄载运行时间环境32使用这种图形加载虚拟帧缓冲器54。参考步骤72。寄载运行时间环境32通过使用窗口子系统来实现这一点,该窗口子系统形成寄载运行时间环境32的一部分并且由一个或多个寄载软件应用34、36共有(例如,因为其是寄载软件应用用于生成向装置10的用户显示的应用窗口的共有的共享系统)。
寄载软件应用34的IO代理50实现在屏幕24上呈现由寄载运行时间环境32为应用34生成的应用窗口,例如,通过在图1C示出的并且上面与其结合所讨论的方式。参考步骤74。通过将限定该应用窗口的图形从虚拟帧缓冲器54传输给本机帧缓冲器26,IO代理50这样做,上述传输例如是使用由本机运行时间环境16所提供的为了这种目的的API或者其他方式。虽然在一些实施方式中,寄载运行时间环境32使用消息来警告IO代理50需要实现这种传输,例如,在寄载运行时间环境32的窗口子系统已经生成了寄载软件应用34的更新的应用窗口时,在寄载软件应用34变成在寄载运行时间环境32内的在运行中(或前台)应用时等,但在其他实施方式中,IO代理50定期或者以其他方式自己实现这种传输。
在多操作系统移动和其他计算装置中的用户/寄载应用交互
IO代理50使用与上面结合步骤64-68讨论的内容并行的机制,以便传输用户对装置10并且具体而言对显示器/触摸屏24、键盘、轨迹球、触摸棒、其他用户输入装置进行的轻击和其他输入。在这方面,共同的事件处理器(未示出)或本机运行时间环境16的其他功能通知在其内执行的应用,包括通过触摸屏24或那些其他输入装置相对于其进行的用户输入的IO代理50、52。通过在这种类型的本机操作系统14的操作系统的领域中已知的常见方式,进行这种通知(根据本文的教导进行适配)。
在IO代理50接收到这种通知时,通过事件处理器42,例如以与上面结合步骤66讨论的方式相似的方式,将关于其的信息传输给其对应的寄载软件应用34。参考步骤76。可以由IO代理50使用任何传统的IPC机制传送给事件处理器42的该信息可以包括IO代理50的标识符和/或其对应的寄载软件应用34、对其进行输入的装置的标识符、输入的类型以及与其相关的信息(例如,位置、时间、触摸的持续时间和类型、轻击的键、在指针上按压等)。以寄载操作系统和/或寄载运行时间环境32所要求的常见方式,该信息由事件处理器42接收并且应用于对应的寄载软件应用34,例如,犹如对寄载软件应用34直接进行触摸或其他用户输入一样。参考步骤78。
进程间俘获
如上所述,寄载软件应用34给寄载资源框架38、寄载事件处理器42以及运行时间库44等进行这种调用,如果安装在执行这种类型的寄载操作系统的单个操作系统的装置上,则(应用34)会进行这种调用。而且,如图5所示,应用34包括分别引用这种类型的OOP对象的数据成员和/或方法成员35A-35C的指令34A-34C,如果安装在这种装置上,则(应用34)会引用所述数据成员和/或方法成员。那些引用的成员35A-35C可以用于访问位于应用34等的外部(即,并非本地)的数据、功能或服务。在此处,为了方便,显示为本地数据和功能。
应用34可以进行这种调用并且引用这种对象和/或成员,如同其被安装在执行这种类型的寄载操作系统的单个操作系统的装置上将会做的那样,其优点在于,不需要开发人员或其发布者特别重新编码(即,“转移”)寄载软件应用34以便可以在装置10的多操作系统环境中运行。
寄载资源框架38、寄载事件处理器42以及运行时间库44以这种类型的寄载操作系统的操作系统已知的常见方式,通过应用34响应于调用(根据本文的教导进行适配)。
因此,例如,如上所述,调整框架38、处理器42以及库44,使得这种操作系统可能通常经由一些机制执行的一些操作被传递给本机操作系统14及其运行时间环境16,例如,通过代理46-52或其他方式,以用于由其他机制(例如,与用于服务本机软件应用的机制一致的机制)执行。而且,如上所述,反而在用户空间内执行可能通常在特权内核空间内执行的类型的一些操作(例如,用于加载帧缓冲器的操作),再次通过非限制性实例。
由于(a)执行应用34,作为与寄载资源框架38、寄载事件处理器42、运行时间库44和/或其(应用34)调用的其他进程外代码,以及(b)因此,可以通过在本领域中已知的常见方式拦截或“俘获”那些调用(根据本文的教导进行适配),所以促成了由寄载软件应用34通过这种替代机制来处理这种调用。
然而,由于在进程间发生由引用对象的数据和/或方法成员35A-35C的应用34执行指令34A-34C,因此所示出的装置10通常不能依赖于寄载资源框架38、寄载事件处理器42、运行时间库44和/或其他进程外代码来俘获那些指令。为了这样做,示出的装置10通过访问数据和/或执行代码来响应于选择的这种指令,所述代码并非是由那些指令规定的。
更具体而言,在示出的实施方式中,通过执行使用不同于由指令34A-34C引用的类和成员所指定的数据和/或代码(在后文中分别称为“代替成员35A'-35C'”)的指令34A-34C,装置10响应于引用由面向对象编程类(“引用类”)37限定的对象的至少所选成员(“引用成员”)的在应用34中的指令34A-34C。在示出的实施方式中,通过使用应用34加载代替成员35A'-35C'(代替引用成员35A-35C),装置10实现这一点;这在加载时进行,同时,寄载运行时间环境32被初始化,例如,在启动本机应用18(例如,ACL)和/或装置10时。在其他实施方式中,可以在应用34安装和/或执行时间进行。
虽然为了方便起见,在图中示出并且在此处讨论仅仅一个引用类37,但是要理解的是,其教导内容也适用于具有多个引用类的实例。
通过针对引用所选的引用成员35A-35C的应用34的指令来代替并且访问/执行代替成员35A'-35C',例如如上所述,有效地说,装置10可以拦截或俘获应用34对那些引用成员35A-35C的使用。例如,这允许装置10促使应用34使用与通过引用成员35A-35C本身使用的机制不同的机制来提供对数据、功能和/或服务的访问。
通过非限制性实例,引用类37可以是促进寄载操作系统的版本的企业或其他实体/组织刊发的一个或多个类。而且,通过非限制性实例,所选的引用成员35A-35C可以是访问并非位于执行应用34的进程本地的数据、功能和/或服务、和/或该或另一个企业、实体或组织的专有数据、功能和/或服务的该类的那些成员。实例包括与映射、导航、广告、电子钱包、账户授权、电话、相机、地址/联系方式、文档预览、以及音乐/多媒体播放服务有关的数据、功能和/或服务,均通过非限制性实例。
代替成员35A'-35C'可以包括适合于通过应用34加载的任何数据和/或代码,例如,在初始化寄载运行时间环境32时(例如,在启动本机应用18和/装置10时),在应用34安装时间,在装置10的用户调用该应用时等。虽然基于代码的代替成员可以包括尽可能少的NOOP(无操作)操作,但是例如,更通常地,它们提供与它们所代替的引用成员相似的功能(从应用34的角度来看),但是为其使用不同的机制。
通过实例,在引用成员(例如,35A)是寄载应用34的对象(从类37中实例化)的方法成员的实例中(该对象调用第三方(促进寄载操作系统的版本的企业或其他实体/组织等)的专用的基于网络的映射服务100),对应的代替成员(例如,35A')可以调用例如另一方的替代的映射服务102,或者可替换地或者此外,可以调用位于装置10本地的并且更具体而言位于寄载运行时间环境32、框架38、寄载处理器42、寄载库44、本机运行时间环境16、本机运行时间库20等本地的功能和/或服务(未示出)。
通过进一步的实例,在引用成员(例如,35B)是寄载应用34的对象(从类37中实例化)的数据或方法成员的实例中(该对象部分或完全无效),对应的代替成员(例如,35B')可以将必要的数据和/或功能/服务提供给使用位于装置10本地或非本地的可替换的并且可操作的机制的应用34,并且尤其是位于寄载运行时间环境32、框架38、寄载处理器42、寄载库44、本机运行时间环境16、本机运行时间库20等本地或非本地的可替换的并且可操作的机制的应用34。
根据本发明的一些方面,上述不同的机制可以是不同的网络(或其他外部)服务。因此,例如,引用成员可以是由引用类限定的方法成员,该类的对象实例使用第一外部网络服务来支持第一寄载软件应用所需要的映射、导航、广告、电子钱包、账户授权和/或其他服务,然而,代替成员是从使用第二不同的网络服务来支持这种服务的替代类中实例化的对象的方法成员。
代替作为其相应类的数据成员的引用成员的由装置10执行的代替成员35A'-35C'优选地允许通过与对应的引用成员的格式相同的格式储存和/或检索值。
同样,提供或调用功能或服务的代替成员35A'-35C'接受输入参数,并且通过应用34期望的形式返回输出参数。由于其使用的不同机制(相对于代替其执行的引用成员)本身不必通过那些相同的格式接受和/或返回参数,所以在一些实施方式中,代替成员包括用于任何需要的转换、格式变换等的代码。
如上所述,在示出的实施方式中,例如,在初始化寄载运行时间环境32时(例如,在启动本机应用18和/装置10时),在应用34安装和/或执行时间,对代替成员的引用代替在寄载软件应用34中的对应的引用成员。这在图5指示,其中,对代替成员35A'的引用代替由指令34A对引用成员35A做出的引用;对代替成员35B'的引用代替由指令34B对引用成员35B做出的引用;并且对代替成员35C'的引用代替由指令34C对引用成员35C做出的引用。
在初始化寄载运行时间环境32期间实现这种代替的实例中,支持那些环境的本机应用18(例如,ACL)使用在这种类型的寄载系统的操作系统中通常使用的类型的类加载器104,虽然对引用代替类进行了修改。在安装时实现这种代替的实例中,寄载操作系统的安装程序应用可以调用通常结合寄载应用安装使用的类型的加载器104(虽然根据本文的教导进行适配),使得在寄载软件应用可执行文件中的符号引用解析成代替成员,而非引用成员。同样,在执行时实现这种代替的实例中,事件处理器42可以实现通常结合寄载应用调用使用的类型的这种加载器104的这种调用(再次,根据本文的教导进行适配)。在所有实例中,例如,代替成员106的代码可以与寄载软件应用可执行文件108、库例程110等一起提供给类加载器104用于加载,所有这些都通过在本领域中已知的常见方式。
参考于2013年10月23日提交的美国专利申请序号14/061,288(现在是美国专利公开号US 2014-0115606)以及于2013年10月18日提交的美国专利申请序号61/892,896(发明名称均为“MULTI-PLATFORM MOBILE AND OTHER COMPUTING DEVICES AND METHODS”),可以实现对根据本发明的系统的操作的更完整的理解,这两个专利的教导内容通过引用结合于此。
结论
上面描述了并且在附图中示出了满足期望目标的装置和方法等。本领域的技术人员会理解的是,在此处描述和示出的实施方式仅仅是本发明的示例,包含对这些实施方式的变化的其他实施方式也均在本发明的范围内。
Claims (7)
1.一种计算装置,包括:
中央处理单元,
所述中央处理单元执行本机操作系统,所述本机操作系统包括一个或多个本机运行时间环境,其中,一个或多个本机软件应用在所述一个或多个本机运行时间环境内执行,其中,每个这种本机软件应用具有用于在所述本机操作系统下执行的指令,
一个或多个寄载运行时间环境,其在所述一个或多个本机运行时间环境内执行,其中,每个寄载运行时间环境执行寄载软件应用,所述寄载软件应用具有用于在与所述本机操作系统不同的寄载操作系统下执行的指令,
在所述寄载运行时间环境的第一进程内执行的第一寄载软件应用包括引用由面向对象编程(OOP)类限定的对象的成员的指令,其中,所述面向对象编程(OOP)类被称作为引用类,由所述面向对象编程(OOP)类限定的对象的所述成员被称作为引用成员,所述引用成员是方法成员和数据成员中的任一个,
所述第一进程执行使用不同于由所述引用类所指定的作为引用成员的数据和/或代码的指令,其中,由所述指令所使用而不同于由所述引用类所指定的数据和/或代码被称作为代替成员,
其中所述引用成员和代替成员提供相似的功能,然而,为其使用不同的机制;
其中所述不同的机制是位于装置外部的不同服务;
其中所述不同的机制是不同的网络服务;
其中所述引用成员是由第一类限定的方法成员,该方法成员使用第一外部网络服务来支持所述第一寄载软件应用所需要的映射、导航、广告、电子钱包、账户授权和/或其他服务中的任一个。
2.根据权利要求1所述的计算装置,其中,所述代替成员包括使用第二不同的网络服务来支持上述服务的代码。
3.根据权利要求1所述的计算装置,其中,那些不同的机制是位于所述计算装置和/或其上的运行时间环境本地的不同服务。
4.根据权利要求3所述的计算装置,其中,
所述引用成员是由第一类限定的方法成员,该方法成员使用位于寄载运行时间环境本地的电话、相机、地址/联系方式、文档预览、音乐/多媒体播放或其他服务,并且
所述代替成员包括使用本机运行时间环境和/或本机操作系统的服务来支持那些上述服务的代码。
5.根据权利要求4所述的计算装置,其中,在所述装置上加载第一软件应用期间,将在第一软件应用中对所述引用成员和/或引用类的引用解析至代替成员。
6.一种数字数据处理方法,包括以下步骤:
在计算装置上执行本机操作系统,所述本机操作系统包括一个或多个本机运行时间环境,其中,一个或多个本机软件应用在所述一个或多个本机运行时间环境内执行,其中,每个这种本机软件应用具有用于在所述本机操作系统下执行的指令,
在所述一个或多个本机运行时间环境内执行一个或多个寄载运行时间环境,其中,每个寄载运行时间环境执行寄载软件应用,所述寄载软件应用具有用于在与所述本机操作系统不同的寄载操作系统下执行的指令,
在所述寄载运行时间环境的第一进程内执行第一寄载软件应用,所述第一寄载软件应用包括引用由面向对象编程(OOP)类限定的对象的成员的指令,其中,所述面向对象编程(OOP)类被称作为引用类,由所述面向对象编程(OOP)类限定的对象的所述成员被称作为引用成员,所述引用成员是方法成员和数据成员中的任一个,
在所述第一进程内执行使用不同于由所述引用类所指定的作为引用成员的数据和/或代码的指令,其中,由所述指令所使用而不同于由所述引用类所指定的数据和/或代码被称作为代替成员,
其中所述引用成员和代替成员提供相似的功能,然而,为其使用不同的机制;
其中所述不同的机制是位于装置外部的不同服务;
其中所述不同的机制是不同的网络服务;
其中所述引用成员是由第一类限定的方法成员,该方法成员使用第一外部网络服务来支持所述第一寄载软件应用所需要的映射、导航、广告、电子钱包、账户授权和/或其他服务中的任一个。
7.根据权利要求6所述的方法,包括使用任何类加载器,将对代替成员的引用代入所述第一寄载软件应用内。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461945534P | 2014-02-27 | 2014-02-27 | |
US61/945534 | 2014-02-27 | ||
PCT/US2014/061165 WO2015130349A1 (en) | 2014-02-27 | 2014-10-17 | In-process trapping for service substitution in hosted applicaitons executing on mobile devices with multi operating system environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106233226A CN106233226A (zh) | 2016-12-14 |
CN106233226B true CN106233226B (zh) | 2020-01-10 |
Family
ID=53882286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480078060.3A Active CN106233226B (zh) | 2014-02-27 | 2014-10-17 | 在移动装置上执行的寄载应用内的服务代替的进程内俘获 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9658870B2 (zh) |
EP (1) | EP3111296B1 (zh) |
KR (1) | KR20160130785A (zh) |
CN (1) | CN106233226B (zh) |
WO (1) | WO2015130349A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009151938A1 (en) | 2008-05-27 | 2009-12-17 | Springseal Inc. | Pipe coupling assembly |
US9900302B2 (en) * | 2016-06-22 | 2018-02-20 | FinancialForce.com, Inc. | Seamless authentication for an application development platform |
US10880272B2 (en) * | 2017-04-20 | 2020-12-29 | Wyse Technology L.L.C. | Secure software client |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103430132A (zh) * | 2010-10-01 | 2013-12-04 | Flex Electronics ID Co.,Ltd. | 双显示区通信设备中的模态 |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673403A (en) | 1992-11-13 | 1997-09-30 | International Business Machines Corporation | Method and system for displaying applications of different operating systems on a single system using the user interface of the different operating systems |
US5377350A (en) * | 1993-04-30 | 1994-12-27 | International Business Machines Corporation | System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages |
US7080127B1 (en) | 1996-03-06 | 2006-07-18 | Hickman Paul L | Method and apparatus for computing within a wide area network |
US6063128A (en) | 1996-03-06 | 2000-05-16 | Bentley Systems, Incorporated | Object-oriented computerized modeling system |
US7266817B1 (en) | 2000-12-21 | 2007-09-04 | Emc Corporation | Method and system for creating packages for multiple platforms |
US8726294B2 (en) * | 2010-10-01 | 2014-05-13 | Z124 | Cross-environment communication using application space API |
US20080313282A1 (en) | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
US7546607B2 (en) | 2002-11-19 | 2009-06-09 | Microsoft Corporation | Native code exposing virtual machine managed object |
US7424710B1 (en) | 2002-12-18 | 2008-09-09 | Vmware, Inc. | TCP/IP offloading for virtual machines |
US7170526B1 (en) | 2004-01-26 | 2007-01-30 | Sun Microsystems, Inc. | Method and apparatus for redirecting the output of direct rendering graphics calls |
US7996785B2 (en) | 2004-06-30 | 2011-08-09 | Microsoft Corporation | Systems and methods for integrating application windows in a virtual machine environment |
US8972977B2 (en) | 2004-06-30 | 2015-03-03 | Microsoft Technology Licensing, Llc | Systems and methods for providing seamless software compatibility using virtual machines |
US7912863B1 (en) | 2004-07-30 | 2011-03-22 | Microsoft Corporation | Compositional lifting of operations over structural types |
US8274518B2 (en) | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
CA2605120C (en) * | 2005-04-18 | 2012-08-21 | Research In Motion Limited | Method and system for hosting and executing a component application |
US20060294515A1 (en) | 2005-06-23 | 2006-12-28 | International Business Machines Corporation | Common operating system install method |
EP1932141A4 (en) | 2005-09-13 | 2009-08-19 | Spacetime3D Inc | SYSTEM AND METHOD FOR FORMING A THREE-DIMENSIONAL USER GRAPHIC INTERFACE |
US7432934B2 (en) | 2005-10-19 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | System and method for display sharing |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US7941813B1 (en) | 2006-02-17 | 2011-05-10 | Parallels Holdings, Ltd. | System and method for using virtual machine for driver installation sandbox |
WO2007115425A1 (en) * | 2006-03-30 | 2007-10-18 | Intel Corporation | Method and apparatus for supporting heterogeneous virtualization |
US8387048B1 (en) | 2006-04-25 | 2013-02-26 | Parallels IP Holdings GmbH | Seamless integration, migration and installation of non-native application into native operating system |
US8878833B2 (en) | 2006-08-16 | 2014-11-04 | Barco, Inc. | Systems, methods, and apparatus for recording of graphical display |
US8629814B2 (en) | 2006-09-14 | 2014-01-14 | Quickbiz Holdings Limited | Controlling complementary bistable and refresh-based displays |
US8949295B2 (en) * | 2006-09-21 | 2015-02-03 | Vmware, Inc. | Cooperative memory resource management via application-level balloon |
US8131986B2 (en) | 2006-09-29 | 2012-03-06 | Lenovo (Singapore) Pte. Ltd. | System and method for boot loading of programs within a host operating environment having one or more linked guest operating systems |
US9183011B2 (en) * | 2006-10-31 | 2015-11-10 | Oracle America Inc. | Method and system for runtime environment emulation |
US8185872B2 (en) | 2006-11-27 | 2012-05-22 | Red Hat, Inc. | Cross-platform software package generation |
US8875159B1 (en) | 2006-12-12 | 2014-10-28 | Oracle America, Inc. | System for defining non-native operating environments |
US8065687B2 (en) | 2007-01-05 | 2011-11-22 | Moka5, Inc. | Bypass virtualization |
US20080201705A1 (en) | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
US8856782B2 (en) | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
US8166492B2 (en) | 2007-04-10 | 2012-04-24 | Microsoft Corporation | Application compatibility using a hybrid environment |
US20090063687A1 (en) | 2007-08-28 | 2009-03-05 | Red Hat, Inc. | Hybrid connection model |
US8887158B2 (en) * | 2008-03-07 | 2014-11-11 | Sap Se | Dynamic cluster expansion through virtualization-based live cloning |
US20100107154A1 (en) | 2008-10-16 | 2010-04-29 | Deepak Brahmavar | Method and system for installing an operating system via a network |
US8510735B2 (en) | 2009-02-11 | 2013-08-13 | International Business Machines Corporation | Runtime environment for virtualizing information technology appliances |
US9766911B2 (en) | 2009-04-24 | 2017-09-19 | Oracle America, Inc. | Support for a non-native application |
US9092910B2 (en) | 2009-06-01 | 2015-07-28 | Sony Computer Entertainment America Llc | Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications |
US8544010B2 (en) | 2009-09-18 | 2013-09-24 | Vmware, Inc. | Providing notification to speculatively waking up target virtual machine for an I/O event using multiple virtual machines and processors |
CN102053871B (zh) | 2009-10-28 | 2013-03-13 | 中国移动通信集团公司 | 一种应用程序图像的显示方法和装置 |
US20110270922A1 (en) | 2010-04-30 | 2011-11-03 | American Teleconferencing Services Ltd. | Managing participants in a conference via a conference user interface |
US20110276621A1 (en) | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Operating system and application virtualization for application execution |
US9244700B2 (en) | 2010-05-09 | 2016-01-26 | Citrix Systems, Inc. | Methods and systems for delivering applications from a desktop operating system |
US20110314399A1 (en) | 2010-06-18 | 2011-12-22 | Microsoft Corporation | Windowless runtime control of dynamic input device |
US8756488B2 (en) | 2010-06-18 | 2014-06-17 | Sweetlabs, Inc. | Systems and methods for integration of an application runtime environment into a user computing environment |
US20120011354A1 (en) | 2010-07-02 | 2012-01-12 | Encryptakey, Inc. | Boot loading of secure operating system from external device |
WO2012044557A2 (en) | 2010-10-01 | 2012-04-05 | Imerj, Llc | Auto-configuration of a docked system in a multi-os environment |
EP2625591A4 (en) | 2010-10-05 | 2014-04-30 | Citrix Systems Inc | TOUCH SUPPORT FOR REMOTE APPLICATIONS |
US8554190B2 (en) | 2011-02-28 | 2013-10-08 | Unwired Nation, Inc. | Mobile application system |
US9495183B2 (en) * | 2011-05-16 | 2016-11-15 | Microsoft Technology Licensing, Llc | Instruction set emulation for guest operating systems |
US9047390B2 (en) | 2011-10-24 | 2015-06-02 | Microsoft Technology Licensing, Llc | Rendering hardware accelerated graphics in a web application |
US9146847B2 (en) * | 2011-12-14 | 2015-09-29 | Vmware, Inc. | Optimizing for page sharing in virtualized java virtual machines |
US9152548B2 (en) | 2012-01-17 | 2015-10-06 | Vmware, Inc. | Controlling access to a privileged resource in user-mode system level mobile virtualization using a ptrace () system call |
US8819648B2 (en) * | 2012-07-20 | 2014-08-26 | International Business Machines Corporation | Control flow management for execution of dynamically translated non-native code in a virtual hosting environment |
US20150193285A1 (en) | 2012-10-24 | 2015-07-09 | OpenMobile World Wide, Inc. | Hosted app integration services in multi-operating system mobile and other computing devices |
US20150193284A1 (en) | 2012-10-24 | 2015-07-09 | OpenMobile World Wide, Inc. | Host/hosted hybrid apps in multi-operating system mobile and other computing devices |
US20150193241A1 (en) | 2012-10-24 | 2015-07-09 | OpenMobile World Wide, Inc. | Multi-operating system mobile and other computing devices with proxy applications running under a browser |
US20140115606A1 (en) | 2012-10-24 | 2014-04-24 | OpenMobile World Wide, Inc. | Multi-platform mobile and other computing devices and methods |
US20150193904A1 (en) | 2012-10-24 | 2015-07-09 | OpenMobile World Wide, Inc. | Graphics acceleration for applications executing on mobile devices with multi-operating system environment |
US10514938B2 (en) * | 2012-12-18 | 2019-12-24 | Dynavisor, Inc. | Making direct calls to a native device driver of a hypervisor using dynamic device driver virtualization |
US9760389B2 (en) | 2013-03-15 | 2017-09-12 | Excalibur Ip, Llc | Activity initiated virtual machine migration |
US10067777B2 (en) * | 2014-09-18 | 2018-09-04 | Intel Corporation | Supporting multiple operating system environments in computing device without contents conversion |
-
2014
- 2014-10-17 CN CN201480078060.3A patent/CN106233226B/zh active Active
- 2014-10-17 US US14/516,899 patent/US9658870B2/en active Active
- 2014-10-17 WO PCT/US2014/061165 patent/WO2015130349A1/en active Application Filing
- 2014-10-17 KR KR1020167026551A patent/KR20160130785A/ko not_active Application Discontinuation
- 2014-10-17 EP EP14883605.9A patent/EP3111296B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103430132A (zh) * | 2010-10-01 | 2013-12-04 | Flex Electronics ID Co.,Ltd. | 双显示区通信设备中的模态 |
Also Published As
Publication number | Publication date |
---|---|
EP3111296B1 (en) | 2022-07-27 |
EP3111296A4 (en) | 2017-11-01 |
WO2015130349A1 (en) | 2015-09-03 |
CN106233226A (zh) | 2016-12-14 |
US20150242223A1 (en) | 2015-08-27 |
EP3111296A1 (en) | 2017-01-04 |
US9658870B2 (en) | 2017-05-23 |
KR20160130785A (ko) | 2016-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150193241A1 (en) | Multi-operating system mobile and other computing devices with proxy applications running under a browser | |
US8805947B1 (en) | Method and system for remote device access in virtual environment | |
US8484653B2 (en) | Mechanism for delayed hardware upgrades in virtualization systems | |
WO2016095383A1 (zh) | 一种实现应用调用的方法及虚拟机 | |
US20140115606A1 (en) | Multi-platform mobile and other computing devices and methods | |
US8924986B2 (en) | Methods, devices and computer program products for confluence of multiple operating systems | |
US20180357085A1 (en) | Method and apparatus for running android application on windows system | |
US20150193904A1 (en) | Graphics acceleration for applications executing on mobile devices with multi-operating system environment | |
US20150193285A1 (en) | Hosted app integration services in multi-operating system mobile and other computing devices | |
US11263058B2 (en) | Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty | |
US10101985B1 (en) | Scalable ecosystem for enterprise mobility | |
US20220365773A1 (en) | Run-Time Application Modification | |
US9703533B2 (en) | Application platform for designing and executing applications | |
US20180336345A1 (en) | Methods and apparatus for improving sandboxed code execution by caching container image templates | |
KR20180053358A (ko) | 컴퓨팅 장치에서의 애플리케이션 실행방법 | |
US20130145357A1 (en) | Integrating applications | |
US20170031680A1 (en) | Computer-implemented method and system for executing android apps natively on any environment | |
CN106233226B (zh) | 在移动装置上执行的寄载应用内的服务代替的进程内俘获 | |
US20160321116A1 (en) | Translating operating system processes | |
KR20120116771A (ko) | 단말의 다중 운영체제 구동장치 및 운영체제 전환방법 | |
US20150199210A1 (en) | Methods, Devices and Computer Readable Storage Devices for Confluence of Multiple Operating Systems | |
US20150193284A1 (en) | Host/hosted hybrid apps in multi-operating system mobile and other computing devices | |
WO2015163938A1 (en) | Hybrid installation application package files for multi-operating system environment | |
US10719603B2 (en) | Methods and apparatus for sandboxed code execution using containers | |
WO2015088646A1 (en) | Hosted app integration services in multi-operating systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190115 Address after: Babaduosisheng Michael Applicant after: Amberford Technology Co., Ltd. Address before: Massachusetts, USA Applicant before: OPENMOBILE WORLD WIDE INC. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |