利用动态动作委托运行软件应用_2

文档序号:9672522阅读:来源:国知局
以运行(无需等待到要求的资源回归可用)。
[0030]现在参考图3,示出表示可以用于实现本公开实施例的示例性应用场景的主软件单元的角色的合作图。
[0031]特别是,软件单元通常存储于大容量存储器中,并且当程序在运行时,(至少部分地)装载到移动设备的工作存储器中。首先,将程序从移动储存设备或者从网络(诸如因特网)安装在大容量存储器上。在这方面,每个软件单元都可以表示代码模块,代码分段或者代码部分,该代码模块,代码分段或者代码部分包括一个或者多个用于实现特定逻辑功能的可执行指令。特别是,该图既描述了软件单元的静态结构又描述了其动态性能(利用一系列交换消息,每个交换消息分别表不以符号“0”在前的序列号表不的相应操作)。
[0032]移动设备100具有直接在其硬件上运行的(移动)操作系统305,其硬件限定在上面运行任何其他程序的软件平台(例如,Google Inc.的Android,注册商标);操作系统305具有主要对触摸屏设计的用户界面,该触摸屏基于利用手势采用可能的触觉反馈(即,对应于实际位置的输入)的直接操纵。
[0033]不同app可以安装于移动设备100上,每个app (例如,以Java编程语言编写的)意在运行于沙盒(sandbox) ( S卩,对移动设备100的紧密控制资源提供访问的隔离环境)中。app包括一个或者多个组件,其中可以单独激活每个组件,以执行特定任务。每个组件都可以是活动的(显示用户界面的单个屏幕)、服务(运行于背景中)、广播接收机(响应广播通知)或者内容提供商(管理数据储存)。app还包括清单文件。该清单文件宣告对操作系统305可见的app的组件;可以利用指出其能力的一个或者多个意图过滤器可以宣告每个组件(即,每个分别指出组件能够执行的任务)。清单文件宣告可能特征,每个可能特征分别指出app使用的(硬件和/或者软件)资源(例如,操作系统级、VoIP、传感器、WiF1、蓝牙、摄像机、GPS、USB);每个特征都可以具有指出在没有其的情况下不能运行的app要求该特征,还是只有在没有其的情况下仍可以运行的app优选该特征。对于当安装app时不检验其在移动设备100上的可用性的操作系统305,该特征仅是信息性的(但是其他应用可以使用它们,例如,以防止在不能运行其的移动设备上下载该app)。清单文件还宣告允许访问app的沙盒之外的资源(处于其装备的用户设备100的用户要特许的)。
[0034]通过对操作系统305的内容分解器提交相应请求,激活每个内容提供商。通过对操作系统305提交相应消息(称为意图),激活每个活动、访问和广播接收机。意图可以是显式的也可以是隐式的。显式内容指出要激活的特定组件(在同一个app中或者在不同app中),该特定组件静止地(或者早期)绑定到其。相反,隐式意图仅指出要执行(对于活动和服务)或者通知(对于广播接收机)的动作,使得分别执行或者接收动作的实际组件在运行时动态地(或者之后)绑定到其。利用其一个或者多个特征将该动作定义为抽象水平的(隐式)意图。特别是,意图定义动作的类型(利用相应常数);该意图还可以定义要动作的数据(例如,位置和类型)、应当激活的一个或者多个组件类别、要传送到激活组件的额外信息以及指示如何管理激活组件的标志。通过找到能够执行或者接受其动作的组件,操作系统305在运行时分解每个意图。为此,操作系统305包括利用所有安装的app的意图过滤器在意图中定义的动作。每个意图过滤器同样指出组件在抽象级能够执行(对于活动和服务)或者接受(对于广播接收机)的动作;特别是,意图过滤器定义一个或者多个动作类型,并且其还可以定义要动作的数据及其一个或者多个类别。对意图测试每个意图过滤器;当意图的动作类型与其动作类型中的一个匹配时,意图的每个类别与其类别中的一个匹配时以及意图的数据与其一个匹配时,认为意图过滤器通过测试。然后,操作系统305激活其意图过滤器通过该测试的组件(然而,当没有发现组件时,产生例外);当多个组件通过该测试时,用户手动地或者自动地选择其中一个(例如,根据优先权或者由默认)。
[0035]在所讨论的例子中,非常简单的app 310安装于移动设备100上。app 310包括采用服务S0的活动A0 (或者包含在或者不包括在app 310中)和另一个活动al (如虚线的相应箭头所示,在运行时隐式绑定)。app 310具有清单文件315,该清单文件315尤其定义具有意图过滤器的活动A0、A1并且可以定义定义服务S0 ;特别是,活动A0具有两个意图过滤器IFAOa、IFAOb,并且服务S0 (如果存在)具有意图过滤器IFS0 (具有任何相应要求特征的指示)。例如,app 310实现短期天气预报;活动A0提供app 310的开始屏幕(具有对应于其意图过滤器IFAOa和IFAOb的两种不同布局),服务S0测量本地大气压力,并且根据其随着时间的变化(具有指出气压计的相应动作和需要的意图过滤器IFS0),确定天气预报,并且活动A1显示天气预报。
[0036]在根据本公开实施例的解决方案中,委托app 320也安装在移动设备100上。委托app 320包括代理服务Sp,该代理服务Sp将自己注册为能够执行一个或者多个服务(安装于移动设备100上的app的)的动作;特别是,在所讨论的例子中,代理服务Sp将自己注册为能够执行服务S0的相同动作。代理服务Sp采用评估服务Se,该评估服务Se评估对代理服务Sp请求的每个动作的委托。评估服务Se采用测量服务Sm,该测量服务Sm测量移动设备100的一个或者多个量度(例如,电池电量、可用无线连接、相应带宽)。评估服务Se还采用发现服务Sd,该发现服务Sd发现可用于执行对代理服务Sp请求的动作的其他计算机器(例如,其他移动设备、下面称为远程移动设备)。发现服务Sd还对来自其他移动设备的相应请求做出响应;对于该用途,发现服务Sd还采用测量服务Sm。委托app 320建议清单文件325,该清单文件325尤其利用其意图过滤器定义服务Sp、Se、Sm、Sd ;特别是,代理服务Se与服务SO具有相同的意图过滤器IFS0 ;评估服务Se具有用于评估动作的委托的意图过滤器IFe ;测量服务Sm具有用于测量移动设备100的量度的意图过滤器IFm ;并且发现服务Sd具有用于发现远程移动设备的可用性的意图过滤器IFda和用于对相应请求做出响应的意图过滤器IFdr。
[0037]利用操作系统305注册app 310和委托app 320的意图过滤器(如在其清单文件315和325中分别指出的)。当每个app 310,320分别安装于移动设备100上时并且每当其清单文件315、325分别更新时,执行该操作;特别是参考委托app 320,通过下载其新版本以跟上移动设备的技术发展或者通过对安装的/删除的app的服务附加/移除意图过滤器,可以更新清单文件325(01.Register)。
[0038]每当app 310运行时,一激活其,其活动A0就将服务S0的动作的意图(分别称为app意图和app动作)提交给操作系统305。特别是,在所讨论的例子中,根据其随着时间的变化以及该用途的气压计的需要,app意图指出监视本地大气压力并且确定天气预报(02.1ntent)。通过找到能够执行app动作的组件,操作系统305试图分解app意图。在这种情况下,操作系统305始终在查明代理服务Sp通过对app意图的测试(因为利用相同app动作的意图过滤器注册)。此外,操作系统305还可以在通过对app意图测试的移动设备100上找到本地服务(即,在所讨论的例子中,当服务S0存在于移动设备100上时);然而,将代理服务Sp的意图过滤器注册为默认的,以使操作系统305在任何情况下选择其。因此,app意图始终动态地绑定到代理服务Sp,使得激活其,以执行在此所指的动作(03.Bind)。
[0039]在对其做出响应时,代理服务Sp提交利用评估服务Se评估app意图的显式意图,操作系统305将该评估服务Se直接绑定到其(04.Evaluate)。根据一个或者多个的一组策略(例如,从从该图中未示出的相应内容提供商读取),评估服务Se判定是必须在本地或者必须远程执行app动作。为此,可以执行不同的策略。首先,评估服务Se确定能够执行app动作的本地服务是否存在于移动设备100上;为此,评估服务Se检验是否存在通过对app意图的测试本地服务(即,所讨论的例子中的服务S0)以及移动设备100是否具有app意图要求的所有特征(即,所讨论的例子中的气压计)。如果未找到具有要求特征的本地服务,则始终在远程委托执行app动作。相反,判定在本地还是在远程委托执行app动作可以基于移动设备100的一个或者多个选择量度。在这种情况下,评估服务Se提交用于使测量服务Sm测量量度的显式意图,操作系统305将该测量服务Sm直接绑定到其。可以在测量服务Sm级定义要测量的量度(例如,从该图未示出的相应内容提供商读取),在相应意图中,它们可以由评估服务Se传递,或者可以对它们硬编码。测量服务Sm测量量度并且使其指示返回评估服务Se (05.Measure)。然后,评估服
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1