多个应用版本的分发的制作方法

文档序号:6496512阅读:275来源:国知局
多个应用版本的分发的制作方法
【专利摘要】在一个方面中,本申请描述一种用于确定软件应用的、以计算设备为目标的版本的方法。该方法包括在应用集市系统处并且从与从应用集市系统远离地操作的计算设备关联的用户接收与由应用集市系统分发的软件应用对应的请求,软件应用具有在应用集市系统上的多个版本。该方法也包括确定与计算设备关联的一个或者多个设备属性,并且基于设备属性从在应用集市系统上的多个版本之中标识软件应用的、以计算设备为目标的特定版本。该方法也包括用于向用户显示并且响应于请求来提供与软件应用的特定版本有关的信息。
【专利说明】多个应用版本的分发
[0001]有关申请的交叉引用
[0002]本申请要求对于2011年7月20日提交的、标题为MULTIPLE APPLICATIONVERSIONS的第13/187,198号美国申请的优先权,其公开内容通过引用结合于此。
【技术领域】
[0003]本文总体涉及软件分发系统。
【背景技术】
[0004]可以使用多种模型来销售和分发软件应用。有时用来分发以移动设备和其它计算设备为目标的应用或者app的模型的一个示例是应用集市模型。在这一模型中,软件开发者可以提交它们的应用用于在在线应用集市中发布,并且集市可以提供允许用户浏览或者搜寻发布的应用的接口。
[0005]在用户标识他或者她希望获得的应用时,应用集市一般可以有助于交易。例如在免费应用的情况下,应用集市可以简单地提供该应用以用于向用户的设备中的一个或者多个设备下载。在付费应用的情况下,应用集市可以提供应用用于下载,并且也可以提供与从用户收集付费并且补偿软件开发者有关的服务。应用集市通常可以由软件开发者和用户二者信任的组织运作以适当处理任何这样的交易。

【发明内容】

[0006]本文档描述允许开发者或者发布方在软件分发系统、比如应用集市中提供特定应用的多个版本的系统和技术。可以以应用的不同版本为目标,以便基于请求应用的特定设备的能力或者与设备关联的其它属性而向不同设备或者设备类型分发。例如应用的标准版本可以以具有标准能力的基本智能电话为目标,并且相同应用的大屏幕版本可以以具有在某个尺寸以上的屏幕的写字板或者智能电话为目标。作为另一示例,应用的基本版本可以与具有特定操作系统的设备为目标,而应用的利用更加新的操作系统的一些特征的高级版本可以以具有安装的更加新的操作系统的设备为目标。
[0007]取代向浏览应用集市的用户呈现应用的多个版本中的所有版本(这可能让用户混淆)的是,应用集市可以代之以确定多个版本中的哪个版本与用户的设备最适合地匹配,并且仅向用户呈现该特定版本。这样,开发者可以在应用集市上发布应用的多个不同版本,而不担心用户意外地选择与用户的各设备不兼容或者未为这些设备优化的版本。此外,应用集市可以能够跨应用的不同版本监视各种应用度量、比如用户排名和安装统计。
[0008]在一个方面中,本申请描述一种用于确定软件应用的以计算设备为目标的版本的由计算机实施的方法。该方法包括在应用集市系统处并且从与计算设备关联的用户接收与由应用集市系统分发的软件应用对应的请求,该计算设备与应用集市系统远离地操作,软件应用具有在应用集市系统上的多个版本。该方法也包括确定与计算设备关联的一个或者多个设备属性并且基于设备属性从在应用集市系统上的多个版本之中标识软件应用的、以计算设备为目标的特定版本。该方法也包括用于向用户显示并且响应于请求来提供与软件应用的特定版本有关的信息。
[0009]在另一方面中,本申请描述一种用于通过应用集市分发软件的由计算机实施的方法。该方法包括在计算机系统处并且从应用开发者接收软件程序的多个版本。该方法也包括用计算机系统将软件程序的版本中的特定版本与特定计算设备、设备类或者设备能力进行关联。该方法也包括在计算机系统处并且从软件程序的预期用户与定义用户的设备的能力的信息一起接收对于软件程序的请求。该方法也包括从软件程序的多个版本之中选择与用户的设备的定义的能力匹配的特定版本,以及通过电子网络向用户的设备递送软件程序的选择的版本。
[0010]在另一方面中,本申请描述一种用于通过应用集市分发软件的由计算机实施的系统。该系统包括:应用发布方计算系统,其从应用发布方接收软件程序的多个版本,并且将软件程序的版本中的特定版本与特定计算设备、设备类别或者设备能力进行关联。该系统也包括:应用集市计算系统,其从软件程序的预期用户与定义用户的设备的能力的信息一起接收对于软件程序的请求。应用集市计算系统也从软件程序的多个版本之中选择与用户的设备的定义的能力匹配的版本,并且通过电子网络向用户的设备递送软件程序的选择的版本。
[0011]在附图和以下描述中阐述一个或者多个实施例的细节。将根据描述和附图以及从权利要求清楚其它特征和优点。
【专利附图】

