首页 / 专利库 / 银行与财务事项 / 电子钱包 / 在移动装置上执行的寄载应用内的服务代替的进程内俘获

在移动装置上执行的寄载应用内的服务代替的进程内俘获

阅读:396发布:2020-05-12

专利汇可以提供在移动装置上执行的寄载应用内的服务代替的进程内俘获专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种计算装置,包括:中央处理单元,所述中央处理单元执行本机 操作系统 ,所述本机操作系统包括具有本机 软件 应用的本机运行时间环境。每个本机软件应用具有用于在本机操作系统下执行的指令。寄载运行时间环境在本机运行时间环境内执行,每个寄载运行时间环境执行寄载软件应用,所述寄载软件应用具有用于在与本机操作系统不同的寄载操作系统下执行的指令。作为所述寄载运行时间环境的第一 进程 执行的第一寄载软件应用包括引用由面向对象编程(OOP)类限定的对象的成员的指令。所述进程执行使用数据和/或代码的指令,该指令不同于由所述引用类规定为所述引用成员的指令。,下面是在移动装置上执行的寄载应用内的服务代替的进程内俘获专利的具体信息内容。

1.一种计算装置,包括:
中央处理单元,
所述中央处理单元执行本机操作系统,所述本机操作系统包括一个或多个本机运行时间环境,其中,一个或多个本机软件应用在所述一个或多个本机运行时间环境内执行,其中,每个这种本机软件应用具有用于在所述本机操作系统下执行的指令,一个或多个寄载运行时间环境,其在所述一个或多个本机运行时间环境内执行,其中,每个寄载运行时间环境执行寄载软件应用,所述寄载软件应用具有用于在与所述本机操作系统不同的寄载操作系统下执行的指令,
在所述寄载运行时间环境的第一进程内执行的第一寄载软件应用包括引用由面向对象编程(OOP)类限定的对象的成员的指令,其中,所述面向对象编程(OOP)类被称作为引用类,由所述面向对象编程(OOP)类限定的对象的所述成员被称作为引用成员,所述引用成员是方法成员和数据成员中的任一个,
所述第一进程执行使用不同于由所述引用类所指定的作为引用成员的数据和/或代码的指令,其中,由所述指令所使用而不同于由所述引用类所指定的数据和/或代码被称作为代替成员,
其中所述引用成员和代替成员提供相似的功能,然而,为其使用不同的机制;
其中所述不同的机制是位于装置外部的不同服务;
其中所述不同的机制是不同的网络服务;
其中所述引用成员是由第一类限定的方法成员,该方法成员使用第一外部网络服务来支持所述第一寄载软件应用所需要的映射、导航、广告、电子钱包、账户授权和/或其他服务中的任一个。
2.根据权利要求1所述的计算装置,其中,所述代替成员包括使用第二不同的网络服务来支持上述服务的代码。
3.根据权利要求1所述的计算装置,其中,那些不同的机制是位于所述计算装置和/或其上的运行时间环境本地的不同服务。
4.根据权利要求3所述的计算装置,其中,
所述引用成员是由第一类限定的方法成员,该方法成员使用位于寄载运行时间环境本地的电话、相机、地址/联系方式、文档预览、音乐/多媒体播放或其他服务,并且所述代替成员包括使用本机运行时间环境和/或本机操作系统的服务来支持那些上述服务的代码。
5.根据权利要求4所述的计算装置,其中,在所述装置上加载第一软件应用期间,将在第一软件应用中对所述引用成员和/或引用类的引用解析至代替成员。
6.一种数字数据处理方法,包括以下步骤:
在计算装置上执行本机操作系统,所述本机操作系统包括一个或多个本机运行时间环境,其中,一个或多个本机软件应用在所述一个或多个本机运行时间环境内执行,其中,每个这种本机软件应用具有用于在所述本机操作系统下执行的指令,
在所述一个或多个本机运行时间环境内执行一个或多个寄载运行时间环境,其中,每个寄载运行时间环境执行寄载软件应用,所述寄载软件应用具有用于在与所述本机操作系统不同的寄载操作系统下执行的指令,
在所述寄载运行时间环境的第一进程内执行第一寄载软件应用,所述第一寄载软件应用包括引用由面向对象编程(OOP)类限定的对象的成员的指令,其中,所述面向对象编程(OOP)类被称作为引用类,由所述面向对象编程(OOP)类限定的对象的所述成员被称作为引用成员,所述引用成员是方法成员和数据成员中的任一个,
在所述第一进程内执行使用不同于由所述引用类所指定的作为引用成员的数据和/或代码的指令,其中,由所述指令所使用而不同于由所述引用类所指定的数据和/或代码被称作为代替成员,
其中所述引用成员和代替成员提供相似的功能,然而,为其使用不同的机制;
其中所述不同的机制是位于装置外部的不同服务;
其中所述不同的机制是不同的网络服务;
其中所述引用成员是由第一类限定的方法成员,该方法成员使用第一外部网络服务来支持所述第一寄载软件应用所需要的映射、导航、广告、电子钱包、账户授权和/或其他服务中的任一个。
7.根据权利要求6所述的方法,包括使用任何类加载器,将对代替成员的引用代入所述第一寄载软件应用内。

