多平台移动装置和其它计算装置以及方法背景技术
本申请要求下列专利申请的提交的权益:
·2013年10月18日提交的、名称为“MULTI-PLATFORMMOBILEAND
OTHERCOMPUTINGDEVICESANDMETHODS”的美国专利申请序列号
61/892,896,
·2012年10月24日提交的、名称为“BRIDGINGNOTIFICATION
SYSTEMS”的美国专利申请序列号61/717,764,
·2012年10月24日提交的、名称为“SEMANTICALLYDIFFERENTTASK
MANAGEMENTSYSTEMINASINGLEOPERATINGSYSTEM”的美国专
利申请序列号61/717,731。
所有前述申请的教导通过引用被并入本文。
本发明涉及数字数据处理,且更具体地涉及用于在单个硬件/软件平台
上执行应用(“app”)的方法和设备,其中所述应用被制造成在多个不同
的这样的平台上执行。本发明在支持用于智能移动装置(例如智能电话、平
板计算机、机顶盒、所连接的电视机、车辆内信息娱乐系统或飞机上的娱乐
系统等,所有这些都作为非限制的例子)的应用当中的跨平台兼容性方面有
应用。
根据分析,智能移动装置市场在过去一年来增长了几乎40%。这在很大
程度上由运行开源Linux和Android操作系统的各种变体的装置的销售推动
的。虽然对市场是恩惠,但那些装置作为缺乏为它们开发的应用的交叉兼容
性的结果而蒙受损害。因此,例如为运行Meego操作系统的移动装置开发的
应用并不在执行Tizen或Android操作系统的那些装置上运行。当我们转向
完全不同的谱系的操作系统时,这个问题当然更加严重。例如,为Tizen开
发的应用不在运行WebOS或WindowsOS的那些装置上运行;依此类推。
这不仅仅是对购买了缺乏与老应用的兼容性的新移动装置的消费者的
问题。它也是对制造商、运营商和在供应链中的其它方(其交付新硬件/软
件平台的努力由于可用应用的大生态系统的缺乏而处于困难境地)的问题。
应用开发商也遭受市场中的分裂的影响,因为它们可能被迫使应用转向各种
平台,以便建立或维持产品可行性。
解决交叉兼容性问题的几个现有技术努力仅取得有限的成功。例如,
Acer的AspireOne支持双引导模式:一个用于WindowsOS而一个用于
Android。然而,该装置不能在单个模式中运行这两个操作系统的应用。
鉴于前述内容,本发明的一个目的是提供用于数字数据处理的改进的系
统和方法。另一更具体的目的是提供这样的系统和方法以支持在单个硬件/
软件平台上执行应用(“app”),其中该应用被制造为在多个不同的硬件/
软件平台上执行。又一目的是提供这样的系统和方法以支持在用于智能移动
装置(例如智能电话、平板计算机、机顶盒、所连接的电视机、车辆内信息
娱乐系统或飞机上的娱乐系统等,所有这些都作为非限制的例子)的应用当
中的跨平台兼容性。
这些和其它目的在接下来的正文中和附图中是明显的。
发明内容
多操作新系统移动和其它计算装置
前述目的在本发明达到的目的当中,这些目的提供计算装置,其包括耦
合到硬件接口(至少包括显示器和相关联的视频帧缓冲器)并执行包括一个
或多个本机运行时间环境的本机操作系统的中央处理单元,本机软件应用在
本机运行时间环境内执行,其中每个这样的本机软件应用具有用于在本机操
作系统下执行的指令。在一个或多个本机运行时间环境内执行的第一本机软
件应用(“ACL”)定义一个或多个寄载运行时间环境,寄载软件应用在寄载
运行时间环境内执行。每个这样的寄载软件应用具有用于在不同于本机操作
系统的寄载操作系统下执行的指令。
在运行时间环境内执行的一个或多个寄载软件应用每个执行指令以通
过由相应的寄载软件应用使用一个或多个寄载运行时间环境所共有的寄载
窗口子系统所产生的图形(作为图形用户界面的部分)与计算装置的用户交
互。窗口子系统耦合到一个或多个缓冲器并给一个或多个缓冲器加载那些图
形。
一个或多个本机软件应用(“启动代理”)——每个对应于寄载软件应
用中的相应的寄载软件应用且每个与呈现在硬件接口上用于由计算装置的
用户选择的图标或其它标识符相关联——通过激活相应的寄载软件应用而
对这样的选择的通知做出响应。
一个或多个另外的本机软件应用(“IO代理”)——每个在一个或多
个本机运行时间环境内执行且每个对应于一个或多个寄载软件应用中的相
应的寄载软件应用——接收由相应的寄载软件应用产生的图形并实现那些
图形到视频帧缓冲器的写入以用于呈现在计算装置的显示器上。
本发明在其它方面中提供例如如上所述的计算装置,其中:
·一个或多个本机运行时间环境向在它们内执行的应用通知针对那
些应用做出的用户输入,所述应用包括IO代理,以及
·在一个或多个寄载运行时间环境内执行的寄载软件应用从寄载事
件处理机子系统接收事件的通知,寄载事件处理机子系统形成一
个或多个寄载运行时间环境的部分并且是一个或多个寄载软件应
用所共有的。
每个IO代理通过将关于其的从一个或多个本机运行时间环境接收的信
息传输到寄载事件处理机来对用户输入的通知做出响应,寄载事件处理机通
知与接收到该用户输入的通知的IO代理相对应的寄载软件应用。
本发明的又一些其它方面提供例如如上所述的计算装置,其中结合用于
在一个或多个寄载运行时间环境下执行的相应寄载软件应用的安装,第一本
机软件应用安装IO代理和启动代理用于在所述一个或多个本机运行时间环
境下执行。
本发明的相关方面提供例如如上所述的计算装置,即移动计算装置,例
如作为非限制性的例子,智能电话、平板计算机、机顶盒、所连接的电视机、
车辆内信息娱乐系统或飞机上的娱乐系统。
本发明的另外的相关方面提供例如如上所述的计算装置,其中寄载操作
系统是基于Linux的操作系统,例如作为非限制性的例子,基于Android的
操作系统。在本发明的又一些另外的相关方面中,寄载和本机操作系统是基
于Linux的操作系统的不同变体。以及在本发明的又一些相关方面中,寄载
和本机操作系统是基于Android的操作系统的不同变体。
在多操作系统移动装置和其它计算装置中的寄载应用显示
本发明的另外的方面提供计算装置,其包括耦合到硬件接口(至少包括
显示器和相关联的视频帧缓冲器)并执行包括一个或多个本机运行时间环境
的本机操作系统的中央处理单元,本机软件应用在本机运行时间环境内执
行。每个这样的本机软件应用具有用于在本机操作系统下执行的指令。
在一个或多个本机运行时间环境内执行的第一本机软件应用(“ACL”)
定义一个或多个寄载运行时间环境,寄载软件应用在寄载运行时间环境内执
行。每个这样的寄载软件应用具有用于在不同于本机操作系统的寄载操作系
统下执行的指令。
在寄载运行时间环境内执行的一个或多个寄载软件应用每个执行指令
以通过由相应的寄载软件应用使用一个或多个寄载运行时间环境所共有的
寄载窗口子系统所产生的图形(作为图形用户界面的部分)与计算装置的用
户交互。那些图形可以是例如代表相应的寄载软件应用的执行的图形窗口。
窗口子系统耦合到一个或多个缓冲器并给一个或多个缓冲器加载那些图形。
一个或多个本机软件应用(“IO代理”)——每个在一个或多个本机
运行时间环境内执行且每个对应于一个或多个寄载软件应用中的相应的寄
载软件应用——接收由相应的寄载软件应用产生的图形并实现那些图形到
视频帧缓冲器的写入以用于呈现在计算装置的显示器上。
本发明的相关方面提供例如如上所述的计算装置,即移动计算装置,例
如作为非限制性的例子,智能电话、平板计算机、机顶盒、所连接的电视机、
车辆内信息娱乐系统或飞机上的娱乐系统。
本发明的另外的相关方面提供例如如上所述的计算装置,其中寄载操作
系统是基于Linux的操作系统,例如作为非限制性的例子,基于Android的
操作系统。在本发明的又一些另外的相关方面中,寄载和本机操作系统是基
于Linux的操作系统的不同变体。以及在本发明的又一些相关方面中,寄载
和本机操作系统是基于Android的操作系统的不同变体。
本发明的又一些另外的相关方面提供例如如上所述的计算装置,其中每
个本机软件应用每个执行指令以通过由相应的本机软件应用使用一个或多
个本机运行时间环境所共有的本机窗口子系统所产生的图形(作为图形用户
界面的部分)与计算装置的用户交互。该窗口子系统给本机帧缓冲器加载那
些图形以用于呈现在计算装置的显示器上。
本发明的又一些另外的相关方面提供例如如上所述的计算装置,其中由
寄载窗口子系统加载的一个或多个缓冲器是虚拟帧缓冲器。
本发明的又一些另外的相关方面提供例如如上所述的计算装置,其中由
寄载软件应用使用寄载窗口子系统产生的图形是应用窗口。
本发明的另外的相关方面提供例如如上所述的计算装置,其中本机操作
系统和一个或多个本机运行时间环境中的任一个用代表状态条的图形加载
本机帧缓冲器用于呈现在计算装置的显示器上。与寄载软件应用(即IO代
理)对应的本机软件应用实现从那些寄载软件应用接收的图形到视频帧缓冲
器的写入,以便维持状态条在显示器上的呈现。
本发明在其它方面中提供例如如上所述的计算装置,其中(i)一个或
多个本机运行时间环境向在它们内执行的应用通知针对那些应用做出的用
户输入,所述应用包括IO代理,以及(ii)在一个或多个寄载运行时间环
境内执行的寄载软件应用从寄载事件处理机子系统接收事件的通知,寄载事
件处理机子系统形成一个或多个寄载运行时间环境的部分并且是一个或多
个寄载软件应用所共有的。每个IO代理通过将关于其的从一个或多个本机
运行时间环境接收的信息传输到寄载事件处理机来对用户输入的通知做出
响应,寄载事件处理机通知与接收到该用户输入的通知的IO代理相对应的
寄载软件应用。
根据本发明的其它相关方面,例如如上所述的计算装置包括一个或多个
另外的本机软件应用(“启动代理”),每个对应于寄载软件应用中的相应
的寄载软件应用且每个与呈现在硬件接口上用于由计算装置的用户选择的
图标或其它标识符相关联。每个启动代理通过激活相应的寄载软件应用而对
这样的选择的通知做出响应。
在本发明的相关方面中,启动代理通过将启动消息传输到寄载事件处理
机来实现相应的寄载软件应用的激活,寄载事件处理机激活在一个或多个寄
载运行时间环境内的寄载软件应用。
本发明的又一些另外的相关方面提供例如如上所述的计算装置,其中结
合用于在一个或多个寄载运行时间环境下执行的相应寄载软件应用的安装,
第一本机软件应用安装IO代理和启动代理用于在所述一个或多个本机运行
时间环境下执行。
在多操作系统移动装置和其它计算装置中的用户/寄载应用交互
本发明的其它方面提供计算装置,其包括耦合到硬件接口并执行包括一
个或多个本机运行时间环境的本机操作系统的中央处理单元,本机软件应用
在本机运行时间环境内执行,其中每个这样的本机软件应用具有用于在本机
操作系统下执行的指令。
在一个或多个本机运行时间环境内执行的第一本机软件应用(“ACL”)
定义一个或多个寄载运行时间环境,寄载软件应用在寄载运行时间环境内执
行。每个这样的寄载软件应用具有用于在不同于本机操作系统的寄载操作系
统下执行的指令。在一个或多个寄载运行时间环境内执行的一个或多个寄载
软件应用从形成一个或多个寄载运行时间环境的部分并且是一个或多个寄
载软件应用所共有的寄载事件处理机子系统接收事件的通知。
一个或多个本机软件应用(“IO代理”)——每个在一个或多个本机
运行时间环境内执行且每个对应于一个或多个寄载软件应用中的相应的寄
载软件应用——从一个或多个本机运行时间环境接收针对它们做出的用户
输入的通知。每个IO代理通过将关于其的从一个或多个本机运行时间环境
接收的信息传输到寄载事件处理机来对用户输入的通知做出响应,寄载事件
处理机通知与接收到该用户输入的通知的IO代理相对应的寄载软件应用。
根据本发明的相关方面,例如如上所述的计算装置的硬件接口包括与一
个或多个本机运行时间环境通信耦合的用户输入装置,例如触摸屏、键盘、
轨迹球、触摸棒等。那些一个或多个本机运行时间环境通过将相应的触摸或
其它输入数据传输到所述IO代理来对来自输入装置的触摸或其它用户输入
做出响应,其中输入关于所述IO代理被做出。
本发明的相关方面提供例如如上所述的计算装置,即移动计算装置,例
如作为非限制性的例子,智能电话、平板计算机、机顶盒、所连接的电视机、
车辆内信息娱乐系统或飞机上的娱乐系统。
本发明的另外的相关方面提供例如如上所述的计算装置,其中寄载操作
系统是基于Linux的操作系统,例如作为非限制性的例子,基于Android的
操作系统。在本发明的又一些另外的相关方面中,寄载和本机操作系统是基
于Linux的操作系统的不同变体。以及在本发明的又一些另外的相关方面中,
寄载和本机操作系统是基于Android的操作系统的不同变体。
根据本发明的其它相关方面,例如如上所述的计算装置包括一个或多个
另外的本机软件应用(“启动代理”),每个对应于寄载软件应用中的相应
的寄载软件应用且每个与呈现在硬件接口上用于由计算装置的用户选择的
图标或其它标识符相关联。每个启动代理通过激活相应的寄载软件应用而对
这样的选择的通知做出响应。
在本发明的相关方面中,启动代理通过将启动消息传输到寄载事件处理
机来实现相应的寄载软件应用的激活,寄载事件处理机激活在一个或多个寄
载运行时间环境内的寄载软件应用。
本发明的又一些其它相关方面提供例如如上所述的计算装置,其中结合
用于在一个或多个寄载运行时间环境下执行的相应寄载软件应用的安装,第
一本机软件应用安装IO代理和启动代理用于在所述一个或多个本机运行时
间环境下执行。
在多操作系统移动装置和其它计算装置中的前景应用任务的协调
根据本发明的另外的方面,提供了计算装置,其包括耦合到硬件接口(至
少包括显示器和相关联的视频帧缓冲器)并执行包括一个或多个本机运行时
间环境的本机操作系统的中央处理单元,本机软件应用在本机运行时间环境
内执行。每个这样的本机软件应用具有用于在本机操作系统下执行的指令。
在一个或多个本机运行时间环境内执行的第一本机软件应用(“ACL”)
定义一个或多个寄载运行时间环境,寄载软件应用在寄载运行时间环境内执
行。每个这样的寄载软件应用具有用于在不同于本机操作系统的寄载操作系
统下执行的指令。
在一个或多个寄载运行时间环境内执行的一个或多个寄载软件应用每
个执行指令以通过由相应的寄载软件应用使用一个或多个寄载运行时间环
境所共有的寄载窗口子系统所产生的图形(作为图形用户界面的部分)与计
算装置的用户交互。该窗口子系统耦合到一个或多个缓冲器并给一个或多个
缓冲器加载那些图形。
一个或多个本机软件应用(“IO代理”)——每个在一个或多个本机
运行时间环境内执行且每个对应于一个或多个寄载软件应用中的相应的寄
载软件应用——接收由相应的寄载软件应用产生的图形并实现那些图形到
视频帧缓冲器的写入以用于呈现在计算装置的显示器上。
本机操作系统和/或一个或多个本机运行时间环境通过将代表那个应用
的执行的图形窗口带到显示器的前景并使它在一个或多个本机运行时间环
境变成“活动的”而对执行本机软件应用之一的用户选择做出响应。根据本
发明的相关方面,第一本机软件应用例如在被带到前景和/或变成活动的时
实现在一个或多个寄载运行时间环境内使第一寄载软件应用变成活动的,好
像它被带到它们中的前景一样。
根据本发明的相关方面,例如如上所述的计算装置的硬件接口包括与IO
代理通信耦合的用户输入装置,例如触摸屏、键盘、轨迹球、触摸棒等。事
件处理机在一个或多个寄载运行时间环境内执行并与一个或多个寄载软件
应用通信耦合。IO代理(关于其的触摸或其它输入数据从用户输入装置被接
收到)将触摸或其它输入数据传输到事件处理机,其向相应的寄载软件应用
通知该触摸或其它输入数据,例如从而使它在一个或多个寄载运行时间环境
内变成活动的。
根据本发明的相关方面,在例如如上所述的计算装置中,由相应的寄载
软件应用产生的作为图形用户界面的部分的图形可以是代表相应的寄载软
件应用的执行的图形窗口。
根据本发明的相关方面,在例如如上所述的计算装置中,窗口子系统耦
合到一个或多个缓冲器并给一个或多个缓冲器加载那些图形。第一本机软件
应用使用那些一个或多个缓冲器来确定相应的寄载软件应用是否在一个或
多个寄载运行时间环境中是活动的。
本发明的又一些另外的相关方面提供例如如上所述的计算装置,其中由
寄载窗口子系统加载的一个或多个缓冲器是虚拟帧缓冲器。
根据本发明的另外的相关方面,IO代理(关于其的触摸或其它输入数据
从例如如上所述的计算装置的用户输入装置被接收到)通过检查代表该应用
的图形窗口是否在虚拟前景中和/或在前述一个或多个缓冲器中是活动的来
确定相应的寄载软件应用是否在一个或多个寄载运行时间环境中是活动的。
根据本发明的又一些另外的相关方面,IO代理(关于其的触摸或其它输
入数据从例如如上所述的计算装置的用户输入装置被接收到)在被带到前景
和/或变成活动的时执行一个或多个等待,直到确定相应的寄载软件应用在
一个或多个寄载运行时间环境中是活动的为止。
本发明的又一些其它方面提供例如如上所述的计算装置,其中结合用于
在一个或多个寄载运行时间环境下执行的相应的寄载软件应用的安装,第一
本机软件应用安装所述IO代理用于在一个或多个本机运行时间环境下执行。
本发明的相关方面提供例如如上所述的计算装置,即移动计算装置,例
如作为非限制性的例子,智能电话、平板计算机、机顶盒、所连接的电视机、
车辆内信息娱乐系统或飞机上的娱乐系统。
本发明的另外的相关方面提供例如如上所述的计算装置,其中寄载操作
系统是基于Linux的操作系统,例如作为非限制性的例子,基于Android的
操作系统。在本发明的又一些另外的相关方面中,寄载和本机操作系统是基
于Linux的操作系统的不同变体。以及在本发明的又一些另外的相关方面中,
寄载和本机操作系统是基于Android的操作系统的不同变体。
在多操作系统移动装置和其它计算装置中的寄载应用的通知和回复改
写
本发明的另外的方面提供计算装置,其支持在多个操作系统下的应用的
执行并为在那些操作系统中的非本机操作系统上执行的应用改写用户通知
和回复。
根据本发明的这些方面,提供了例如上面描述的类型的计算装置,其包
括耦合到硬件接口(至少包括显示器和相关联的视频帧缓冲器)并执行包括
一个或多个本机运行时间环境的本机操作系统的中央处理单元,本机软件应
用在本机运行时间环境内执行,其中每个这样的本机软件应用具有用于在本
机操作系统下执行的指令。在一个或多个本机运行时间环境内执行的第一本
机软件应用(“ACL”)定义一个或多个寄载运行时间环境,寄载软件应用在
寄载运行时间环境内执行。每个这样的寄载软件应用具有用于在不同于本机
操作系统的寄载操作系统下执行的指令。
一个或多个本机运行时间环境包括与本机软件应用通信耦合并整理由
它们产生的通知用于经由硬件接口向用户呈现的公共本机通知子系统。
一个或多个寄载运行时间环境包括与寄载软件应用通信耦合并整理由
它们产生的通知用于经由硬件接口向用户呈现的公共寄载通知子系统。寄载
通知子系统包括用于在寄载操作系统下执行的指令并在一个或多个寄载运
行时间环境内在中央处理单元上执行。本机通知子系统包括用于在本机操作
系统下执行的指令并在一个或多个本机运行时间环境内在中央处理单元上
执行。
多个寄载通知子系统(每个包括用于在寄载操作系统下执行的指令)在
一个或多个寄载运行时间环境内在中央处理单元上执行。那些应用中的一个
或多个产生用于呈现给装置的用户的通知并将那些通知传输到寄载通知子
系统,寄载通知子系统与改写从一个或多个寄载软件应用接收的通知的改写
层通信耦合并将它们传输到本机寄载通知子系统,该本机寄载通知子系统将
来自寄载软件应用的通知呈现在硬件接口上。
本发明的相关方面提供例如如上所述的计算装置,其中改写层包括寄载
部件和本机部件,寄载部件包括用于在寄载操作系统下执行的指令并在一个
或多个寄载运行时间环境内在中央处理单元上执行,而本机部件包括用于在
本机操作系统下执行的指令并在一个或多个本机运行时间环境内在中央处
理单元上执行。
本发明的另外的相关方面提供例如如上所述的计算装置,其中改写层的
寄载部件经由第一进程间通信(IPC)协议与在一个或多个寄载运行时间环
境内执行的寄载软件应用通信,且其中改写层的本机部件经由第二IPC协议
与在一个或多个本机运行时间环境内执行的本机软件应用通信。
本发明的另外的相关方面提供例如如上所述的计算装置,其中多个寄载
软件应用中的第一寄载软件应用和第一本机软件应用一起实现代表第一寄
载软件应用的执行的图形窗口在计算装置的显示器上的呈现。本机操作系统
和一个或多个本机运行时间环境中的至少一个将代表本机软件应用的执行
的图形窗口带到显示器的前景,(i)本机软件应用产生用于由本机通知子
系统呈现的通知,以及(ii)用户对通知做出响应,从而使本机软件应用在
一个或多个本机运行时间环境内变成“活动的”。根据本发明的这些方面,
第一本机软件应用例如在被带到前景和/或变成活动的时实现在一个或多个
寄载运行时间环境内使第一寄载软件应用变成活动的,好像它被带到它们中
的前景一样。
根据本发明的另外的相关方面,例如如上所述的计算装置包括在寄载运
行时间执行环境内执行的事件处理机,且第一寄载应用与事件处理机通信耦
合。第一本机软件应用通过将相应的触摸或其它输入数据传输到事件处理机
而对来自输入装置的触摸或其它用户输入做出响应,事件处理机向第一寄载
应用通知该触摸或其它输入数据,例如从而使它在一个或多个寄载运行时间
环境内变成活动的。
本发明的另外的相关方面提供例如如上所述的计算装置,其中转换层通
过将从一个或多个寄载软件应用接收的通知转换成由一个或多个本机运行
时间环境经由用户界面可呈现的格式来改写通知。本发明的相关方面提供这
样的装置,其中转换层通过将从一个或多个寄载软件应用接收的通知转换成
由一个或多个本机运行时间环境经由显示器可呈现的格式来改写通知。
本发明的又一些其它方面提供例如如上所述的计算装置,其中转换层通
过将通知的参数映射到一个或多个本机运行时间环境的相应参数来改写从
一个或多个寄载软件应用接收的通知。
本发明的又一些其它方面提供例如如上所述的计算装置,其中转换层通
过向第一本机软件应用登记消息并将包括对所登记的消息的引用而不是消
息本身的通知发送到本机通知子系统来基于用户与通知的交互改写从一个
或多个寄载软件应用接收的包括要传送的消息的通知。
本发明的相关方面提供例如如上所述的计算装置,其中第一本机软件应
用通过实现将包括所引用的已登记消息的回复消息传送到第一寄载软件应
用而对从本机通知子系统接收到包括这样的前述引用的返回消息做出响应。
附图说明
通过参考附图可得到对本发明的更彻底理解,其中:
图1A、1B和1C描绘体现本发明的类型的计算装置;
图2描绘在图1的装置中执行的类型的本机操作系统;
图3描绘由本机软件应用定义的一个或多个寄载运行时间环境,用于在
图1的装置中执行寄载软件应用;
图4描绘在基于用户与在本机运行时间环境中执行的示例性寄载软件应
用的启动代理的交互来启动该寄载软件应用、经由该寄载软件应用的IO代
理显示代表该寄载软件应用的操作的应用窗口并将用户输入从该代理传输
回到寄载应用时部件的交互。
图5是示出根据本发明的实施方式的在寄载应用运行时间环境和本机应
用运行时间环境中的任务操作以及在寄载应用任务和代理任务之间的一对
一对应性的框图;
图6是示出根据图8的任务切换方法的在本机应用运行时间环境中的代
理任务和寄载应用运行时间环境的复杂任务模型和虚拟帧缓冲器之间的关
系的框图;
图7是示出根据本发明的实施方式的发生在图5的装置的寄载应用运行
时间环境和本机应用运行时间环境中的任务切换方法的流程图;
图8描绘在根据本发明的系统中的寄载运行时间环境和本机运行时间环
境的通知子系统的交互;
图9描绘在根据本发明的系统中的通知转换功能;以及
图10、11和12是描绘在根据本发明的系统中的通知转换的流程图。
具体实施方式
体系结构
图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描绘在图1的所示装置10上执行的类型的本机操作系统14。
参考该附图,本机操作系统14定义本领域中已知的类型的一个或多个
本机运行时间环境16(其根据本文中的教导而相适应),在该本机运行时间
环境16内执行本领域中已知的类型的本机软件应用(其根据本文中的教导
而相适应)——即具有用于在本机操作系统下执行的指令的应用。这样的应
用在附图中被标记为15、18和46-52。如在这里和本文的其它地方使用的,
术语“应用”和“app”可互换地被使用。
根据本机操作系统14及其在装置10上的实现的细节,本机运行时间环
境16可包括一个或多个虚拟机或采取其他方式,如在本领域中惯用的(其
根据本文中的教导而相适应)。所示的本机运行时间环境16包括——作为
非限制性的例子——应用资源18和运行时间库20,都是本领域中已知的类
型,其根据本文中的教导而相适应。该运行时间环境16还包括本领域中已
知的类型的内核24,其根据本文中的教导而相适应。
内核24(或在可选实施方式的运行时间环境中提供的可选功能)以本领
域中已知的常规方式尤其用作在CPU12(和更典型地,在其上执行的本机运
行时间环境16内执行的本机应用)和与装置10成一整体或附接到装置10
的硬件装置24-30之间的接口,其根据本文中的教导而相适应。这包括显示
器/触摸屏24和以本领域中已知的常规方式驱动其上的显示器的帧缓冲器
26,其根据本文中的教导而相适应。这还可包括键盘、轨迹球、触摸棒、其
它用户输入装置和/或本领域中已知的类型的其它集成或外围装置,其作为
非限制性的例子。在接下来的讨论中,显示器/触摸屏24、帧缓冲器26和支
持在装置10和它的用户之间的交互的其它集成或外围装置被称为“硬件接
口”,而不考虑它们是否包括硬件、软件或其组合(更一般地是这种情况)。
在一个或多个本机运行时间环境16内执行的在这里被称为——没有限
制的意图——“应用控制层”或“ACL”的本机软件应用18定义一个或多个
寄载运行时间环境,其中,寄载软件应用在该寄载运行时间环境内执行。每
个这样的寄载软件应用具有用于在不同于本机操作系统的寄载操作系统下
执行的指令。
本机软件应用46-52是寄载软件应用34、36的代理,其给它们(寄载
软件应用)提供对本机操作系统14和本机运行时间环境16的资源以及装置
10的硬件资源的访问。
特别地,在所示实施方式中,在寄载运行时间环境32中执行的每个寄
载软件应用具有在本机运行时间环境16中执行的两个相应代理:启动代理
和IO代理。在这里,寄载软件应用34的代理是启动代理46和IO代理50。
寄载软件应用36的代理是启动代理48和IO代理52。虽然启动和IO代理在
所示实施方式中都被使用,但在其它实施方式中,寄载软件应用可具有只有
一种类型(例如IO或启动)的相应代理或其它情况。例如,在其它实施方
式中,可为每个寄载应用提供更多的代理,且然而在又一些其它实施方式中,
多个这样的代理的功能可组合到单个代理中——所有这些都不偏离其精神。
寄载运行时间环境
寄载操作系统可以是例如基于Linux的操作系统,例如作为非限制性的
例子,基于Android的操作系统。本机操作系统14可同样是例如基于Linux
和/或基于Android的操作系统,虽然具有与寄载操作系统的“风味(flavor)”
不同的“风味”。作为本机操作系统14包括前面提到的Tizen、WebOS、Linux
操作系统之一(其根据本文中的教导而相适应)的更具体的例子,作为非限
制性的例子,寄载操作系统可包括商业上可获得的Android操作系统的“风
味”(其根据本文中的教导而相适应),再次作为非限制性的例子。
图3描绘根据本发明的由用于执行装置10中的寄载软件应用34、36的
本机软件应用18(或ACL)定义的一个或多个寄载运行时间环境32。所示寄
载运行时间环境32具有本领域中已知的类型(其根据本文中的教导而相适
应),具有用于在寄载操作系统下执行的指令的软件应用(即寄载软件应用)
在寄载运行时间环境32内被构建并预期被执行。
根据寄载操作系统的类型及其在运行时间环境32内的实现细节,寄载
运行时间环境32可包括一个或多个虚拟机或采取其他方式,如在本领域中
惯用的(其根据本文中的教导而相适应)。所示的寄载运行时间环境32预
期用于执行基于Android的软件应用34、36(虽然其它实施方式预期用于执
行为其它操作系统设计和构建的应用),且包括——作为非限制性的例子——
资源框架38、虚拟机(VM)40、事件处理机42和运行时间库44,这些都作
为非限制性的例子且都具有本领域中已知的类型,其根据本文中的教导而相
适应。
所示的运行时间环境32在运行本领域中已知类型的被保护内核空间中
的操作的意义上不包括内核本身(如可能通常被包括在例如基于
Linux/Android的操作系统的运行时间环境中的内核)。相反,一些这样的
操作(例如可能通常被包括在例如基于Linux/Android的操作系统的内核中
的操作)在用户空间中被执行。
作为例子,那些内核空间操作被资源框架38、虚拟机(VM)40、事件处
理机42、运行时间库44和/或运行时间环境32的其它部件依赖来将图形加
载到框架缓冲器用于呈现在显示器上。不是在寄载运行时间环境32的内核
中执行,在所示实施方式中,那些操作被提升到用户空间并用来将这样的图
形加载到“虚拟”框架缓冲器54,其(如下面讨论的)被本机运行时间环境
16和在那里执行的应用(特别是I/O代理应用50、52)共享。
通过将操作以及更为广泛的寄载软件应用34、36的执行所需的功能转
移到本机操作系统14及其运行时间环境16,避免了其它这样的内核-空间操
作的执行,上述寄载软件应用34、36否则将在运行时间环境32内且具体地
例如由其内核执行。
例如由资源框架34、虚拟机(VM)36、事件处理机42、运行时间库44
和/或运行时间环境32的其它部件来实现在所示实施方式中的这样的转移。
该资源框架34、虚拟机(VM)36、事件处理机42、运行时间库44和/或运
行时间环境32的其它部件与寄载软件应用34、36的本机软件应用代理46-52
(在运行时间环境16中执行)通信和/或否则依赖于寄载软件应用34、36
的本机软件应用代理46-52(在运行时间环境16中执行)来执行这样的功能
或其等效功能。
可以通过接下来的和在本文其它地方的讨论获得对前述内容的进一步
认识。
本机和寄载软件应用安装
本机软件应用例如15和18安装(当用户指示或其它方式)在装置10
上,且更具体地,用于在本机运行时间环境16内以本领域的用于在操作系
统14的类型的操作系统内安装应用的常规方式执行。这样的安装一般涉及
寄载操作系统14和执行对OS14常规的类型的“安装者”应用(未示出)
运行时间环境16的协作行动,且一般包括从应用包文件(例如从开发商站
点或以其他方式下载的应用包文件)解包待安装的应用的可执行文件、图标
文件、其它支持文件等以及再次以本领域中已知的常规方式将它们存储到装
置10上的静态存储器(MEM)中的指定位置。
寄载软件应用34、36在ACL18的控制下被安装(基于用户指示或以其
它方式)用于在寄载运行时间环境32下执行。为此目的,ACL18可利用对
寄载操作系统常规的类型的安装者应用(即使被修改),以从应用包文件将
待安装的应用的可执行文件、图标文件、其它支持文件等解包(或以其他方
式)到装置10上的静态存储器(MEM)中的适当位置,例如由与寄载操作系
统一致或不一致的本机操作系统14指示的位置。
与其它本机软件应用(例如15和18)不同,作为寄载软件应用34、36
的代理的本机软件应用46-52结合通过ACL18的每个相应的寄载软件应用
的安装通过来自ACL18的请求被安装到本机操作系统14。每个这样的代理
46-52由本机操作系统14以常规方式安装,尽管来自由ACL18的代理安装
者接口62产生的应用包文件(或以其他方式)。
那些包文件可包括“stub”可执行文件来代替相应的寄载软件应用34、
36可执行文件,“stub”可执行文件适合于:
·在本机操作系统14下且特别是在本机运行时间环境16内执行,
·实现可归属于启动、IO和其它代理的在下面(和本文其它地方)
讨论的功能。
那些包文件也可包括与最初与用于相应的寄载软件应用34、36的应用
包文件(或其它文件)一起提供的那些图标文件相同的图标文件,或者那些
图标文件的变体。虽然在所示实施方式中,多个代理可与每个寄载软件应用
相关联,但只有单个图标与例如图1A的如显示在图形桌面上的代理相关联,
且更具体地,图标可与多个代理中的单个代理相关联,该多个代理与给定寄
载软件应用相关联。
多操作系统移动装置和其它计算装置
计算装置10支持多个操作系统的应用的无缝执行,或换句话说,它“合
并”用户体验,使得在寄载运行时间环境中执行的应用对用户而言看起来好
像它们在本机操作系统14内执行一样。
因此,例如,表示寄载软件应用的执行的应用窗口被呈现给用户,而不
干扰形成由本机操作系统14和/或本机运行时间环境16产生的作为总图形
用户界面的部分的“桌面”的部分的状态条,因此,使寄载软件应用看起来
类似于本机软件应用。这作为例子在图1A-1C中示出。
参考图1A,本机操作系统14驱动计算装置以在显示器/触摸屏24上显
示具有图标58的图形桌面,该图标58代表可由装置10的用户选择来启动
或激活的应用。在所示实施方式中,这些可以是本机软件应用(例如15)和
寄载软件应用(例如34、36)。
该桌面显示包括在本领域中的常规类型且特别是对本机操作系统图14
常规(虽然一些实施方式可在这个方面变化)的状态条56。在这里,该状态
条56指示当前日期/时间、运营商传导信号强度(例如Wi-Fi、蜂窝等)、
活动应用等,虽然在其它实施方式中,它可指示其它方面。
参考图1B,当本机软件应用(例如15)由操作系统14和/或运行时间
环境16响应于用户选择而激活时,由本机运行时间环境16为它产生的用于
呈现在屏幕24上的应用窗口60(反映应用的执行)连同状态条56(在这里
特别地,状态条56在屏幕的顶部部分且应用窗口60在其余部分)一起占据
该屏幕。换句话说,操作系统14和/或运行时间环境16不用应用窗口60盖
写状态条56(当然,将认识到,这是操作系统14和/或运行时间环境16的
默认操作模式,以及在其它模式(例如所谓的“全屏”模式)中,应用窗口
60可占据整个屏幕)。
参考图1C,类似的,在所示实施方式中,当寄载软件应用34、36被激
活时,为它产生的应用窗口(反映在寄载运行时间环境32中的执行)以与
本机软件应用的应用窗口相同的方式呈现在屏幕24上,也就是说,它被呈
现而不盖写状态条56(例如至少当在默认模式中显示时)。在所示实施方式
中,这经由如下面关于图4讨论的IO代理的操作来完成。
合并用户体验使得在寄载运行时间环境中执行的应用对用户而言看起
来好像它们在本机操作系统14内执行一样的所示计算装置10的另一例子是
公共通知机制的使用,例如本机操作系统14和/或运行环境16的公共通知
机制,例如,如图8-12所示和下面关于其讨论的。
又一例子是响应于用户对通知(或其它)的回复而运行软件应用的一致
激活,不管它们是否是本机应用(例如15)或寄载软件应用34、36,如图
5-7所示和下面关于其讨论的。
用于实现例如如上面提到的前述内容的一些机制涉及使用本机执行的
代理46-52来给在寄载运行时间环境32中执行的寄载软件应用提供对本机
操作系统14和本机运行时间环境16的资源以及装置10的硬件资源的访问。
从接下来的讨论、附图和在本文其它地方中,又一些其它例子和它们被
实现所用的机制将对本领域中的技术人员明显。
在多操作系统移动装置和其它计算装置中的寄载应用显示
可通过参考图4认识到装置10在这些方面中的操作的进一步理解,图4
描绘了在基于用户与在本机运行时间环境16中执行的应用的启动代理46
(在这里被标记为“应用#1启动Stub”)的交互来启动在寄载运行时间环
境32中的示例性寄载软件应用34(在这里被标记为“应用1”)、经由该
应用的IO代理50(在这里被标记为“应用#1IOStub”)显示代表寄载软
件应用34的操作的应用窗口以及将用户输入从该代理50传输回到应用34
时上面讨论的部件的交互。
在所示步骤64之前,本机运行时间环境16(和/或本机操作系统14)
在上述图形桌面(见例如图1A)上呈现图标58,该图标58代表可被装置10
的用户选择来启动或其它激活的本机和寄载软件应用。如上面提到的,那些
图标结合相应应用的安装被提供到本机运行时间环境16和/或本机操作系统
14。
按照本机操作系统14的类型的操作系统的约定,作为启动代理46的本
机软件应用在它被用户选择用于激活时由本机运行时间环境16和/或本机操
作系统14启动。见步骤64。代理50可由本机运行时间环境16和/或本机操
作系统14同时启动;可选地,代理50可由代理46在它启动时启动。
当启动(或来自本机运行时间环境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的特殊重编码(即“porting”),以便使
在装置10的多操作系统环境中能够运行。
寄载资源框架38、寄载事件处理机42和运行时间库44及寄载运行时间
环境32的其它部件以寄载操作系统的类型的操作系统的已知常规方式对这
样的调用做出响应,除了在从本文的教导明显的限度内以外。因此例如,如
上面提到的,可能通常由寄载运行时间环境32在特许内核空间中执行的类
型的一些这样的操作(例如用于加载帧缓冲器的操作)替代地在用户空间中
被执行。而且其它这样的操作或更广泛的功能例如经由代理46-52被转移到
本机操作系统14及其运行时间环境16。
作为例子,代替给实际帧缓冲器加载定义表示寄载软件应用34的执行
的应用窗口的图形,寄载运行时间环境32给虚拟帧缓冲器54加载这样的图
形。见步骤72。寄载运行时间环境32通过窗口子系统的使用来实现此功能,
窗口子系统形成寄载运行时间环境32的一部分并且是一个或多个寄载软件
应用34、36所共有的(例如因为它是由寄载软件应用使用来产生用于向装
置10的用户显示的应用窗口的公共共享系统)。
寄载软件应用34的IO代理50例如以在图1C中所示和结合上述内容讨
论的方式实现由寄载运行时间环境32为应用34产生的应用窗口在屏幕24
上的呈现。见步骤74。IO代理50通过将定义该应用窗口的图形从虚拟帧缓
冲器54传送到本机帧缓冲器26(例如使用由本机运行时间环境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接收到这样的通知时,它例如以与上面结合步骤66讨论
的方式类似的方式经由事件处理机34将关于其的信息传输到它的相应寄载
软件应用34。见步骤76。可由IO代理50使用任何常规IPC机制来传送到
事件处理机42的那个信息可包括IO代理50和/或其相应的寄载软件应用34
的标识符、装置(到其的输入被做出)的标识符、输入的类型和关于其的相
关信息(例如触摸的位置、时间、持续时间和类型、点击的键、指针上的压
力等)。该信息由事件处理机42接收并以寄载操作系统和/或寄载运行时间
环境32所需的常规方式应用于相应的寄载软件应用34,例如好像触摸或其
它用户输入直接对寄载软件应用34做出一样。见步骤78。
在多操作系统移动装置和其它计算装置中的本机操作系统代理的寄载
应用利用
如在上面和本文其它地方讨论的,相应的寄载软件应用(例如34)利用
其相应的代理(例如46)来执行下面的内容,作为非限制性的例子:
·在显示器/触摸屏24的本机操作系统14的图形桌面上呈现(经由
本机操作系统14的操作)图标用于由用户选择;
·在显示器/屏幕24上呈现由相应的寄载软件应用产生的应用窗口;
·将例如由用户经由显示器/触摸屏24和本机操作系统14用信号通
知的启动和激活请求传递到寄载运行时间环境32;
·将由用户对装置10和具体地例如对显示器/触摸屏24、键盘、轨
迹球、触摸棒、其它用户输入装置做出的点击和其它输入传递到
寄载运行时间环境32;
·实现将寄载软件应用带到寄载运行时间环境32中的虚拟前景。
寄载软件应用可类似地使用在本机运行时间环境16中执行的代理——
例如代理46-52或其它——以用于访问本机操作系统14和本机运行时间环
境16的其它资源以及装置10的硬件资源。
因此例如,利用设置有装置10(例如本机设置或以其它方式)的静态、
视频或其它摄像机的寄载软件应用(例如34)可访问和/或改变图片、其它
图像的影片和/或由该摄像机和/或由相关应用资源18和/或运行时间库20
(且更一般地,由本机运行时间环境16)通过使用IO代理50或例如与同一
寄载软件应用相关的另一代理产生的相关数据。
为此目的,与关于步骤72讨论的动作并行地,当形成寄载运行时间环
境32的部分的(例如且是一个或多个寄载软件应用所共有的)摄像机子系
统由寄载软件应用调用时,该子系统加载缓冲器并且/或者向对应于该寄载
软件应用的本机执行的代理发送消息,以便识别将在本机运行时间环境16
内执行的原语(primitive)。与在步骤74中讨论的动作并行地,代理可利
用本机运行时间环境16的摄像机子系统(或其它功能)来执行那些原语。
代理可接着重新加载那个或另一缓冲器或否则产生具有这样的执行的结果
的消息,并可经由它的事件处理机42(例如与上面关于步骤76讨论的动作
并行地)将其传递回到寄载运行时间环境32。寄载运行时间环境32的摄像
机子系统通过将必需的图像和/或其它信息返回到调用该子系统的寄载软件
应用来对来自那个事件处理机42的通知做出响应。
作为非限制性的例子,将认识到,本机执行的代理可由寄载软件应用利
用来访问电话相关服务和/或由装置10和/或其本机运行时间环境16提供的
相关数据。这包括不仅所谓的电话功能的使用(即,进行和接收呼叫),而
且包括电话日志、地址薄和其它联系信息。
在多操作系统移动装置和其它计算装置中的前景应用任务的协调
本机运行时间环境16例如经由在显示器24的桌面上的相应的应用窗口
或图标的用户选择或通过将该应用窗口带到前景并使它成为与用户交互(且
用户输入指向其)的活动任务来对执行本机应用的激活做出响应。类似的功
能由寄载运行时间环境32的事件处理机42提供,尽管是关于执行寄载软件
应用、关于存在于虚拟帧缓冲器54上的虚拟桌面且关于虚拟用户输入装置。
为了更充分地合并用户体验使得在寄载运行时间环境32中执行的应用
对用户而言看起来好像它们在本机操作系统14内执行一样,当IO代理50
由本机运行时间环境16的窗口子系统带到呈现在前面提到的桌面上的图形
用户界面的前景(例如作为在IO代理50的应用窗口上的用户点击的结果、
作为关于该应用的通知的发出的结果或其它)时,该IO代理50实现使相应
的寄载软件应用34在一个或多个寄载运行时间环境32内变成活动的,好像
它被带到它们中的前景一样。
这如何在所示实施方式中实现的理解可通过参考接下来的讨论来获得,
其中:
·使用术语“任务”来代替术语“应用”;
·关于应用(其应用窗口作为相应的操作系统和/或反映该应用的执
行的运行时间环境的图形用户界面的部分被产生)使用术语“交
互式任务”;
·关于装置10的用户当前所交互的应用使用术语“前景任务”;
·术语“简单交互式任务”指在一个进程中运行的应用;
·术语“复杂交互式任务”指在多于一个进程中运行的应用;以及
·虽然不同的基本编号方案被使用,但相似的名称用于在上面讨论
和在图1-4中示出的相似部件。
下面的教导规定管理任务(即应用),其中在寄载应用运行时间环境32
中的前景任务的指定独立于在本机应用运行时间环境16中的前景任务的指
定,且其中在寄载应用运行时间环境32中的任务可以(或可以不)跨越多
个进程。
参考图5,根据本发明的所示实施方式,在具有简单任务模型的操作系
统(例如本机操作系统105)中的本机应用任务每个与单个进程相关联。交
互式本机应用任务230、231通过它们对本机应用运行时间环境110的图形
堆栈255的利用进一步与非交互式任务(未示出)区分开。包括绘图模块245
和合成模块250的图形堆栈255用前景任务的视觉部分更新本机帧缓冲器
260的内容用于经由显示器/触摸屏24向用户显示。
寄载(或非本机)应用任务205、206存在于寄载应用运行时间环境120
内。如果寄载应用运行时间环境120使用与本机操作系统105不同的任务模
型,则每个寄载应用任务205、206分别与代理(或客户端)任务235、236
相关联。代理任务235、236连同本机应用任务230、231一起存在于本机应
用运行时间环境110内,并如本机应用任务230、231一样由在本机应用运
行时间环境110中的相同本机任务管理系统管理。
代理任务235、236监控寄载应用任务205、206的状态(前景或背景),
并使寄载应用任务205、206能够在装置100内充分起作用,而不考虑在应
用运行时间环境110和120之间的差异。在所示实施方式中,当寄载任务被
创建时代理任务被创建,但这不是的本发明的限制。
寄载应用运行时间环境120包括绘图模块210、窗口模块212和合成模
块215,其又一起向虚拟帧(或屏幕)缓冲器220提供寄载应用任务230、
231的视觉部分。
如图6所示,寄载应用运行时间环境120还包括根据复杂任务模型操作
并具有两个进程411、412的任务405和根据简单任务模型操作并具有一个
进程413的任务406。不管怎样,在所示实施方式中,每个任务405、406
分别与一个代理(或客户端)任务235、236相关联,且也分别与一个寄载
应用205、206相关联。
代理(或客户端)任务235、236、任务模块405、406、绘图模块210、
窗口模块212和合成模块215的寄载系统及虚拟帧(或屏幕)缓冲器220一
起提供下面的功能:(i)使寄载应用任务205、206能够作为背景任务在本
机应用运行时间环境110内运行;(ii)使寄载应用运行时间环境120的前
景状态能够从在本机应用运行时间环境110中的任务管理系统的操作和语义
被提取;以及(iii)集成并协调寄载应用运行时间环境120和本机应用运
行时间环境110的操作,使得用户不能分辨在本机应用任务230、231和寄
载应用任务205、206的功能之间的差异。
图7示出根据本发明的优选实施方式的在交互式任务之间切换和更具体
地在本地和寄载运行时间环境之间协调前景/活动任务的方法。特别是,图7
示出在寄载应用接口环境120的虚拟帧缓冲器220中显示的任务如何与其相
应的代理任务和本机应用运行时间环境110的前景任务协调。
在步骤310中,用户从在本机系统中的任务列表选择交互式任务。
本机应用任务230、231和代理任务235、236(如上面陈述和在图6中
所示的,代理任务235、236是在本机应用运行时间环境230内的分别充当
寄载应用任务205、206的代理的任务)都在任务列表中可得到以用于由用
户选择。在步骤315,该方法确定用户是否选择了代理任务或本机应用任务。
代理任务按约定与本机应用任务区分开。可按约定使用值或串可被修改的任
何属性,以识别代理任务。在优选实施方式中,任务名称被用于区分开代理
任务与本机应用任务,但这不是对本发明的限制。
如果用户在步骤315选择本机应用任务(即230、231之一),则该方
法继续进行到步骤322。在步骤322,本机应用运行时间环境110切换到与
选定的本机应用任务相关联的进程,并将选定的本机应用任务带到本机应用
运行时间环境110的前景。
可选地,如果用户在步骤315选择代理任务(即235、236之一),则
该方法继续进行到步骤320。在步骤320,本机应用运行时间环境110切换
到与选定的代理任务(例如,如在本文其它地方讨论的)相关联的进程,并
将选定的代理任务带到本机应用运行时间环境110的前景。
此时,任务切换出现在本机应用运行时间环境110中,并可能需要被传
导到寄载应用运行时间环境120。在步骤325,该方法确定任务切换是否需
要被传导到寄载应用运行时间环境。
在步骤325,该方法确定寄载应用任务是否在寄载应用运行时间环境120
的虚拟前景中。使用由代理任务235、236得到的关于在寄载应用运行时间
环境120中的虚拟帧缓冲器220的状态的信息来做出这个确定。具体地,代
理任务监控寄载应用任务的状态(前景或背景)。
如果寄载应用任务在寄载应用运行时间环境120的虚拟前景中,则任务
切换不需要被传导,且该方法继续进行到步骤330。在步骤330,虚拟帧缓
冲器220的寄载应用任务的视图被更新到本机帧缓冲器260。此时,寄载应
用任务在前景中,且用户将能够观看并利用用户选择的任务。该无缝过渡允
许用户查看寄载应用任务205、206,就好像查看本机应用任务一样。
再次参考步骤325,如果寄载应用任务不在寄载应用运行时间环境120
的虚拟前景中,则任务切换需要被传导,且该方法继续进行到步骤340。在
步骤340,寄载应用运行时间环境120切换到与所述代理任务235、236相关
联的寄载应用任务205、206,如在步骤320中描述的那样。
在步骤345,该方法确定寄载应用任务205、206现在是否在寄载应用运
行时间环境120的虚拟前景中。如果寄载应用任务不在寄载应用运行时间环
境120的虚拟前景中,则该方法等待,直到寄载应用任务移动到寄载应用运
行时间环境120的虚拟前景。此时,该方法继续进行到步骤330,如上所述。
在多操作系统移动装置和其它计算装置中的寄载应用的通知和回复改
写
如上面提到的,合并用户体验使得在寄载运行时间环境内执行的应用对
用户而言看起来好像它们正在本机操作系统14内执行一样的所示计算装置
10的另一例子是公共通知机制的使用,例如本机操作系统14和/或运行时间
环境16的公共通知机制。
这如何被实现的理解可通过参考接下面的讨论来获得,其中:
·将认识到,作为背景的一般问题,一些计算机操作系统具有通知
系统,其中那些操作系统本地的应用发出通知。用户可与那些通
知交互,且交互被传达到发出那些通知的应用。与应用不同,通
知系统是单独的事物,每(操作)系统只有一个;
·在所示实施方式中,前述内容同样对本机操作系统14和更具体地
对本机运行时间环境16适用,存在所有执行的本机软件应用所共
有的单个通知子系统;
·在所示实施方式中,前述内容同样对寄载操作系统14和更具体地
对寄载运行时间环境32适用,存在所有执行的寄载软件应用所共
有的单个通知子系统;
·本机和寄载操作系统被假设具有通知系统的各种实现:每个可具
有一组不同的标准提示、视觉指示器和在不同的进程间消息系统
上的进程间消息,用于使用通知来向应用通知用户交互;
·假设如果通知从两个不同的通知系统被呈现,则装置10的用户将
会感到迷惑,例如一些通知来自本机操作系统的通知子系统而一
些通知来自寄载操作系统的通知子系统;
·虽然使用不同的基本编号方案,相似的名称用于在上面讨论和在
图1-7中所示的相似部件。
下面描述用于使寄载应用能够使用本机系统通知子系统并与本机系统
通知子系统交互的机制。
参考图8,本机操作系统14具有提供通知1101的视觉显示的通知子系
统1102。应用1103使用子系统1102的API来发出通知,并可选地可通过规
定它们通过该API被通知触摸和其它用户动作来与通知交互,该API可使用
进程间通信来向应用传达关于交互的信息。
类似地,寄载运行时间环境32提供由寄载(非本机)应用1106使用的
通知子系统1105。那些应用使用子系统1105的API来发出通知,并可选地
通常通过规定它们通过该API被通知触摸和其它用户动作来与通知交互,该
API可使用进程间通信来向应用传达关于交互的信息。
当对不同的操作系统设计的应用的运行时间环境或与本机环境通知集
成的跨平台运行时间环境被添加到操作系统时,改写层1104可用于在这两
个系统之间转换通知。
改写层1104提供下列功能以便于改写:
·通知的语义:如果例如在本机OS中,当通知由用户确认时应用被
带到前景,这个交互的语义被适当地转换成对寄载非本机环境中
的任务的动作。在所示实施方式中,这以像在图8中所示和上面
关于在本机和寄载运行时间环境之间协调前景/活动任务讨论的
方式一样的方式被实现。
·接口:如果本机环境使用与寄载非本机环境不同的进程间通信机
制(IPC),则改写层使用本机进程间通信系统并且是对本机环境
的非本机应用的代理,以及使用非本机IPC机制来与非本机应用
1106通信。
·图形资源:参考图9,如果非本机应用1201使用非本机API并且
因而改写层1104的通知转换层1202来发出通知,且如果该通知
缺乏在本机环境中的相应图形资源,则包括在寄载运行时间环境
或非本机应用中的非本机图形资源1203将被使用,且如果必要则
转换到在通知1101的本机环境视觉显示器中可显示的格式。转换
层1202可根据需要在改写层1104的本机部件和/或非本机部件中
实现。
在所示实施方式中,改写层1104具有提供前面提到的功能的非本机部
件和本机部件。非本机部件具有用于在寄载操作系统下执行和在一个或多个
寄载运行时间环境内在中央处理单元上执行的指令。它可经由寄载IPC协议
与寄载通知API通信。本机部件具有用于在本机操作系统下执行和在一个或
多个本机运行时间环境内在中央处理单元上执行的指令。它可经由本机IPC
协议与本机通知API通信。
参考图10,当在寄载、非本机环境中的应用1201发出通知时,改写层
确定寄载应用是否正在发出简单的通知(1301),而没有图形资源、需要被
映射的标准提示或返回消息。如果是这种情况,寄载系统(即寄载操作系统)
的方法的参数被转换成在主机系统(即本机操作系统)中的相应参数,且通
知被发出(1302)。
如果通知不是简单的,则确定应用是否正在发出具有标准预定提示文本
或具有特定于应用的提示的通知(1303)。如果被发出的通知使用具有在主
机系统中的配对物的标准提示,则对该提示的引用被映射到对在主机系统中
的配对物的引用(1304)。
如果提示是特定于应用的或如果没有对主机系统中的标准提示的配对
物,则提示文本被传递到主机系统以在调用中被使用来发出通知(1305)。
如果存在图形资源(例如在通知中的通知图标)且待使用的资源来自寄载系
统(1306),则执行(1307)任何必要的格式转换。如果来自主机系统的图
形资源在通知中被使用,则对图形资源的说明或引用被转换成在主机系统中
使用的说明或引用(1308)。
参考图11,如果有附加到通知的、要基于用户与通知的交互而被传送的
消息(以寄载环境的进程间通信(IPC)系统的格式)(1401),则向具有
到主机系统的IPC系统的接口的代理程序登记该消息,且寻址到代理程序的
消息包含对寄载系统的回复消息的引用。现在通知包含:
·提示文本或对在主机系统中的标准提示的引用,
·与消息一起的任何图形资源或对主机系统图形资源的引用,以及
·如果存在,将被传送到存储寄载系统的回复消息的代理程序的回
复消息被发出(1403)到主机系统的通知系统。
参考图12,如果用户与通知1501交互且如果通知返回消息没有寻址到
代理(1502),则它是主机系统应用的通知并在主机系统中被照常处理
(1503)。如果返回消息被寻址到返回消息的代理,则使用主机系统的进程
间通信机制将其传送到代理(1504)。代理使用包含在返回消息中的引用来
找到在通知被发出时向代理登记的返回消息,且使用寄载系统的IPC机制将
这个消息传送到寄载应用,好像它由寄载系统的通知系统发送一样(1505)。
结论
上面描述和在附图中示出的是满足期望目的及其它目的的装置和方法。
本领域中的技术人员将认识到,本文所述和所示的实施方式仅仅是本发明的
示例,包含对本文的实施方式的改变的其它实施方式也落在本发明的范围
内。