【附图说明】
[0012]图1A是示出用于发布和分发软件应用的环境的示例的概念图。
[0013]图1B是示出应用发布方系统和应用市场系统的示例的系统图。
[0014]图2是允许软件发布方上传软件应用的多个版本的示例用户接口的图。
[0015]图3是允许软件发布方描述和修改软件应用的不同版本以其为目标的设备组的示例用户接口的图。
[0016]图4是用于发布和分发具有不同版本的软件应用的示例过程的泳道图。
[0017]图5示出可以用来实施这里描述的技术的计算机设备和移动计算机设备的示例。
[0018]在各种附图中的相似标号指示相似单元。
【具体实施方式】
[0019]本文描述允许软件开发者和/或发布方在应用集市中发布应用的多个版本的系统和技术。这样的功能可以在多个不同情形中由软件开发者和/或发布方使用。例如软件开发者可能想要它的应用支持具有不同屏幕尺寸的设备(例如智能电话和写字板),并且可能希望提供专门为将执行该应用的特定设备定制的图形和其它用户接口元素。在这样的示例中,软件开发者可以开发应用的两个或者更多版本并且可以在应用集市中发布两个或者更多版本用于向适当设备分发。相似地,另一应用开发者可能希望支持具有不同操作框架(例如操作系统或者应用编程接口(API))的设备并且可能想要提供特定于设备的特定框架的特征。同样,软件开发者可能想要选择发布应用的不同版本并且可以依赖于应用集市以向为请求应用的特定设备分发适当版本。[0020]根据这里描述的技术,应用集市可以通过确定与设备关联的某些属性来标识用于设备的应用的适当版本。继续以上示例,应用集市可以从具有小屏幕尺寸的智能电话接收请求并且基于智能电话的屏幕尺寸可以提供应用的小屏幕版本用于由智能电话下载。响应于接收到相似请求,但是是从额外大屏幕尺寸的写字板接收该请求,应用集市可以代之以提供应用的大屏幕版本用于由写字板下载。
[0021]在一些实现中,这样的功能可以对用户透明,原因在于用户无需了解应用的不同版本。取而代之,在这样的实现中,应用集市可以仅向用户示出应用的以用户的特定设备为目标的版本。以这一方式,应用集市可以防止在向用户呈现多个不同的用于下载的选择的情况下原本可能出现的用户混淆。
[0022]图1A是示出用于发布和分发软件应用的环境100的示例的概念图。在环境100中,使用计算设备102的软件发布方可以与发布方系统104交互以如标注为A的箭头所示上传和/或发布应用的多个版本。软件发布方也可以使用发布方系统104以定义作为应用的特定版本的目标的特定设备、设备类型或者设备组。例如软件发布方可以指定应当向具有相机的移动计算设备提供应用的一个版本而应当向无相机的移动计算设备提供相同应用的另一版本(例如不包括拍摄图片的能力的更不复杂的版本)。
[0023]发布方系统104可以允许软件发布方用多种方式指定版本目标设定。例如在一些实现中,软件发布方可以包括在与相应应用版本对应的应用二进制文件中、例如在二进制文件中嵌入的清单文件中的元数据信息。清单文件可以描述与能够执行应用的设备或者设备类型有关的某些依赖关系、限制或者其它类型的信息。在清单文件中的信息可以由应用发布方系统104用来自动(例如无用户干预)定义可以用来使版本以特定设备或者设备组为目标的一个或者多个应用特性的集合。例如如果清单声明应用版本仅与操作系统(0S)2.0或者以上兼容,则应用发布方系统104可以自动使应用版本以具有2.0或者以上版本的设备为目标。应用的另一版本可以包括声明与0S1.6至1.8兼容的清单,并且应用发布方系统104因此可以使应用版本以具有0S1.6至1.8的设备为目标。
[0024]在其它实现中,应用发布方系统104可以提供用户接口,该用户接口允许软件发布方使用各种设备属性来定义设备组。设备组可以各自对应于软件应用的不同版本。例如软件发布方可以选择用来区分各种设备组的一个或者多个设备属性并且可以提供用于设备属性中的每个设备属性的值或者值范围以定义设备组。软件发布方可以定义适当数目的设备组——每个设备组可以与应用的一个特定版本关联——以控制相应应用设备向作为应用版本的目标的适当设备的分发。通过使用多个不同设备属性组合来定义设备组,软件发布方可以能够使用任何适当级别的粒度来指定对它的应用版本的分发。
[0025]应用发布方系统104也可以使用这些方式的组合以定义用于使应用版本以特定设备组为目标的设备组。例如发布方系统104可以初始地使用来自用应用二进制文件包括的清单的信息来自动设立设备组、然后可以允许软件发布方适当时调整或者调节设备组。
[0026]在计算设备102与发布方系统104之间的通信可以通过任何适当网络(例如因特网、LAN、WAN、无线宽带或者其任何组合)出现。计算设备102被描绘为桌面型计算机,但是其它类型的计算设备(例如膝上型计算机、网本、写字板、智能电话、机顶盒等)也可以与发布方系统104通信。相似地,发布方系统104被描绘为独立服务器,但是发布方系统104可以代表服务器群集、服务器群或者可以用来托管发布方系统104的功能的其它服务器分组。在一些实现中,发布方系统104可以由提供这里描述的发布服务的受信任的组织操作。
[0027]在从软件开发者接收用于发布应用、包括应用的一个或者多个版本的指令时,发布方系统104可以如标注为B的箭头所示向应用数据存储装置106中的一个或者多个数据结构写入关于应用的某些信息。数据结构一般可以用来描述应用并且也可以用来描述应用的各种发布和/或未发布的版本。作为示例,数据结构可以包括比如描述应用的各种版本的版本化信息、描述版本以其为目标的设备或者设备类型的设备组信息和一般与应用或者与应用的具体版本关联的其它适当元数据(例如定价信息、文本描述、屏幕截图、图标、用于从下载应用的用户接收付款的账户等)这样的信息。
[0028]在发布方系统104已经发布应用之后,应用可以表现为用于经由可以被配置用于读取在应用数据存储装置106中存储的数据结构的应用市场系统108下载的应用。根据这里描述的技术,在已经在应用市场系统108上发布应用的多个版本时,系统可以确定应用版本中的哪个应用版本适合于请求应用(或者在使用不同计算设备来请求应用的情况下的情况下为其请求应用)的特定计算设备,并且可以向计算设备提供应用的该特定版本。在一些情况下,这样的功能可以减少用户混淆,并且仍然可以向软件发布方提供用于发布应用的以不同设备或者设备类型为目标的多个版本的能力。
[0029]在环境100中,用户可以如标注为C的箭头所示向多个不同客户端计算设备、例如设备110、112和116来访问应用集市系统108。移动客户端计算设备、例如设备110和112如智能电话或者写字板可以通过无线通信信道或者任何其它适当通信信道与应用集市系统108通信。在一些实现中,移动计算设备可以具有安装为在设备上执行的应用的应用集市客户端并且可以用来促进与应用集市系统108通信。客户端计算设备116代表可以通过适当网络与应用集市系统108通信以访问用于应用集市系统108的基于web的前端的桌面型计算设备。
[0030]在客户端计算设备的用户向应用集市系统108提交请求时,系统可以从应用数据存储装置106读取以响应于请求来标识各种发布的应用,并且可以提供在客户端计算设备上显示与响应应用有关的信息。例如用户可以提交对于浏览集市上的各种应用的请求或者可以使用关键字来提交对于发现与录入的关键字关联的应用的搜索请求。
[0031]响应于接收这样的请求,应用集市系统108可以确定向客户端计算设备提供特定应用的哪个版本。在应用仅有单个版本的情况下,应用集市系统108可以使用过滤技术以仅显示与请求设备兼容的应用。在应用具有在应用集市系统108上可用的多个发布的版本的情况下,系统可以基于设备的一个或者多个属性标识应用的以请求设备为目标的特定版本并且可以向客户端计算设备提供与该特定版本有关的信息。
[0032]作为示例,智能计算设备110可以提交与具有在应用集市系统108上发布的多个版本的应用对应的请求。请求可以包括设备信息、比如设备标识符,该设备信息允许应用集市系统108标识与设备110关联的某些属性。例如请求可以包括设备标识符或者其它设备信息(例如框架版本),该设备标识符或者其它设备信息可以允许应用集市系统108确定智能电话具有作为用于设备的框架而安装的0S2.2。应用集市系统108然后可以标识应用的以运行0S2.2的智能电话为目标的特定版本并且可以向智能电话提供关于应用的该特定版本的信息。如果智能电话的应用继而决定下载应用,则提供应用集市系统108标识的特定版本以供下载到设备。如果安装有0S3.0的写字板计算设备112作出相似请求,则应用集市系统108可以不同地进行响应、比如通过标识应用的以运行OS3.0或者更高的写字板为目标的不同版本并且提供不同版本以供写字板计算设备下载。
[0033]在一些情况下,应用集市系统108可以从与将安装和执行应用的设备不同的设备接收请求。例如应用集市系统108可以提供基于web的前端,该前端允许用户例如使用桌面型计算机来浏览和搜索应用市场,以便找到他们希望在他们的移动设备中的一个或者多个移动设备上安装的应用。在这样的情况下,应用被既定用于的设备可能在用户提交请求时未知。例如用户可以匿名地浏览前端或者可以登录、但是具有与用户的账户关联的多个计算设备。系统可以向用户提供关于应用的一般信息,直至应用集市系统108能够断定特定应用被既定用于的特定设备。例如系统108可以显示代表软件应用的所有版本的概要信息(例如跨所有版本相同的定价、代表所有版本的屏幕截图等)。系统108也可以指示关于应用的具体详情可以基于应用的适合于既定的设备的版本而变化。
[0034]一旦应用集市系统108能够断定用于应用的既定设备,例如如果用户指示将在其上安装应用的特定设备,则系统108可以如先前描述的那样继续。具体而言,应用集市系统108可以确定与既定设备关联的一个或者多个设备属性,并且可以标识应用的适合于该设备的特定版本。应用集市系统108然后可以向既定设备提供关于特定版本的信息,并且可以促进将特定版本下载到既定设备。在一些实现中,登录的用户可以能够发起经由基于web的前端向不同设备安装,其中例如通过推送通知或者其它适当机制向既定设备递送应用的适当版本。
[0035]在一些实现中,应用集市系统108可以存储与在系统上发布的应用关联的各种度量值。例如应用集市系统108可以存储与系统分发的各种应用关联的安装度量值、排名度量值和其它适当度量值。这样的度量值可以与度量值适用于的特定应用关联地存储于应用数据存储装置106中。
[0036]在一些实现中,可以跨多个版本聚合与应用的不同版本关联的度量值。例如如果已经下载并且在计算设备上安装版本1.2的一万个副本并且已经安装版本1.4的两万个副本,则应用集市系统108提供的安装度量值可以反应应用的总安装基数是三万个设备。在相似示例中,可以跨应用的不同版本聚合用于特定应用的排名信息,从而可以监视和存储总排名分数,该总排名分数考虑为分离版本中的每个版本接收的排名。
[0037]虽然出于示例的目的而分离地示出应用发布方系统104、应用数据存储装置106和应用集市系统108,但是应当理解,环境100中所示系统提供的功能可以由更少设备或者系统提供(例如将多个设备或者系统组合成单个设备或者系统)、可以分布于附加设备或者系统之中,或者可以由与所示设备或者系统不同的设备或者系统提供。
[0038]图1B是示出应用发布方系统104和应用集市系统108的示例的系统图。如图所示,应用发布方系统104和应用集市系统108可以共享可以用来存储两个系统公共的应用信息的公共应用数据存储装置106。
[0039]应用发布方系统104可以包括接口 120、请求方处理器122、设备组管理器124、维度信息数据库126、二进制文件解析器128和响应格式化器130。接口 120可以向软件发布方提供对发布方系统104的访问,并且可以提供适当用户接口、比如以下与图2和3关联地更具体描述的用户接口。来自软件发布方的请求和对软件发布方的响应可以分别由请求处理器122和响应格式化器130处理。[0040]设备组管理器124可以控制使各种应用版本以具体设备、设备类型或者设备组为目标。例如设备组管理器124可以允许软件发布方创建和/或修改设备组,每个设备组可以对应于特定应用的不同版本。可以使用一般可以与设备或者设备类型的能力或者属性对应的任何适当数目的维度。可以在维度信息数据库126中存储和/或更新各种维度。
[0041]例如在一些实现中,发布方系统104可以允许软件发布方使用包括安装的设备框架、显示屏幕尺寸和图形处理能力的三个维度来定义设备组。也可以在系统中使用例如其它和/或附加维度、例如包括与OpenGL ES版本有关的维度、计算设备的本机平台(ARMEABIv7, INTEL等)、各种设备硬件或者软件特征(例如相机、蓝牙、Wi_F1、电话等)、设备的载体和/或它的位置。
[0042]软件发布方可以选定在使用发布方系统104来定义特定设备组时利用可用维度中的一个或者多个维度。例如在一些情况下,软件发布方可以具有应用的全部与不同设备框架有关的不同版本(例如用于OS版本1.6至1.8的一个版本、用于OS版本2.0至2.2的第二版本以及用于OS版本3.0和以上的第三版本)。在这样的情况下,软件发布方可以定义仅由设备框架维度区分的三个不同设备组。在其它情况下,软件发布方可以选定使用附加和/或不同维度来进一步细化设备组。应当理解,发布方系统104可以在各种实现中被配置用于提供与适合于提供的特定实现一样多或者一样少的维度。
[0043]二进制文件解析器128可以解析软件发布方已经向系统上传的应用二进制文件。解析器128可以例如用来分离应用数据与描述应用的元数据。例如在一些实现中,二进制文件解析器128可以用来提取在应用二进制文件中嵌入的清单文件。在一些情况下,在清单文件中的信息(或者与二进制文件关联的其它适当信息)可以用来自动指定作为应用二进制文件的目标的设备或者设备类型。
[0044]应用市场系统108可以包括接口 132、请求处理器134、设备标识符模块136、用户和/或设备信息数据库138、应用管理器140和响应格式化器142。接口 132可以在一些实现中包括多个接口、比如用于接收和响应于在各种客户端设备上执行的应用集市客户端的应用接口,以及用于接收和响应于用来访问应用集市系统108的由web应用提供的请求的基于web的前端接口。来自应用集市系统108的各种用户的请求和对这些用户的响应可以分别由请求处理器134和响应格式化器142处理。
[0045]设备标识符模块136可以用来标识与给定的请求关联的特定设备。例如对于通过在特定设备上执行的应用市场客户端提供的请求,请求可以包括唯一设备标识符或者专属于个体设备的其它信息。设备标识符模块136可以使用请求中的设备标识符信息以查询用户和/或设备信息数据库138,以确定与请求设备关联的某些属性。然后可以向应用管理器140传递这些属性,以用于在确定应当向请求设备提供请求的应用的哪个版本时使用。在一些实现中,请求本身可以包括设备属性信息,该设备属性信息可以用来标识应用的用于请求设备的适当版本。
[0046]对于通过基于web的前端提供的请求,设备标识符模块136可以使用登录信息或者其它由用户提供的信息,以确定与请求关联的特定设备。例如如果用户登录到系统,则设备标识符模块136可以查询用户和/或设备信息数据库138以确定与登录进来的用户关联的一个或者多个设备。如果用户仅有一个关联设备或者如果用户已经指定请求与之关联的特定设备(例如通过选择请求的应用被既定用于的设备),则设备标识符模块136可以如以上描述的那样确定与用户的设备关联的属性,该属性继而可以向应用管理器140提供。
[0047]在一些情况下,从匿名用户或者从登录进来的但与多个设备关联的用户接收通过基于web的前端提供的请求。在这样的情况下,应用被既定用于的设备可以在用户提交请求时未知。系统可以向用户提供关于应用的一般信息,直至应用集市系统108108能够确立特定应用被既定用于的特定设备。例如系统108可以显示代表软件应用的所有版本的概要信息(例如跨所有版本相同的定价、代表所有版本的屏幕截图等)。系统108也可以指示关于应用的某些详情可以基于应用的适合于既定设备的版本、例如通过显示“按设备变化”消息而变化。在应用集市系统108能够断定用于应用的既定设备之后,例如如果用户指示将在其上安装应用的特定设备,则系统108可以如先前描述的那样继续以确定与用户的设备关联的属性并且向应用管理器140提供属性用于进一步处理。
[0048]应用管理器140可以用来确定请求的应用的适当版本以向请求设备提供。例如应用管理器140可以比较与请求设备关联的设备属性与不同可用应用版本的规范以确定版本中的任何版本是否以请求设备为目标。如果是这样,则应用集市系统108可以比如通过响应于请求而显示关于特定版本的信息,来向请求设备提供应用的特定版本。在一些情况下,响应可以包括将使应用得以下载到请求设备的机制、例如链接。在应用管理器140确定应用的版本都未以特定请求设备为目标的情况下,应用管理器140可以返回空结果,并且应用集市系统108可以提供应用对于请求设备不可用这样的响应。
[0049]如果例如使用发布方系统104来将各种应用版本与相应设备组进行关联,则应用管理器140可以匹配设备属性与特定设备组并且可以向请求设备提供与特定设备组关联的应用版本。例如如果请求设备属性包括0S2.0和大屏幕尺寸,则应用管理器140可以标识与那些属性匹配的设备组,并且向设备提供与该设备组关联的应用版本。在一些实现中,多个设备组可以被配置用于匹配请求设备的属性(例如可以在设备组的定义中有某个重叠)。在这样的实例中,应用管理器140可以利用预定的平分决胜规则(tie-breaking rule)以确定向请求设备提供应用版本中的哪个应用版本。例如应用管理器140可以从与设备属性匹配的设备组之中向请求设备提供具有最高版本代码的应用版本。在其它实现中,可以在这样的情形中应用附加或者备选平分决胜规则(例如向请求设备提供最新近更新的应用版本或者可以提供与优选设备组关联的应用版本或者可以提供最具体或者最多限制的应用版本)。
[0050]在一些实现中,应用管理器140可以使用预定过程来确定请求的应用的用于向请求设备提供的适当版本。预定过程可以首先按照发布的应用版本代码的倒序对设备组排序。然后可以匹配设备属性与对应设备组属性中的每个设备组属性直至标识出匹配设备组。在一些情况下,还可以评估与设备组关联的应用版本以确定应用版本是否针对设备上使用兼容(例如在应用除了具有用于定义设备组的维度的限制之外的限制的情况下)。如果为设备标识出适当应用版本,则将其提供给请求设备。否则,系统可以做出响应为应用对于请求设备不可用。
[0051]图2是允许软件发布方上传软件应用的多个版本的示例用户接口 202的图。用户接口 202可以提供多个不同控件和输入,以允许软件发布方关联上传的应用版本与特定设备组。虽然示出用户接口 202为包括文本框204、210、按钮206、208和214以及下拉框212的具体配置,但是应当理解也可以提供其它配置和/或输入机制。[0052]在示例用户接口 202中,软件发布方可以在文本框204中指定应用二进制文件的路径。应用二进制文件可以对应于软件应用的版本之一。如图所示,用户接口 202也可以包括允许软件发布方浏览本地计算设备的文件系统和/或其它可访问计算设备的文件系统的浏览按钮206。在已经录入通向应用二进制文件的路径之后,软件发布方可以点击上传按钮208以向发布方系统上传二进制文件。
[0053]用户接口 202也可以包括允许软件发布方描述已经对应用版本做出的新近改变的文本框210。例如在待上传的应用版本是对先前应用的更新的情况下,软件发布方可以用发行备注的形式录入文本,这些发行备注可以在与更新一起呈现它们时向用户呈现。这样的信息可以对用户在决定是否在他的或者她的计算设备上安装更新是有所帮助,并且潜在地提醒用户自从上次更新起可能已经向应用添加的新特征。
[0054]用户接口 202也可以包括允许软件发布方在特定设备组上发布应用二进制文件的下拉框212或者另一适当控件。如以上描述的那样,特定设备组可以对应于作为应用版本的目标的设备组或者设备类型。例如一个设备组可以与智能电话关联,而另一设备组可以与写字板关联,并且更多另一设备组可以与机顶盒计算设备关联。作为另一示例,设备组可以以具有小或者中等屏幕尺寸的智能电话为目标,而另一设备组可以以具有大或者超大屏幕尺寸的智能电话为目标。使用如这里描述的设备组可以允许软件开发者创建它们的应用的为特定设备或者设备组优化或者定制的不同版本,并且可以向软件发布方提供对如何向特定设备发布各种版本的增加的控制。在一些实现中,下拉框212可以提供例如基于已经从与应用二进制文件关联的清单文件解析的信息从预定义设备组预选的建议的设备组。在这些情况下,软件发布方可以接受用于应用版本的建议的设备组或者可以被允许选择在下拉框中可用的不同设备组。一旦软件发布方已经完成输入关于正在被上传的应用版本的信息,发布方可以点击保存按钮214以完成上传过程。
[0055]在一些实现中,允许软件发布方例如通过点击保存按钮214来完成上传过程而未选择特定设备组。例如软件发布方可以在上传时间上传未被既定用于发布的一个或者多个版本,因此软件发布方可以选择不选定设备组以与应用版本关联。在一些实现中,仅发布已经与一个或者多个特定设备组关联的应用版本用于在应用集市系统上由用户访问。
[0056]图3是允许软件发布方描述和修改作为软件应用的不同版本的目标的设备组的示例用户接口 302的图。如同用户接口 202,用户接口 302可以提供多个不同控件和输入以允许软件发布方指定如何处理软件应用的不同版本。虽然示出用户接口 302为包括选项卡304、按钮314、316和318、滑块以及下拉框312的具体配置,但是应当理解也可以提供其它配置和/或输入机制。一般而言,用户接口 302可以向软件发布方提供对它们的应用的版本如何以特定设备组为目标的控制,并且可以提供对哪些设备将接收特定应用的版本的可视化。
[0057]用户接口 302可以呈现如图所示包括产品详情选项卡、设备组选项卡304和APK选项卡的选项卡式的接口。在这一具体示例中,设备组选项卡304是活跃的。一般而言,产品详情选项卡可以允许软件发布方指定一般关于应用的各种信息、比如应用的描述、应用的屏幕截图等。这样的信息可以适用于应用的所有不同版本。设备组选项卡304如以下更具体描述的那样可以允许软件发布方创建和/或修改可以用来关联具体应用版本与作为特定应用版本的目标的特定设备或者设备类型的设备组。APK选项卡可以允许软件发布方管理已经为特定应用上传的二进制文件,或者上传与应用关联的附加二进制文件。应当理解,虽然本文讨论形式为APK文件的应用二进制文件,但是也可以根据这里描述的技术处理其它类型的应用二进制文件。
[0058]设备组选项卡304可以包括多个设备组306、308和310,每个设备组可以用来描述用于正被发布的软件应用的特定版本的目标设备。在示例中,应用版本1.1与标注为“标准电话”的设备组306关联。设备组306以具有0S1.6、小或者中等屏幕尺寸和“GL_ATI_texture_compression_atitc” OpenGL纹理压缩格式的设备为目标。应用版本1.3与标注为“高端电话”的设备组308关联并且以具有从0S1.8至2.1和从小到大屏幕尺寸的设备为目标。在这一示例中,设备组308与任何OpenGL纹理压缩格式兼容。设备组310标注为“写字板”并且以具有0S3.0、超大屏幕尺寸的设备为目标。这些和其它设备组配置可以经由用户接口 302由应用的发布方管理。
[0059]设备组可以包括可以用来以应用的用于具体设备的具体版本为目标的任何适当数目的设备属性或者维度。例如设备组可以允许软件发布方指定与设备关联的特定操作系统或者其它操作框架,和/或与设备关联的特定屏幕尺寸,和/或与设备关联的特定图形能力、例如与设备兼容的OpenGL纹理压缩格式。可以根据这里描述的技术使用的其它属性或者维度可以例如包括OpenGL ES版本、本机设备平台(例如ARM EABI v7、INTEL等)或者某些设备特征或者设备能力(例如相机、蓝牙、电话、GPS、运动传感器等)。在一些实现中,也可以根据这里描述的技术使用附加维度、比如设备的载体和/或位置。
[0060]可以用适当方式进一步分段(例如通过指定前置摄像头与后置摄像头)这些和其它适当属性或者维度,以允许对于特定的实现可能适合的那么多的或那么少的设备粒度。一般而言,附加粒度可以向软件发布方提供对如何分发应用的不同版本的更大控制,而更少粒度可以提供用于软件发布方的更不复杂的接口。在一些实现中,系统可以允许软件发布方定义它们希望在对于特定设备组以它们的应用版本为目标时利用的粒度水平。
[0061]可以在具体值、具体值集合或者值范围方面描述设备组属性。例如如用户接口302中所示,使用具体值“GL_ATI_texture_compression_atitc”来定义用于设备组306的OpenGL纹理压缩格式。换而言之,如果设备利用除了指定的值之外的任何其它OpenGL纹理压缩格式,则设备不在设备组内相配。作为用户接口 302中所示另一示例,作为设备组308的目标的OS版本包括从0S1.8上至0S2.1的范围。在使用值范围来描述设备组属性时,具有落在范围内任何处的设备属性的设备可以被视为在设备组内相配。相似地,在使用具体值集合来描述设备组属性时,具有与具体值中的任何具体值匹配的设备属性的设备可以被视为与特定设备组属性匹配。
[0062]在一些实现中,发布方系统可以允许设备组描述重叠设备组属性。例如如用户接口 302中所示,在设备组306和308中指定小和中等屏幕尺寸,并且设备组308还指定大屏幕尺寸。在允许重叠设备组属性的这样的情况下,系统可以利用适当规则以确定应当向用户提供哪些应用版本。继续以上示例,一种方法可以是向用户提供具有最高版本代码的应用版本。在一些实现中,这样的重叠可以使系统向软件发布方提供警告以保证他或者她在确认设备组配置之前意识到重叠。
[0063]用户接口 302可以被编程用于在软件发布方选定系统未允许的设备组设置时标识错误。例如在一些实现中,软件发布方可以定义两个设备组,从而两个之一被另一个完全包摄,并且其中与设备组之一关联的应用版本将绝不会向用户提供。如果这一功能在系统提供的发布规则之下不可允许,则系统可以生成错误。可以使用相似技术、比如通过显示描述错误的可视错误消息、通过播放可听提醒等来向软件发布方提起这样的错误。在一些实现中,如果在发布期间提起错误,则不可以允许软件发布方在修复错误的原因之前继续发布过程。
[0064]用户接口 302也可以被编程用于在软件发布方选择设备组设置时标识警告,虽然这些设备组设置可能没有升至不被允许的级别,但这些警告可以创建关于将如何处理应用版本的一些模糊度。例如在一些实现中,可以在两个应用版本在一个或者多个维度中部分地重叠时生成警告。在这样的情况下,系统可以提供默认规则集,该默认规则集根据预定义过程、例如通过向设备提供具有更高版本代码的版本来处理重叠维度。作为另一示例,可以在软件发布方改变设备组,从而使得先前被提供访问应用的版本的设备不再与应用的任何版本关联时生成警告。在这样的示例中,可以未向用户提供对应用的任何更新,因为设备组都未以用户的设备为目标。
[0065]以上关于用户接口 302描述的功能也可以由发布方系统自动完成而无来自软件发布方的任何干预。在这样的实现中,可以使用与应用版本本身关联的信息来生成用来描述各种设备组的定义。在一些情况下,与特定应用版本对应的二进制文件可以比如在应用清单中包括嵌入式信息,该信息用来描述与应用版本兼容的特定设备属性。例如应用清单可以声明仅与0S2.0或者以上兼容的二进制文件。在这一示例中,发布方系统可以自动创建与二进制文件的兼容性对应的设备组、即通过创建以具有0S2.0或者以上的设备为目标的设备组。
[0066]在一些实现中,可以利用用户接口 302和自动应用版本的组合。例如作为初始方式,发布方系统可以利用二进制文件中的信息以创建用于应用版本的设备组。然后,软件发布方可以能够通过用户接口 302、例如通过扩展或者收缩一个或者多个特定设备组属性的范围来调整设备组。例如继续以上示例,软件发布方可以决定虽然应用版本与0S2.0和以上兼容,但是不同应用版本可以更好地以0S2.2和以上为目标,并且发布方因此可以决定调节将用于当前应用版本的设备组调节成具有0S2.0或者0S2.1的设备、因此收缩原有目标设备组。
[0067]一般而言,如以上描述的示例用户接口 302可以用来创建和/或修改如下设备组,该设备组用来使应用版本以特定设备或者设备组为目标。然而应当理解,其它用户接口可以用来实现与这里描述的系统和技术一致的相似功能。
[0068]图4是用于发布和分发具有多个版本的软件应用的示例过程400的泳道图。过程400可以例如由图1A和IB的发布方系统104和应用集市系统108实施。为了清楚地呈现,以下描述使用这些系统作为用于描述过程400的基础。然而其它系统或者系统组合也可以或者备选地用来执行该过程。
[0069]过程400在软件开发者编写软件应用以用于在应用集市系统上发布时开始。具体而言,根据这里描述的技术,软件开发者开发应用的多个不同版本以用于在应用集市系统上发布(402)。为了简化,在过程400中描述软件开发者为与软件发布方相同的实体,但是在一些情况下,不同实体可以负责发布另一实体已经开发的软件应用。
[0070]软件发布方然后可以向发布方系统上传各种版本(404)。软件发布方可以在相同时间上传应用的所有不同版本,或者可以选择随时间上传不同版本。无论何时上传版本,发布方系统可以在向系统上传应用版本中时解析与每个应用版本对应的二进制文件(406)。这样的解析可以允许发布方系统提取与应用版本有关的某些元数据,该元数据然后可以用来创建用于每个相应二进制文件的设备组(408 )。
[0071]例如二进制文件可以包括清单文件,该清单文件描述对于应用与特定设备兼容的某些操作要求。例如如果二进制文件未被配置用于在具有小屏幕的设备上操作,则清单文件可以指定应用版本仅与具有中等或者更大尺寸的屏幕兼容。这一分类然后可以应用于设备组,该设备组用来使应用版本以特定设备或者设备组为目标。
[0072]在一些实现中,可以允许应用的发布方调整设备组(410)。例如如果应用版本将在具有中等或者更大尺寸的屏幕的设备上工作,则分类可以初始地包括具有中等或者更大尺寸的屏幕的所有设备。然而发布方也可以具有应用的不同版本,该版本专门以具有超大屏幕的设备为目标,并且因此可能想要应用的当前版本仅向具有中等和大尺寸的屏幕的设备发行,而对于不同版本则想要向具有超大屏幕的设备发行。在这样的场景中,发布方可以选择相应地调整设备组。
[0073]在发布方已经调整用于各种应用版本的设备组以将既定设备作为目标之后,发布方可以请求发布二进制文件(412)。发布方系统转而可以例如通过更新由应用集市系统使用的数据库来在应用集市系统上发布版本二进制文件(414),并且应用集市系统可以根据这里描述的技术向访问集市的用户提供适当版本二进制文件(416)。
[0074]过程400的用户访问部分在用户请求来自应用集市的特定应用时开始(420)。可以通过任何适当接口作出请求。例如用户的设备可以包括与应用集市系统通信以提供访问集市系统提供的应用的客户端集市应用。作为另一示例,用户可以访问对应用集市系统的基于web的前端,以请求应用。可以以不同形式提供对于应用的请求。例如用户可以能够浏览应用集市托管的各种应用或者可以使用常规搜索工具来搜寻应用。
[0075]响应于接收到请求,应用集市系统可以确定与用户的计算设备关联的一个或者多个设备属性(422)。例如如果用户通过在计算设备上执行的客户端集市应用来从计算设备访问应用集市,则请求可以包括设备信息(例如设备标识符),该设备信息允许应用集市系统以确定与设备关联的各种设备属性。在一些实现中,应用集市系统可以基于与请求包括的设备标识符确定设备属性(例如通过使用与请求发送的设备标识符来查找注册的设备的属性)。在其它实现中,请求本身可以包括如以下描述的可以由应用集市系统利用的某些设备属性。
[0076]应用集市系统然后可以如以上描述的那样从先前已经由软件发布方上传的多个版本之中标识软件应用的、以用户的设备为目标的特定版本(424)。例如应用集市系统可以使用确定的设备属性,以标识以具有那些设备属性的设备为目标的特定应用版本。在标识用于设备的适当应用版本之后,应用市场系统可以向用户提供关于应用版本的信息(426)。例如应用市场系统可以提供与应用的具体版本有关的某些信息例如用于向用户显示。信息可以例如包括一般与应用或者与应用的以用户的设备为目标的具体版本有关的文件大小、定价和其它信息。此外,信息可以包括允许用户下载标识的应用版本的机制(例如按钮或者链接)。
[0077]用户然后可以查看版本信息(428)并且可以例如使用由应用市场系统提供的机制来请求下载应用版本(430)。在接收对于下载的请求时,应用市场系统可以例如通过收集用于付费应用的付费信息并且授权用于用户的下载来促进下载(432)。
[0078]图5示出可以用来实施这里描述的技术的计算设备500和移动计算设备550的示例。计算设备500旨在于代表各种形式的数字计算机、比如膝上型计算机、桌面型计算机、工作站、个人数字助理、服务器、刀片服务器、主机和其它适当计算机。计算设备550旨在于代表各种形式的移动设备、比如个人数字助理、蜂窝电话、智能电话和其它相似计算设备。这里所示部件、它们的连接和关系及其功能意味着仅为示例,而不意味着限制在本文档中描述和/或要求保护的实现。
[0079]计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高速扩展端口 510的高速接口 508,以及连接到低速总线514和存储设备506的低速接口 512。部件502、504、506、508、510和512中的每个部件通过使用各种总线来互连,并且可以被装备到共同母板上,或者以适当的其它方式装配。处理器502可以处理用于在计算设备500内执行的指令,这些指令包括在存储器504中或者存储设备506上存储的、用于在外部输入/输出设备、比如耦合到高速接口 508的显示器516上显示用于⑶I的图形信息的指令。在其它实现中,多个处理器和/或多个总线可以根据情况与多个存储器和存储器类型一起使用。也可以连接多个计算设备500而每个设备提供必需操作的部分(例如作为服务器组、成组刀片服务器或者多处理器系统)。
[0080]存储器504存储计算设备500内的信息。在一个实现中,存储器504是一个或者多个易失性存储器单元。在另一实现中,存储器504是一个或者多个非易失性存储器单元。存储器504也可以是另一形式的计算机可读介质、比如磁盘或者光盘。
[0081]存储设备506能够提供用于计算设备500的海量存储装置。在一个实现中,存储设备506可以是或者包含计算机可读介质、比如软盘设备、硬盘设备、光盘设备或者磁带设备、闪存或者其它相似固态存储器设备或者如下设备的阵列,这些设备包括存储区域网络或者其它配置中的设备。可以在信息载体中有形地体现计算机程序产品。计算机程序产品也可以包含在被执行时执行一种或者多种方法、比如以上描述的方法的指令。信息载体是计算机或者机器可读介质、比如存储器504、存储设备506或者在处理器502上的存储器。
[0082]高速控制器508管理用于计算设备500的带宽密集操作,而低速控制器512管理更低带宽密集操作。这样的功能分配仅为示例。在一个实现中,高速控制器508耦合到存储器504、显示器516 (例如通过图形处理器或者加速器)并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口 510。在该实现中,低速控制器512耦合到存储设备506和低速扩展端口 514。可以包括各种通信端口(例如USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或者多个输入/输出设备、比如键盘、指点设备、扫描仪或者联网设备、比如交换机或者路由器。
[0083]如图中所示可以在多个不同形式中实施计算设备500。例如可以实施它为标准服务器520或者多次实施于成组这样的服务器中。也可以实施它为架式服务器系统524的一部分。此外,可以在个人计算机、比如膝上型计算机522中实施它。备选地,来自计算设备500的部件可以与移动设备(未示出)、比如设备550中的其它部件组合。这样的设备中的每个设备可以包含计算设备500、550中的一个或者多个计算设备,并且整个系统可以由相互通信的多个计算设备500、550组成。[0084]计算设备550包括处理器552、存储器564、输入/输出设备、比如显示器554、通信接口 566和收发器568以及其它部件。设备550也可以具有用于提供附加存储装置的存储设备、比如微驱动或者其它设备。使用各种总线来互连部件550、552、564、554、566和568中的每个部件,并且可以在共同母板上或者根据情况以其它方式装配部件中的若干部件。
[0085]处理器552可以执行计算设备550内的指令,这些指令包括存储器564中存储的指令。可以实施处理器为包括分离以及多个模拟和数字处理器的芯片的芯片组。处理器可以例如提供用于协调设备550的其它部件、比如用户接口控件、设备550运行的应用和设备550的无线通信。
[0086]处理器552可以通过控制接口 558和耦合到显示器554的显示接口 556与用户通信。显示器554可以例如是TFT IXD (薄膜晶体管液晶显示器)显示器或者OLED (有机发光二极管)显示器或者其它适当显示器技术。显示器接口 556可以包括用于驱动显示器554以向用户呈现图形和其它信息的适当电路装置。控制接口 558可以从用户接收命令,并且将其进行转换以用于向处理器552提交。此外,可以提供与处理器552通信的外部接口 562以便启用设备550与其它设备的近区域通信。外部接口 562可以例如在一些实现中提供有线通信或者在其它实现中提供无线通信,并且也可以使用多个接口。
[0087]存储器564存储计算设备550内的信息。可以实施存储器564为一个或者多个计算机可读介质、一个或者多个易失性存储器单元或者一个或者多个非易失性存储器单元中的一项或者多项。也可以提供扩展存储器574并且该扩展存储器可以通过可以例如包括SIMM (单列直插存储器模块)卡接口的扩展接口 572连接到设备550。这样的扩展存储器574可以提供用于设备550的额外存储空间或者也可以存储用于设备550的应用或者其它信息。具体而言,扩展存储器574可以包括用于实现或者补充以上描述的过程的指令并且也可以包括安全信息。因此,例如可以提供扩展存储器574作为用于设备550的安全模块,并且可以用允许安全使用设备550的指令对扩展存储器574编程。此外,可以经由SMM卡将安全应用与附加信息一起提供、比如以不可被黑客方式将标识信息放置于SIMM卡上。
[0088]如以下讨论的那样,存储器可以例如包括闪存和/或NVRAM存储器。在一个实现中,在信息载体中有形地体现计算机程序产品。计算机程序产品包含在被执行时执行一种或者多种方法、比如以上描述的方法的指令。信息载体是计算机或者机器可读介质、比如存储器564、扩展存储器574或者在处理器552上的存储器。
[0089]设备550可以通过可以在必要时可以包括数字信号处理电路装置的通信接口 566无线地通信。通信接口 566可以在以下各种模式或者协议以及其它模式或者协议之下提供通信,各种模式或者协议比如GSM语音呼叫、SMS、EMS或者丽S消息收发、CDMA, TDMA, PDC,WCDMA、CDMA2000或者GPRS。可以例如通过射频收发器568发生这样的通信。此外,可以比如使用蓝牙、WiFi或者其它这样的收发器(未示出)发生短程通信。此外,GPS (全球定位系统)接收器模块570可以向设备550提供附加的与导航和位置有关的无线数据,该数据可以根据情况由在设备550上运行的应用使用。
[0090]设备550也可以使用音频编码解码器560来可听地通信,该编码解码器可以从用户接收口述信息并且将它转换成可用数字信息。音频编码解码器560可以类似地比如通过例如在设备550的头戴式受话器中的扬声器生成用于用户的可听声音。这样的声音可以包括来自语音电话呼叫的声音、可以包括记录的声音(例如语音消息、音乐文件等)并且也可以包括设备550上运转的应用所生成的声音。
[0091]如图中所示,可以用多个不同形式实施计算设备550。例如可以实施它为蜂窝电话580。也可以实施它为智能电话582、个人数字助理或者其它相似移动设备的一部分。
[0092]此外,计算设备500或者550可以包括通用串行总线(USB)闪存驱动。USB闪存驱动可以存储操作系统和其它应用。USB闪存驱动可以包括输入/输出部件、比如可以向另一计算设备的USB端口中插入的无线发送器或者USB连接器。
[0093]可以在数字电子电路装置、集成电路装置、专门设计的AS IC (专用集成电路)、计算机硬件、固件、软件和/或其组合中实现这里描述的系统和技术的各种实现。这些各种实现可以包括在可编程系统上可执行和/或可解译的一个或者多个计算机程序中的实现,该可编程系统包括可以是专门或者通用的至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器被耦合用于从存储系统接收数据和指令以及向存储系统传输数据和指令。
[0094]这些计算机程序(也称为程序、软件、软件应用或者代码)包括用于可编程处理器的机器指令并且可以用高级过程化和/或面向对象的编程语言和/或用汇编/机器语言来实施。如这里所用,术语“机器可读介质”和“计算机可读介质”指代用来向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑器件(PLD))。
[0095]为了提供与用户的交互,可以在计算机上实施这里描述的系统和技术,该计算机具有用于向用户显示信息的显示设备(例如CRT (阴极射线管)或者IXD (液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指点设备(例如鼠标或者轨迹球)。其它种类的设备也可以用来提供与用户的交互;例如向用户提供的反馈可以是任何形式的感官反馈(例如可视反馈、听觉反馈或者触觉反馈);并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。
[0096]可以在计算系统中实施这里描述的系统和技术,该计算系统包括后端部件(例如作为数据服务器)或者包括中间件部件(例如应用服务器)或者包括前端部件(例如具有如下图形用户接口或者Web浏览器的客户端计算机,用户可以通过该图形用户接口或者Web浏览器与这里描述的系统和技术的实现交互)或者这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。
[0097]计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序产生客户端和服务器关系。
[0098]虽然以上已经具体描述少数实现,但是其它修改是有可能的。另外,可以使用用于实现在本文档中描述的系统和方法的其它机制。此外,在图中描绘的逻辑流可以并不要求所示特定顺序或者依次顺序以实现所期望的结果。可以提供其它步骤或者可以从描述的流程消除步骤,并且可以向描述的系统添加或者从描述的系统去除其它部件。因而,其它实现在所附权利要求的范围内。
【权利要求】
1.一种用于确定软件应用的以计算设备为目标的版本的计算机实施的方法,所述方法包括: 在应用集市系统处并且从与计算设备关联的用户接收与由所述应用集市系统分发的软件应用对应的请求,所述计算设备与所述应用集市系统远离地操作,所述软件应用具有在所述应用集市系统上的多个版本; 确定与所述计算设备关联的一个或者多个设备属性; 基于所述设备属性从在所述应用集市系统上的所述多个版本之中标识所述软件应用的、以所述计算设备为目标的特定版本;以及 用于向所述用户显示并且响应于所述请求来提供与所述软件应用的所述特定版本有关的彳目息。
2.根据权利要求1所述的方法,其中所述多个版本中的每个版本与作为相应的版本的目标的设备组关联,并且其中标识所述软件应用的、以所述计算设备为目标的所述特定版本包括确定所述计算设备所对应的特定设备组。
3.根据权利要求2所述的方法,其中确定所述计算设备所对应的所述特定设备组包括比较至少一个设备属性与至少一个对应设备组属性,以确定所述设备属性是否与所述对应设备组属性相匹配。
4.根据权利要求2所述的方法,其中确定所述计算设备所对应的所述特定设备组包括比较至少两个设备属性与至少两个对应设备组属性,以确定所述设备属性是否与所述对应设备组属性相匹配。
5.根据权利要求2所述的方法,其中标识所述软件应用的、以所述计算设备为目标的所述特定版本包括响应于确定所述计算设备对应`于两个或者更多特定设备组来标识具有最闻版本号的版本。
6.根据权利要求2所述的方法,其中所述软件应用的发布方生成所述多个版本中的每个版本与作为相应的版本的目标的所述设备组之间的关联。
7.根据权利要求2所述的方法,其中所述多个版本中的每个版本与作为相应的版本的目标的所述设备组之间的关联是基于在与所述多个版本对应的二进制文件中包括的信息来自动而无用户干预地生成的。
8.根据权利要求1所述的方法,其中与所述计算设备关联的所述设备属性包括由以下组成的组中的至少两项:安装的设备框架、显示屏幕尺寸和图形处理能力。
9.根据权利要求1所述的方法,还包括跨所述软件应用的所述多个版本收集与所述软件应用关联的安装信息,从而与所述软件应用关联的安装度量值反映对所述软件应用的不同版本的安装。
10.根据权利要求1所述的方法,还包括跨所述软件应用的所述多个版本收集与所述软件应用关联的排名信息,从而与所述软件应用关联的排名度量值反映所述软件应用的不同版本的来自用户的排名。
11.根据权利要求1所述的方法,其中提供与所述软件应用的所述特定版本有关的信息不包括提供与所述软件应用的其它版本有关的信息。
12.根据权利要求1所述的方法,其中与所述软件应用的所述特定版本有关的所述信息包括用于向所述计算设备下载所述软件应用的所述特定版本的机制。
13.根据权利要求1所述的方法,其中在标识所述计算设备之前接收所述请求,并且还包括用于向所述用户显示并且响应于所述请求来提供代表所述软件应用的所有版本的应用摘要信息。
14.根据权利要求1所述的方法,其中所述应用集市系统与组织关联,所述组织不同于发布所述软件应用的发布方。
15.根据权利要求1所述的方法,还包括基于所述设备属性标识并无所述软件的应用的特定版本以所述计算设备为目标,并且用于向所述用户显示并且响应于所述请求来提供所述软件应用对所述计算设备不可用。
16.一种用于通过应用集市分发软件的计算机实施的方法,所述方法包括: 在计算机系统处并且从应用开发者接收软件程序的多个版本; 用所述计算机系统将所述软件程序的所述版本中的特定版本与特定计算设备、设备类别或者设备能力进行关联; 在所述计算机系统处并且从所述软件程序的预期用户与定义所述用户的设备的能力的信息一起接收对于所述软件程序的请求; 从所述软件程序的所述多个版本之中选择与所述用户的所述设备的定义的所述能力相匹配的特定版本;以及 通过电子网络向所述用户的所述设备递送所述软件程序的选择的所述版本。
17.根据权利要求16所述的方法,其中选择与所述用户的所述设备的定义的所述能力相匹配的所述特定版本包括将所述设备的两个或者更多能力和与所述软件程序的所述特定版本关联的两个或者更多对应能力进行匹配。
18.根据权利要求16所述的方法,其中定义所述用户的所述设备的能力的所述信息包括由以下组成的组中的至少两项:安装的设备框架、显示屏幕尺寸和图形处理能力。
19.根据权利要求16所述的方法,其中将所述软件程序的所述版本中的特定版本与特定计算设备、设备类别或者设备能力进行关联是基于在与所述软件程序的所述多个版本对应的二进制文件中包括的信息来自动而无用户干预地完成的。
20.根据权利要求16所述的方法,还包括跨所述软件程序的所述多个版本收集与所述软件程序关联的排名信息,从而与所述软件程序关联的排名度量值反映所述软件程序的不同版本的来自用户的排名。
21.一种用于通过应用集市分发软件的计算机实施的系统,所述系统包括: 应用发布方计算系统,所述应用发布方计算系统从应用发布方接收软件程序的多个版本并且将所述软件程序的所述版本中的特定版本与特定计算设备、设备类别或者设备能力进行关联;以及 应用集市计算系统,所述应用集市计算系统从所述软件程序的预期用户与定义所述用户的设备的能力的信息一起接收对于所述软件程序的请求,从所述软件程序的所述多个版本之中选择与所述用户的所述设备的定义的所述能力相匹配的版本,并且通过电子网络向所述用户的所述设备递送所述软件程序的选择的所述版本。
【文档编号】G06F9/445GK103890723SQ201280045508
【公开日】2014年6月25日 申请日期:2012年7月20日 优先权日:2011年7月20日
【发明者】I·费曼, J·S·林, M·D·沃马克, 林裕宽, 谢生麒, J·特桑 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1