说明书全文

在移动装置上执行的寄载应用内的服务代替的进程内俘获

[0001] 本申请要求于2014年2月27日提交的名称为IN-PROCESS TRAPPING FOR SERVICE SUBSTITUTION IN HOSTED APPLICATIONS EXECUTING ON MOBILE DEVICES WITH MULTI-OPERATING SYSTEM ENVIRONMENT的美国专利申请No.61/945,534的优先权权益,该案的教导内容通过引用结合于此。

技术领域

[0002] 本发明涉及数字数据处理,并且更具体而言,涉及用于在单个硬件/软件平台应用程序(“apps”)上执行的方法和设备,其中该单个硬件/软件平台应用程序为在多个不同的这种平台上执行而制造。本发明具有支持在用于智能移动装置的应用程序之间的跨平台兼容性的应用,该智能移动装置例如智能电话、平板电脑、机顶盒、连接的电视、车载信息娱乐系统、或机上娱乐系统等,这些均为非限制性实例。

背景技术

[0003] 根据分析,智能移动装置市场在过去一年增长了大约40%。这在很大程度上由销售运行开源Linux和Android操作系统的变体的装置引起。虽然这有利于市场,但是那些装置因为缺乏为其开发的应用程序的跨兼容性而受到影响。因此,例如,为运行Meego操作系统的移动装置开发的应用程序不能在执行Tizen或Android操作系统的装置上运行。在人们转向完全不同的系列的操作系统时,该问题当然是复杂的。例如,为Tizen开发的应用程序不能在运行WebOS或Windows OS等的装置上运行。
[0004] 这不仅对购买了缺乏与旧应用程序的兼容性的新移动装置的用户是个问题,而且对于因缺乏可用应用程序的大生态系统而阻碍其提供新硬件/软件平台的努的在供应链中的制造商、运送者等也是个问题。应用程序开发人员也经受市场上的分裂的影响,因为他们可能被迫将应用程序转移到各种平台,以便建立或保持产品可行性。
[0005] 解决跨兼容性问题的一些现有技术的努力具有有限的成功。例如,Acer的Aspire One支持双重启动模式:一种模式用于Windows OS,一种模式用于Android。然而,该装置不能在单个模式中为这两个操作系统运行应用程序。
[0006] 鉴于以上内容,本发明的一个目标在于,提供用于数字数据处理的改进的系统和方法。
[0007] 更尤其地,另一个目标在于,提供这种系统和方法,以支持在为在多个不同的硬件/软件平台上执行而制造的单个硬件/软件平台应用程序(“apps”)上进行执行。
[0008] 另一个目标在于,提供这种系统和方法,以支持在用于智能移动装置的应用程序之间的跨平台兼容性,该智能移动装置例如智能电话、平板电脑、机顶盒、连接的电视、车载信息娱乐系统、或机上娱乐系统等,这些均为非限制性实例。
[0009] 这些和其他目标在以下文本中以及在附图中显而易见。

发明内容

[0010] 以上内容在由本发明实现的目标之中,在一些方面,提供了一种计算装置,包括:中央处理单元,所述中央处理单元执行本机操作系统,所述本机操作系统包括一个或多个本机运行时间环境,其中,一个或多个本机软件应用在所述一个或多个本机运行时间环境内执行,其中,每个这种本机软件应用具有用于在本机操作系统下执行的指令。一个或多个寄载运行时间环境在一个或多个本机运行时间环境内执行,每个寄载运行时间环境执行寄载软件应用,所述寄载软件应用具有用于在与本机操作系统不同的寄载操作系统下执行的指令。
[0011] 在所述寄载运行时间环境的第一进程内执行的第一寄载软件应用包括引用由面向对象编程(OOP)类(“引用类”)限定的对象的成员(在后文中称为“引用成员”)的指令。所述进程执行使用不同于由所述引用类所指定的作为引用成员、数据和/或代码的指令(在后文中称为“代替成员”)。如在本文中所使用的,对象的“成员”是方法成员和数据成员中的任一个。
[0012] 本发明的相关方面提供一种计算装置,例如,如上所述,其中,所述引用成员和代替成员从第一软件应用程序的度来看提供相似的功能,然而,为其使用不同的机制。
[0013] 根据本发明的一些方面,那些不同的机制可以是不同的网络(或其他外部)服务。因此,例如,所述引用成员可以是由第一类限定的对象的方法成员,该方法成员使用第一外部网络服务来支持所述第一寄载软件应用所需要的映射、导航、广告、电子钱包、账户授权和/或其他服务中的任一个,然而,所述代替成员包括使用第二不同的网络服务来支持上述服务的代码。
[0014] 那些不同的机制还可以是不同的本机功能或服务。因此,例如,在所述引用成员使用位于寄载运行时间环境本地的电话、相机、地址/联系方式、文档预览、音乐/多媒体播放或其他功能/服务时,所述代替成员可以使用本机操作系统的相似功能/服务。
[0015] 本发明的其他相关方面提供了一种计算装置,例如,如上所述,其中,在所述装置上加载该软件应用期间,将在第一软件应用中对所述引用成员和/或引用类的引用解析至代替成员。
[0016] 本发明的进一步方面如上所述提供使用于在计算装置上执行第一软件应用的操作并行的方法。
[0017] 本发明的这些和其他方面在附图中以及在以下描述中显而易见。

附图说明

[0018] 下面参照附图,可以实现更完整地理解本发明,其中:
[0019] 图1A-1C描述了体现本发明的类型的计算装置;
[0020] 图2描述了在图1A-1C的装置中执行的类型的本机操作系统;
[0021] 图3描述了由用于在图1A-1C的装置中执行寄载软件应用的本机软件应用限定的一个或多个寄载运行时间环境;
[0022] 图4描述了在基于与在本机运行时间环境内执行的该应用程序的启动代理的用户交互启动示例性寄载软件应用,通过该应用程序的IO代理显示表示寄载软件应用的操作的应用窗口,并且将用户输入从该代理传输回寄载应用时元件的交互;以及
[0023] 图5描述了在根据本发明的系统中的寄载应用,其中,使用对代替成员的引用来代替引用对象的所选成员的指令。

具体实施方式

[0024] 架构
[0025] 图1A描述了体现本发明的类型的计算装置10。示出的装置10包括在市场上可购买到的类型的通常提供的类型的计算装置的中央处理单元(CPU)、输入/输出(I/O)、存储器(RAM)以及非易失性存储器(MEM)子部分,所有这些均根据本文的教导进行适配。在示出的实施方式中,装置10包括移动计算装置,例如智能电话或平板电脑,然而,在其他实施方式中,其可以包括其他计算装置(移动或其他形式),例如,仅举几例,机顶盒、连接的电视、车载信息娱乐系统、或机上娱乐系统。
[0026] 装置10可以通过网络(在此处,由“”12表示)以本领域中已知的常见方式永久地、间断地或者以其他方式连接至一个或多个其他计算装置、服务器或能够数字通信的其他设备(未示出),该网络可以包括互联网、城域网、广域网、局域网、卫星网络、蜂窝网络、点对点网络和/或一个或多个上述的组合,所有这些均根据本文的教导进行适配。
[0027] 装置10的CPU(例如,与I/O、RAM和/或MEM子部分相结合)执行在市场上可购买到的类型的本机操作系统14,所有这些均根据本文的教导进行适配。仅举几例,这种操作系统的实例包括Meego、Tizen、Android、WebOS以及Linux操作系统。更一般而言和/或此外,本机操作系统14可以是基于Linux的操作系统,例如,通过非限制性实例,基于Android的操作系统。
[0028] 本机运行时间环境
[0029] 图2描述了在图1A-1C的示出装置10上执行的类型的本机操作系统14。
[0030] 参考该图2,本机操作系统14限定在本领域已知的类型的一个或多个本机运行时间环境16(根据本文的教导进行适配),在该环境内,执行在本领域已知的类型的本机软件应用(根据本文的教导进行适配),即,具有用于在本机操作系统下执行的指令的应用。这种应用在图中标记为15、18以及46-52。如在此处以及本文中的别处所使用的,术语“应用程序”和“应用”可交换使用。
[0031] 根据本机操作系统14及其在装置10上的实现方式的细节,本机运行时间环境16可以包括一个或多个虚拟机或其他,如在本领域中常见的那样(根据本文的教导进行适配)。通过非限制性的实例,示出的本机运行时间环境16包括应用资源19和运行时间库20,均是在本领域中已知的类型,根据本文的教导进行适配。该运行时间环境16还包括在本领域中已知的类型的内核24,根据本文的教导进行适配。
[0032] 通过在本领域中常见的方式(根据本文的教导进行适配),内核24(或在可替换的实施方式的运行时间环境中提供的可替换的功能)尤其用作在CPU 12(更通常地,在其上执行的本机运行时间环境16内执行的本机应用)和与装置10成为一体或附接到装置10的硬件装置24-30之间的接口。这包括显示器/触摸屏24和通过本领域已知的常见方式(根据本文的教导进行适配)驱动在其上的显示器的缓冲器26。通过非限制性实例,这还可以包括键盘轨迹球、触摸棒、其他用户输入装置和/或在本领域中已知的类型的其他整体或外围装置。在以下讨论中,显示器/触摸屏24、帧缓冲器26、以及支持在装置10与其用户之间的交互的其他整体/外围装置被称为“硬件接口”,而无论其是否包括硬件、软件或其组合(更通常是这样)。
[0033] 在一个或多个本机运行时间环境16内执行的本机软件应用18(在此处无限制性地称为“应用兼容性层”或“ACL”)限定一个或多个寄载运行时间环境,寄载软件应用在该寄载运行时间环境内执行。每个这种寄载软件应用具有用于在与本机操作系统不同的寄载操作系统下执行的指令。
[0034] 本机软件应用46-52是寄载软件应用34、36的代理。尤其地,在一些实施方式中,在寄载运行时间环境32内执行的寄载软件应用可以具有在本机运行时间环境16内执行的多个对应的代理:启动代理和IO代理。在此处,为了说明的目的,寄载软件应用34显示为具有启动代理46和IO代理50。寄载软件应用36同样显示为具有启动代理48和IO代理52。虽然在示出的实施方式中使用启动和IO代理两者,但是在其他实施方式中,寄载软件应用可具有仅仅一种类型的对应代理(例如,IO或启动)等;并且在其他实施方式中,一个或多个寄载软件应用可以没有这种代理。
[0035] 寄载运行时间环境
[0036] 寄载操作系统可以是例如基于Linux的操作系统,例如,通过非限制性实例,基于Android的操作系统。本机操作系统14可以同样是例如基于Linux的操作系统和/或基于Android的操作系统,虽然是与寄载操作系统的种类不同的“种类”。通过更特别的实例,其中,本机操作系统14包括上述Tizen、WebOS、Linux操作系统中的一个(根据本文的教导进行适配),通过非限制性实例,寄载操作系统可以包括市场上可购买的Android操作系统(根据本文的教导进行适配)的“种类”,再次通过非限制性实例。
[0037] 图3描述了在根据本发明的装置10中的由本机软件应用18(或ACL)限定的用于执行寄载软件应用34、36的一个或多个寄载运行时间环境32。示出的寄载运行时间环境32是在本领域已知的类型(根据本文的教导进行适配),在该寄载运行时间环境内,构建并且旨在执行具有用于在寄载操作系统下执行的指令的软件应用(即,寄载软件应用)。
[0038] 根据寄载操作系统的类型及其在运行时间环境32内的实现方式的细节,寄载运行时间环境32可以包括一个或多个虚拟机或其他,如在本领域中常见的那样(根据本文的教导进行适配)。示出的寄载运行时间环境32旨在执行基于Android的软件应用34、36(然而,其他实施方式可以旨在执行为其他操作系统设计和构建的应用),并且通过非限制性实例,包括资源框架38、虚拟机(VM)40、事件处理器42以及运行时间库44,所有这些都通过非限制性实例并且所有这些都是在本领域已知的类型,根据本文的教导进行适配。
[0039] 在本领域中已知的类型的受保护的内核空间内运行操作的意义上,示出的运行时间环境32不包括内核本身(例如,通常可能包含在基于Linux/Android的操作环境的运行时间环境内)。反而,一些这种操作(例如,通常可能包含在例如基于Linux/Android的操作环境的内核内的操作)在用户空间内执行。
[0040] 通过实例,资源框架34、虚拟机(VM)36、事件处理器42、运行时间库44和/或运行时间环境32的其他元件依赖于那些内核空间操作,以将图形载入帧缓冲器中,用于在显示器上呈现。并非在寄载运行时间环境32的内核中执行,在示出的实施方式中,那些操作提高到用户空间,并且用于将这种图形载入“虚拟”帧缓冲器54中,该帧缓冲器(如下文所讨论的)与本机运行时间环境16以及在此处执行的应用(尤其是I/O代理应用50、52)共享。
[0041] 通过将操作传递给本机操作系统14及其运行时间环境16,并且更广泛地说,传递否则将在运行时间环境32内并且具体而言例如由其内核执行的寄载软件应用34、36的执行所需要的功能,可以避免执行其他这种内核空间操作的执行。
[0042] 在示出的实施方式中,例如,由与寄载软件应用34、36的本机软件应用代理46-52(在运行时间环境16内执行)通信和/或以其他方式依赖所述代理的资源框架34、虚拟机(VM)36、事件处理器42、运行时间库44和/或运行时间环境32的其他元件实现这种传递,以执行这种功能或其替换。
[0043] 可以通过以下以及在本文中的其他地方的讨论,并且在下面标识的通过引用结合于此的申请,获得对以上内容的进一步理解。
[0044] 本机和寄载软件应用安装
[0045] 通过用于在这种类型的操作系统14的操作系统内安装应用程序的本领域的常见方式,本机软件应用(例如,15和18)安装(基于用户的指示或以其他方式)在装置10上,并且更尤其地,用于在本机运行时间环境16内执行。这种安装通常涉及本机操作系统14和执行对OS 14而言常见的类型的“安装程序”应用(未示出)的运行时间环境16的合作行动,并且通过本领域已知的常见方式(根据本文的教导进行适配),通常包括从(例如,从开发人员网站等下载的)应用打包文件中打开要安装的应用程序的可执行文件、图标文件、其他支持文件等,并且将这些储存到在装置10上的静态存储器(MEM)中的指定位置。这种应用打包文件在本文中称为“本机”应用打包文件。
[0046] 在ACL 18的控制下,安装寄载软件应用34、36(基于用户的指示或以其他方式),用于在寄载运行时间环境32下执行。为此,ACL 18可以使用对于寄载操作系统而言常见的类型的安装程序应用,虽然如在本文中所讨论的进行了修改,以例如从应用打包文件中或以其他方式将要安装的应用程序的可执行文件、图标文件、其他支持文件等打开到在装置10上的静态存储器(MEM)中的合适位置,例如,由本机操作系统14规定的位置,然而,与寄载操作系统相一致,或以其他方式。这种应用打包文件在本文中称为“寄载”应用打包文件。
[0047] 与其他本机软件应用(例如,15和18)不同,通过从ACL 18到本机操作系统14的请求,与由ACL 18进行的每个相应的寄载软件应用的安装相结合,安装作为寄载软件应用34、36的代理的本机软件应用46-52(如果有的话)。每个这种代理46-52由本机操作系统14通过常见方式安装,虽然是从由ACL 18的代理安装程序接口62生成的应用打包文件(或其他方式)。
[0048] 代替相应的寄载软件应用34、36的可执行文件,那些打包文件可以包括“存根(stub)”可执行文件,其适合于
[0049] (ii)在本机操作系统14下并且尤其在本机运行时间环境16内执行,[0050] (ii)实现分别由启动代理和IO代理实现的下面(以及在本文的其他地方)讨论的功能。
[0051] 那些打包文件还可以包括与最初供应有用于相应的寄载软件应用34、36的应用打包文件(或者其他方式)的图标文件相同的或者作为其变体的图标文件。虽然在示出的实施方式中,两个代理可以与每个寄载软件应用相关联,但是仅仅一个图标与在例如图1A的图形桌面上显示的两个代理相关联。
[0052] 多操作系统的移动和其他计算装置
[0053] 计算装置10支持多个操作系统的应用的无缝执行,或者换言之,其合并了用户体验,使得在寄载运行时间环境内执行的应用对于用户而言犹如在本机操作系统14内执行一样。
[0054] 因此,例如,向用户呈现表示寄载软件应用的执行的应用窗口,而不干扰状态栏,该状态栏形成“桌面”的一部分,该“桌面”由本机操作系统14和/或本机运行时间环境16作为总体图形用户接口的一部分而生成,因此,使得寄载软件应用显示为与本机软件应用相似。这通过实例在图1A-1C中示出。
[0055] 参考图1A,本机操作系统14驱动计算装置在显示器/触摸屏24上显示具有图标58的图形桌面,图标58表示可以由装置10的用户选择用于启动或其他激活的应用。在示出的实施方式中,这些可以是本机软件应用(例如,15)和寄载软件应用(例如,34、36)。
[0056] 该桌面显示器包括在本领域中常见的类型的状态栏56,并且尤其地,对于本机操作系统14而言是常见的(虽然一些实施方式可以在这方面改变)。在此处,状态栏56指示当前日期/时间、载波导电性信号强度(例如,Wi-Fi、蜂窝等)、运行中的应用程序等,然而,在其他实施方式中,可以指示其他内容。
[0057] 参考图1B,在本机软件应用(例如,15)由操作系统14和/或运行时间环境16响应于用户选择而激活时,由本机运行时间环境16为了在屏幕24上呈现而(反映应用的执行)为其生成的应用窗口60与状态栏56一起占据该屏幕,在此处,尤其是状态栏56在屏幕的顶部部分而应用窗口60在剩余部分。换言之,操作系统14和/或运行时间环境16不使用应用窗口60覆盖状态栏56。(当然,要理解的是,这是操作系统14和/或运行时间环境16的默认操作模式,并且在其他模式中,例如,所谓的“全屏”模式,应用窗口60可以占据整个屏幕。)[0058] 参考图1C,同样,在示出的实施方式中,在激活寄载软件应用34、36时,与本机软件应用一样,在屏幕24上呈现为其生成的应用窗口(反映在寄载运行时间环境32内的执行),即,呈现该窗口,而不覆盖状态栏56(例如,至少在默认模式中显示时)。
[0059] 合并用户体验使得在寄载运行时间环境内执行的应用对于用户而言犹如它们在本机操作系统14内执行一样的示出的计算装置10的另一个实例是使用共同的通知机制,例如,本机操作系统14和/或运行时间环境16的通知机制,如在下面确定的通过引用结合于此的申请中所讨论的。
[0060] 另一个实例是响应于用户对通知的回复(或者其他方式)来对运行软件应用的一致激活,无论是本机应用(例如,15)还是寄载软件应用34、36,再次,如在下面提到的通过引用结合于此的申请中所确定的。
[0061] 另一个实例是在寄载软件应用与本机软件应用之间使用一致主题化,如上所述。
[0062] 通过以下讨论等,对于在本领域的技术人员,其他实例显而易见。
[0063] 在多操作系统移动和其他计算装置中的寄载应用显示
[0064] 参考图4,可以领会装置10的操作在这些方面的进一步理解,该图描述了在基于与在本机运行时间环境16内执行的该应用程序的启动代理46(在此处,标记为“App#1启动存根”)的用户交互在寄载运行时间环境32内启动示例性寄载软件应用34(在此处,标记为“App 1”),通过该应用程序的IO代理50(在此处,标记为“App#1IO存根”)显示表示寄载软件应用34的操作的应用窗口,并且将用户输入从该代理50传输回应用34时上述元件的交互。
[0065] 在示出的步骤64之前,本机运行时间环境16(和/或本机操作系统14)在上述图形桌面(例如,参考图1A)上呈现图标58,表示装置10的用户可以选择本机和寄载软件应用以启动或进行其他激活。如上所述,与相应应用程序的安装相结合,将那些图标提供给本机运行时间环境16和/或本机操作系统14。
[0066] 根据这种类型的本机操作系统14的操作系统的惯例,在用户为激活而选择其时,作为启动代理46的本机软件应用由本机运行时间环境16和/或本机操作系统14启动。参考步骤64。代理50可以同时由本机运行时间环境16和/或本机操作系统14启动;可替换地,可以由代理46在其启动时启动代理50。
[0067] 在启动时(或来自本机运行时间环境16和/或本机操作系统14的激活的其他通知),代理46实现相应的寄载软件应用34的激活。参考步骤66。
[0068] 在示出的实施方式中,代理46通过将启动消息传输给事件处理器42来这样做,该事件处理器42形成寄载运行时间环境32的一部分并且由一个或多个寄载软件应用34、36共有(例如,因为其是系统级事件的共同的共享接收者,例如,到硬件接口的用户输入,将这些事件分发给在寄载运行时间环境32内执行的合适的寄载应用或其他软件或者作为寄载操作系统的一部分来提供的合适的寄载应用或其他软件)。可以由代理46使用用于进程间通信(IPC)的任何传统机制(例如,API、邮箱等)传送给事件处理器42的启动消息包括代理46的标识符和/或其相应的寄载软件应用34以及寄载操作系统和/或寄载运行时间环境32实现寄载软件应用的启动所需要的任何其他信息。
[0069] 在步骤68中,事件处理器42以寄载操作系统和/或寄载运行时间环境32所要求的常见方式启动寄载软件应用34。更简单地说,启动该应用34,犹如由装置10的用户直接选择那样。
[0070] 在启动寄载软件应用34之后,事件处理器42使用IPC,例如,如上所述,来用信号通知寄载软件应用34已经开始执行,并且更适当地,确保通过本机运行时间环境16启动(如果还未实现)和激活代理应用50。参考步骤70。
[0071] 在启动之后,寄载软件应用34在寄载运行时间环境32内通过常见的方式运行,例如,给寄载资源框架38、寄载事件处理器42以及运行时间库44进行这种调用,所有这些都通过非限制性实例,如果安装在执行这种类型的寄载操作系统的单个操作系统的装置上,则会进行这种调用。其优点在于,不需要开发人员或其发布者特别重新编码(即,“转移”)寄载软件应用34以便可以在装置10的多操作系统环境中运行。
[0072] 寄载资源框架38、寄载事件处理器42、运行时间库44以及寄载运行时间环境32的其他元件通过这种类型的寄载操作系统的操作系统的领域中已知的常见方式,响应于这种调用(所有这些均根据本文的教导进行适配)。因此,例如,如上所述,反而在用户空间内执行可能通常由寄载运行时间环境32在特权内核空间内执行的类型的一些这种操作(例如,用于加载帧缓冲器的操作)。而且,通过进一步实例,其他这种操作(或者更广泛地说,功能)被传递给本机操作系统14及其运行时间环境16,例如,通过代理46-52。
[0073] 通过实例,代替使用限定表示寄载软件应用34的执行的应用窗口的图形加载实际帧缓冲器,寄载运行时间环境32使用这种图形加载虚拟帧缓冲器54。参考步骤72。寄载运行时间环境32通过使用窗口子系统来实现这一点,该窗口子系统形成寄载运行时间环境32的一部分并且由一个或多个寄载软件应用34、36共有(例如,因为其是寄载软件应用用于生成向装置10的用户显示的应用窗口的共有的共享系统)。
[0074] 寄载软件应用34的IO代理50实现在屏幕24上呈现由寄载运行时间环境32为应用34生成的应用窗口,例如,通过在图1C示出的并且上面与其结合所讨论的方式。参考步骤
74。通过将限定该应用窗口的图形从虚拟帧缓冲器54传输给本机帧缓冲器26,IO代理50这样做,上述传输例如是使用由本机运行时间环境16所提供的为了这种目的的API或者其他方式。虽然在一些实施方式中,寄载运行时间环境32使用消息来警告IO代理50需要实现这种传输,例如,在寄载运行时间环境32的窗口子系统已经生成了寄载软件应用34的更新的应用窗口时,在寄载软件应用34变成在寄载运行时间环境32内的在运行中(或前台)应用时等,但在其他实施方式中,IO代理50定期或者以其他方式自己实现这种传输。
[0075] 在多操作系统移动和其他计算装置中的用户/寄载应用交互
[0076] IO代理50使用与上面结合步骤64-68讨论的内容并行的机制,以便传输用户对装置10并且具体而言对显示器/触摸屏24、键盘、轨迹球、触摸棒、其他用户输入装置进行的轻击和其他输入。在这方面,共同的事件处理器(未示出)或本机运行时间环境16的其他功能通知在其内执行的应用,包括通过触摸屏24或那些其他输入装置相对于其进行的用户输入的IO代理50、52。通过在这种类型的本机操作系统14的操作系统的领域中已知的常见方式,进行这种通知(根据本文的教导进行适配)。
[0077] 在IO代理50接收到这种通知时,通过事件处理器42,例如以与上面结合步骤66讨论的方式相似的方式,将关于其的信息传输给其对应的寄载软件应用34。参考步骤76。可以由IO代理50使用任何传统的IPC机制传送给事件处理器42的该信息可以包括IO代理50的标识符和/或其对应的寄载软件应用34、对其进行输入的装置的标识符、输入的类型以及与其相关的信息(例如,位置、时间、触摸的持续时间和类型、轻击的键、在指针上按压等)。以寄载操作系统和/或寄载运行时间环境32所要求的常见方式,该信息由事件处理器42接收并且应用于对应的寄载软件应用34,例如,犹如对寄载软件应用34直接进行触摸或其他用户输入一样。参考步骤78。
[0078] 进程间俘获
[0079] 如上所述,寄载软件应用34给寄载资源框架38、寄载事件处理器42以及运行时间库44等进行这种调用,如果安装在执行这种类型的寄载操作系统的单个操作系统的装置上,则(应用34)会进行这种调用。而且,如图5所示,应用34包括分别引用这种类型的OOP对象的数据成员和/或方法成员35A-35C的指令34A-34C,如果安装在这种装置上,则(应用34)会引用所述数据成员和/或方法成员。那些引用的成员35A-35C可以用于访问位于应用34等的外部(即,并非本地)的数据、功能或服务。在此处,为了方便,显示为本地数据和功能。
[0080] 应用34可以进行这种调用并且引用这种对象和/或成员,如同其被安装在执行这种类型的寄载操作系统的单个操作系统的装置上将会做的那样,其优点在于,不需要开发人员或其发布者特别重新编码(即,“转移”)寄载软件应用34以便可以在装置10的多操作系统环境中运行。
[0081] 寄载资源框架38、寄载事件处理器42以及运行时间库44以这种类型的寄载操作系统的操作系统已知的常见方式,通过应用34响应于调用(根据本文的教导进行适配)。
[0082] 因此,例如,如上所述,调整框架38、处理器42以及库44,使得这种操作系统可能通常经由一些机制执行的一些操作被传递给本机操作系统14及其运行时间环境16,例如,通过代理46-52或其他方式,以用于由其他机制(例如,与用于服务本机软件应用的机制一致的机制)执行。而且,如上所述,反而在用户空间内执行可能通常在特权内核空间内执行的类型的一些操作(例如,用于加载帧缓冲器的操作),再次通过非限制性实例。
[0083] 由于(a)执行应用34,作为与寄载资源框架38、寄载事件处理器42、运行时间库44和/或其(应用34)调用的其他进程外代码,以及(b)因此,可以通过在本领域中已知的常见方式拦截或“俘获”那些调用(根据本文的教导进行适配),所以促成了由寄载软件应用34通过这种替代机制来处理这种调用。
[0084] 然而,由于在进程间发生由引用对象的数据和/或方法成员35A-35C的应用34执行指令34A-34C,因此所示出的装置10通常不能依赖于寄载资源框架38、寄载事件处理器42、运行时间库44和/或其他进程外代码来俘获那些指令。为了这样做,示出的装置10通过访问数据和/或执行代码来响应于选择的这种指令,所述代码并非是由那些指令规定的。
[0085] 更具体而言,在示出的实施方式中,通过执行使用不同于由指令34A-34C引用的类和成员所指定的数据和/或代码(在后文中分别称为“代替成员35A'-35C'”)的指令34A-34C,装置10响应于引用由面向对象编程类(“引用类”)37限定的对象的至少所选成员(“引用成员”)的在应用34中的指令34A-34C。在示出的实施方式中,通过使用应用34加载代替成员35A'-35C'(代替引用成员35A-35C),装置10实现这一点;这在加载时进行,同时,寄载运行时间环境32被初始化,例如,在启动本机应用18(例如,ACL)和/或装置10时。在其他实施方式中,可以在应用34安装和/或执行时间进行。
[0086] 虽然为了方便起见,在图中示出并且在此处讨论仅仅一个引用类37,但是要理解的是,其教导内容也适用于具有多个引用类的实例。
[0087] 通过针对引用所选的引用成员35A-35C的应用34的指令来代替并且访问/执行代替成员35A'-35C',例如如上所述,有效地说,装置10可以拦截或俘获应用34对那些引用成员35A-35C的使用。例如,这允许装置10促使应用34使用与通过引用成员35A-35C本身使用的机制不同的机制来提供对数据、功能和/或服务的访问。
[0088] 通过非限制性实例,引用类37可以是促进寄载操作系统的版本的企业或其他实体/组织刊发的一个或多个类。而且,通过非限制性实例,所选的引用成员35A-35C可以是访问并非位于执行应用34的进程本地的数据、功能和/或服务、和/或该或另一个企业、实体或组织的专有数据、功能和/或服务的该类的那些成员。实例包括与映射、导航、广告、电子钱包、账户授权、电话、相机、地址/联系方式、文档预览、以及音乐/多媒体播放服务有关的数据、功能和/或服务,均通过非限制性实例。
[0089] 代替成员35A'-35C'可以包括适合于通过应用34加载的任何数据和/或代码,例如,在初始化寄载运行时间环境32时(例如,在启动本机应用18和/装置10时),在应用34安装时间,在装置10的用户调用该应用时等。虽然基于代码的代替成员可以包括尽可能少的NOOP(无操作)操作,但是例如,更通常地,它们提供与它们所代替的引用成员相似的功能(从应用34的角度来看),但是为其使用不同的机制。
[0090] 通过实例,在引用成员(例如,35A)是寄载应用34的对象(从类37中实例化)的方法成员的实例中(该对象调用第三方(促进寄载操作系统的版本的企业或其他实体/组织等)的专用的基于网络的映射服务100),对应的代替成员(例如,35A')可以调用例如另一方的替代的映射服务102,或者可替换地或者此外,可以调用位于装置10本地的并且更具体而言位于寄载运行时间环境32、框架38、寄载处理器42、寄载库44、本机运行时间环境16、本机运行时间库20等本地的功能和/或服务(未示出)。
[0091] 通过进一步的实例,在引用成员(例如,35B)是寄载应用34的对象(从类37中实例化)的数据或方法成员的实例中(该对象部分或完全无效),对应的代替成员(例如,35B')可以将必要的数据和/或功能/服务提供给使用位于装置10本地或非本地的可替换的并且可操作的机制的应用34,并且尤其是位于寄载运行时间环境32、框架38、寄载处理器42、寄载库44、本机运行时间环境16、本机运行时间库20等本地或非本地的可替换的并且可操作的机制的应用34。
[0092] 根据本发明的一些方面,上述不同的机制可以是不同的网络(或其他外部)服务。因此,例如,引用成员可以是由引用类限定的方法成员,该类的对象实例使用第一外部网络服务来支持第一寄载软件应用所需要的映射、导航、广告、电子钱包、账户授权和/或其他服务,然而,代替成员是从使用第二不同的网络服务来支持这种服务的替代类中实例化的对象的方法成员。
[0093] 代替作为其相应类的数据成员的引用成员的由装置10执行的代替成员35A'-35C'优选地允许通过与对应的引用成员的格式相同的格式储存和/或检索值。
[0094] 同样,提供或调用功能或服务的代替成员35A'-35C'接受输入参数,并且通过应用34期望的形式返回输出参数。由于其使用的不同机制(相对于代替其执行的引用成员)本身不必通过那些相同的格式接受和/或返回参数,所以在一些实施方式中,代替成员包括用于任何需要的转换、格式变换等的代码。
[0095] 如上所述,在示出的实施方式中,例如,在初始化寄载运行时间环境32时(例如,在启动本机应用18和/装置10时),在应用34安装和/或执行时间,对代替成员的引用代替在寄载软件应用34中的对应的引用成员。这在图5指示,其中,对代替成员35A'的引用代替由指令34A对引用成员35A做出的引用;对代替成员35B'的引用代替由指令34B对引用成员35B做出的引用;并且对代替成员35C'的引用代替由指令34C对引用成员35C做出的引用。
[0096] 在初始化寄载运行时间环境32期间实现这种代替的实例中,支持那些环境的本机应用18(例如,ACL)使用在这种类型的寄载系统的操作系统中通常使用的类型的类加载器104,虽然对引用代替类进行了修改。在安装时实现这种代替的实例中,寄载操作系统的安装程序应用可以调用通常结合寄载应用安装使用的类型的加载器104(虽然根据本文的教导进行适配),使得在寄载软件应用可执行文件中的符号引用解析成代替成员,而非引用成员。同样,在执行时实现这种代替的实例中,事件处理器42可以实现通常结合寄载应用调用使用的类型的这种加载器104的这种调用(再次,根据本文的教导进行适配)。在所有实例中,例如,代替成员106的代码可以与寄载软件应用可执行文件108、库例程110等一起提供给类加载器104用于加载,所有这些都通过在本领域中已知的常见方式。
[0097] 参考于2013年10月23日提交的美国专利申请序号14/061,288(现在是美国专利公开号US 2014-0115606)以及于2013年10月18日提交的美国专利申请序号61/892,896(发明名称均为“MULTI-PLATFORM MOBILE AND OTHER COMPUTING DEVICES AND METHODS”),可以实现对根据本发明的系统的操作的更完整的理解,这两个专利的教导内容通过引用结合于此。
[0098] 结论
[0099] 上面描述了并且在附图中示出了满足期望目标的装置和方法等。本领域的技术人员会理解的是,在此处描述和示出的实施方式仅仅是本发明的示例,包含对这些实施方式的变化的其他实施方式也均在本发明的范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