CN105677361A - 多个应用版本的分发 - Google Patents

多个应用版本的分发 Download PDF

Info

Publication number
CN105677361A
CN105677361A CN201610074408.2A CN201610074408A CN105677361A CN 105677361 A CN105677361 A CN 105677361A CN 201610074408 A CN201610074408 A CN 201610074408A CN 105677361 A CN105677361 A CN 105677361A
Authority
CN
China
Prior art keywords
application
version
fairground
software application
equipment
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.)
Pending
Application number
CN201610074408.2A
Other languages
English (en)
Inventor
I·费曼
J·S·林
M·D·沃马克
林裕宽
谢生麒
J·特桑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN105677361A publication Critical patent/CN105677361A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0621Item configuration or customization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0603Catalogue ordering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Abstract

在一个方面中,本申请描述一种用于确定软件应用的、以计算设备为目标的版本的方法。该方法包括在应用集市系统处并且从与从应用集市系统远离地操作的计算设备关联的用户接收与由应用集市系统分发的软件应用对应的请求,软件应用具有在应用集市系统上的多个版本。该方法也包括确定与计算设备关联的一个或者多个设备属性,并且基于设备属性从在应用集市系统上的多个版本之中标识软件应用的、以计算设备为目标的特定版本。该方法也包括用于向用户显示并且响应于请求来提供与软件应用的特定版本有关的信息。

Description

多个应用版本的分发
本申请是申请日为2014年03月19日、申请号为201280045508.2、发明名称为“多个应用版本的分发”的中国发明专利申请的分案申请。
有关申请的交叉引用
本申请要求对于2011年7月20日提交的、标题为MULTIPLEAPPLICATIONVERSIONS的第13/187,198号美国申请的优先权,其公开内容通过引用结合于此。
技术领域
本文总体涉及软件分发系统。
背景技术
可以使用多种模型来销售和分发软件应用。有时用来分发以移动设备和其它计算设备为目标的应用或者app的模型的一个示例是应用集市模型。在这一模型中,软件开发者可以提交它们的应用用于在在线应用集市中发布,并且集市可以提供允许用户浏览或者搜寻发布的应用的接口。
在用户标识他或者她希望获得的应用时,应用集市一般可以有助于交易。例如在免费应用的情况下,应用集市可以简单地提供该应用以用于向用户的设备中的一个或者多个设备下载。在付费应用的情况下,应用集市可以提供应用用于下载,并且也可以提供与从用户收集付费并且补偿软件开发者有关的服务。应用集市通常可以由软件开发者和用户二者信任的组织运作以适当处理任何这样的交易。
发明内容
本文档描述允许开发者或者发布方在软件分发系统、比如应用集市中提供特定应用的多个版本的系统和技术。可以以应用的不同版本为目标,以便基于请求应用的特定设备的能力或者与设备关联的其它属性而向不同设备或者设备类型分发。例如应用的标准版本可以以具有标准能力的基本智能电话为目标,并且相同应用的大屏幕版本可以以具有在某个尺寸以上的屏幕的写字板或者智能电话为目标。作为另一示例,应用的基本版本可以与具有特定操作系统的设备为目标,而应用的利用更加新的操作系统的一些特征的高级版本可以以具有安装的更加新的操作系统的设备为目标。
取代向浏览应用集市的用户呈现应用的多个版本中的所有版本(这可能让用户混淆)的是,应用集市可以代之以确定多个版本中的哪个版本与用户的设备最适合地匹配,并且仅向用户呈现该特定版本。这样,开发者可以在应用集市上发布应用的多个不同版本,而不担心用户意外地选择与用户的各设备不兼容或者未为这些设备优化的版本。此外,应用集市可以能够跨应用的不同版本监视各种应用度量、比如用户排名和安装统计。
在一个方面中,本申请描述一种用于确定软件应用的以计算设备为目标的版本的由计算机实施的方法。该方法包括在应用集市系统处并且从与计算设备关联的用户接收与由应用集市系统分发的软件应用对应的请求,该计算设备与应用集市系统远离地操作,软件应用具有在应用集市系统上的多个版本。该方法也包括确定与计算设备关联的一个或者多个设备属性并且基于设备属性从在应用集市系统上的多个版本之中标识软件应用的、以计算设备为目标的特定版本。该方法也包括用于向用户显示并且响应于请求来提供与软件应用的特定版本有关的信息。
在另一方面中,本申请描述一种用于通过应用集市分发软件的由计算机实施的方法。该方法包括在计算机系统处并且从应用开发者接收软件程序的多个版本。该方法也包括用计算机系统将软件程序的版本中的特定版本与特定计算设备、设备类或者设备能力进行关联。该方法也包括在计算机系统处并且从软件程序的预期用户与定义用户的设备的能力的信息一起接收对于软件程序的请求。该方法也包括从软件程序的多个版本之中选择与用户的设备的定义的能力匹配的特定版本,以及通过电子网络向用户的设备递送软件程序的选择的版本。
在另一方面中,本申请描述一种用于通过应用集市分发软件的由计算机实施的系统。该系统包括:应用发布方计算系统,其从应用发布方接收软件程序的多个版本,并且将软件程序的版本中的特定版本与特定计算设备、设备类别或者设备能力进行关联。该系统也包括:应用集市计算系统,其从软件程序的预期用户与定义用户的设备的能力的信息一起接收对于软件程序的请求。应用集市计算系统也从软件程序的多个版本之中选择与用户的设备的定义的能力匹配的版本,并且通过电子网络向用户的设备递送软件程序的选择的版本。
在附图和以下描述中阐述一个或者多个实施例的细节。将根据描述和附图以及从权利要求清楚其它特征和优点。
附图说明
图1A是示出用于发布和分发软件应用的环境的示例的概念图。
图1B是示出应用发布方系统和应用市场系统的示例的系统图。
图2是允许软件发布方上传软件应用的多个版本的示例用户接口的图。
图3是允许软件发布方描述和修改软件应用的不同版本以其为目标的设备组的示例用户接口的图。
图4是用于发布和分发具有不同版本的软件应用的示例过程的泳道图。
图5示出可以用来实施这里描述的技术的计算机设备和移动计算机设备的示例。
在各种附图中的相似标号指示相似单元。
具体实施方式
本文描述允许软件开发者和/或发布方在应用集市中发布应用的多个版本的系统和技术。这样的功能可以在多个不同情形中由软件开发者和/或发布方使用。例如软件开发者可能想要它的应用支持具有不同屏幕尺寸的设备(例如智能电话和写字板),并且可能希望提供专门为将执行该应用的特定设备定制的图形和其它用户接口元素。在这样的示例中,软件开发者可以开发应用的两个或者更多版本并且可以在应用集市中发布两个或者更多版本用于向适当设备分发。相似地,另一应用开发者可能希望支持具有不同操作框架(例如操作系统或者应用编程接口(API))的设备并且可能想要提供特定于设备的特定框架的特征。同样,软件开发者可能想要选择发布应用的不同版本并且可以依赖于应用集市以向为请求应用的特定设备分发适当版本。
根据这里描述的技术,应用集市可以通过确定与设备关联的某些属性来标识用于设备的应用的适当版本。继续以上示例,应用集市可以从具有小屏幕尺寸的智能电话接收请求并且基于智能电话的屏幕尺寸可以提供应用的小屏幕版本用于由智能电话下载。响应于接收到相似请求,但是是从额外大屏幕尺寸的写字板接收该请求,应用集市可以代之以提供应用的大屏幕版本用于由写字板下载。
在一些实现中,这样的功能可以对用户透明,原因在于用户无需了解应用的不同版本。取而代之,在这样的实现中,应用集市可以仅向用户示出应用的以用户的特定设备为目标的版本。以这一方式,应用集市可以防止在向用户呈现多个不同的用于下载的选择的情况下原本可能出现的用户混淆。
图1A是示出用于发布和分发软件应用的环境100的示例的概念图。在环境100中,使用计算设备102的软件发布方可以与发布方系统104交互以如标注为A的箭头所示上传和/或发布应用的多个版本。软件发布方也可以使用发布方系统104以定义作为应用的特定版本的目标的特定设备、设备类型或者设备组。例如软件发布方可以指定应当向具有相机的移动计算设备提供应用的一个版本而应当向无相机的移动计算设备提供相同应用的另一版本(例如不包括拍摄图片的能力的更不复杂的版本)。
发布方系统104可以允许软件发布方用多种方式指定版本目标设定。例如在一些实现中,软件发布方可以包括在与相应应用版本对应的应用二进制文件中、例如在二进制文件中嵌入的清单文件中的元数据信息。清单文件可以描述与能够执行应用的设备或者设备类型有关的某些依赖关系、限制或者其它类型的信息。在清单文件中的信息可以由应用发布方系统104用来自动(例如无用户干预)定义可以用来使版本以特定设备或者设备组为目标的一个或者多个应用特性的集合。例如如果清单声明应用版本仅与操作系统(OS)2.0或者以上兼容,则应用发布方系统104可以自动使应用版本以具有2.0或者以上版本的设备为目标。应用的另一版本可以包括声明与OS1.6至1.8兼容的清单,并且应用发布方系统104因此可以使应用版本以具有OS1.6至1.8的设备为目标。
在其它实现中,应用发布方系统104可以提供用户接口,该用户接口允许软件发布方使用各种设备属性来定义设备组。设备组可以各自对应于软件应用的不同版本。例如软件发布方可以选择用来区分各种设备组的一个或者多个设备属性并且可以提供用于设备属性中的每个设备属性的值或者值范围以定义设备组。软件发布方可以定义适当数目的设备组——每个设备组可以与应用的一个特定版本关联——以控制相应应用设备向作为应用版本的目标的适当设备的分发。通过使用多个不同设备属性组合来定义设备组,软件发布方可以能够使用任何适当级别的粒度来指定对它的应用版本的分发。
应用发布方系统104也可以使用这些方式的组合以定义用于使应用版本以特定设备组为目标的设备组。例如发布方系统104可以初始地使用来自用应用二进制文件包括的清单的信息来自动设立设备组、然后可以允许软件发布方适当时调整或者调节设备组。
在计算设备102与发布方系统104之间的通信可以通过任何适当网络(例如因特网、LAN、WAN、无线宽带或者其任何组合)出现。计算设备102被描绘为桌面型计算机,但是其它类型的计算设备(例如膝上型计算机、网本、写字板、智能电话、机顶盒等)也可以与发布方系统104通信。相似地,发布方系统104被描绘为独立服务器,但是发布方系统104可以代表服务器群集、服务器群或者可以用来托管发布方系统104的功能的其它服务器分组。在一些实现中,发布方系统104可以由提供这里描述的发布服务的受信任的组织操作。
在从软件开发者接收用于发布应用、包括应用的一个或者多个版本的指令时,发布方系统104可以如标注为B的箭头所示向应用数据存储装置106中的一个或者多个数据结构写入关于应用的某些信息。数据结构一般可以用来描述应用并且也可以用来描述应用的各种发布和/或未发布的版本。作为示例,数据结构可以包括比如描述应用的各种版本的版本化信息、描述版本以其为目标的设备或者设备类型的设备组信息和一般与应用或者与应用的具体版本关联的其它适当元数据(例如定价信息、文本描述、屏幕截图、图标、用于从下载应用的用户接收付款的账户等)这样的信息。
在发布方系统104已经发布应用之后,应用可以表现为用于经由可以被配置用于读取在应用数据存储装置106中存储的数据结构的应用市场系统108下载的应用。根据这里描述的技术,在已经在应用市场系统108上发布应用的多个版本时,系统可以确定应用版本中的哪个应用版本适合于请求应用(或者在使用不同计算设备来请求应用的情况下的情况下为其请求应用)的特定计算设备,并且可以向计算设备提供应用的该特定版本。在一些情况下,这样的功能可以减少用户混淆,并且仍然可以向软件发布方提供用于发布应用的以不同设备或者设备类型为目标的多个版本的能力。
在环境100中,用户可以如标注为C的箭头所示向多个不同客户端计算设备、例如设备110、112和116来访问应用集市系统108。移动客户端计算设备、例如设备110和112如智能电话或者写字板可以通过无线通信信道或者任何其它适当通信信道与应用集市系统108通信。在一些实现中,移动计算设备可以具有安装为在设备上执行的应用的应用集市客户端并且可以用来促进与应用集市系统108通信。客户端计算设备116代表可以通过适当网络与应用集市系统108通信以访问用于应用集市系统108的基于web的前端的桌面型计算设备。
在客户端计算设备的用户向应用集市系统108提交请求时,系统可以从应用数据存储装置106读取以响应于请求来标识各种发布的应用,并且可以提供在客户端计算设备上显示与响应应用有关的信息。例如用户可以提交对于浏览集市上的各种应用的请求或者可以使用关键字来提交对于发现与录入的关键字关联的应用的搜索请求。
响应于接收这样的请求,应用集市系统108可以确定向客户端计算设备提供特定应用的哪个版本。在应用仅有单个版本的情况下,应用集市系统108可以使用过滤技术以仅显示与请求设备兼容的应用。在应用具有在应用集市系统108上可用的多个发布的版本的情况下,系统可以基于设备的一个或者多个属性标识应用的以请求设备为目标的特定版本并且可以向客户端计算设备提供与该特定版本有关的信息。
作为示例,智能计算设备110可以提交与具有在应用集市系统108上发布的多个版本的应用对应的请求。请求可以包括设备信息、比如设备标识符,该设备信息允许应用集市系统108标识与设备110关联的某些属性。例如请求可以包括设备标识符或者其它设备信息(例如框架版本),该设备标识符或者其它设备信息可以允许应用集市系统108确定智能电话具有作为用于设备的框架而安装的OS2.2。应用集市系统108然后可以标识应用的以运行OS2.2的智能电话为目标的特定版本并且可以向智能电话提供关于应用的该特定版本的信息。如果智能电话的应用继而决定下载应用,则提供应用集市系统108标识的特定版本以供下载到设备。如果安装有OS3.0的写字板计算设备112作出相似请求,则应用集市系统108可以不同地进行响应、比如通过标识应用的以运行OS3.0或者更高的写字板为目标的不同版本并且提供不同版本以供写字板计算设备下载。
在一些情况下,应用集市系统108可以从与将安装和执行应用的设备不同的设备接收请求。例如应用集市系统108可以提供基于web的前端,该前端允许用户例如使用桌面型计算机来浏览和搜索应用市场,以便找到他们希望在他们的移动设备中的一个或者多个移动设备上安装的应用。在这样的情况下,应用被既定用于的设备可能在用户提交请求时未知。例如用户可以匿名地浏览前端或者可以登录、但是具有与用户的账户关联的多个计算设备。系统可以向用户提供关于应用的一般信息,直至应用集市系统108能够断定特定应用被既定用于的特定设备。例如系统108可以显示代表软件应用的所有版本的概要信息(例如跨所有版本相同的定价、代表所有版本的屏幕截图等)。系统108也可以指示关于应用的具体详情可以基于应用的适合于既定的设备的版本而变化。
一旦应用集市系统108能够断定用于应用的既定设备,例如如果用户指示将在其上安装应用的特定设备,则系统108可以如先前描述的那样继续。具体而言,应用集市系统108可以确定与既定设备关联的一个或者多个设备属性,并且可以标识应用的适合于该设备的特定版本。应用集市系统108然后可以向既定设备提供关于特定版本的信息,并且可以促进将特定版本下载到既定设备。在一些实现中,登录的用户可以能够发起经由基于web的前端向不同设备安装,其中例如通过推送通知或者其它适当机制向既定设备递送应用的适当版本。
在一些实现中,应用集市系统108可以存储与在系统上发布的应用关联的各种度量值。例如应用集市系统108可以存储与系统分发的各种应用关联的安装度量值、排名度量值和其它适当度量值。这样的度量值可以与度量值适用于的特定应用关联地存储于应用数据存储装置106中。
在一些实现中,可以跨多个版本聚合与应用的不同版本关联的度量值。例如如果已经下载并且在计算设备上安装版本1.2的一万个副本并且已经安装版本1.4的两万个副本,则应用集市系统108提供的安装度量值可以反应应用的总安装基数是三万个设备。在相似示例中,可以跨应用的不同版本聚合用于特定应用的排名信息,从而可以监视和存储总排名分数,该总排名分数考虑为分离版本中的每个版本接收的排名。
虽然出于示例的目的而分离地示出应用发布方系统104、应用数据存储装置106和应用集市系统108,但是应当理解,环境100中所示系统提供的功能可以由更少设备或者系统提供(例如将多个设备或者系统组合成单个设备或者系统)、可以分布于附加设备或者系统之中,或者可以由与所示设备或者系统不同的设备或者系统提供。
图1B是示出应用发布方系统104和应用集市系统108的示例的系统图。如图所示,应用发布方系统104和应用集市系统108可以共享可以用来存储两个系统公共的应用信息的公共应用数据存储装置106。
应用发布方系统104可以包括接口120、请求方处理器122、设备组管理器124、维度信息数据库126、二进制文件解析器128和响应格式化器130。接口120可以向软件发布方提供对发布方系统104的访问,并且可以提供适当用户接口、比如以下与图2和3关联地更具体描述的用户接口。来自软件发布方的请求和对软件发布方的响应可以分别由请求处理器122和响应格式化器130处理。
设备组管理器124可以控制使各种应用版本以具体设备、设备类型或者设备组为目标。例如设备组管理器124可以允许软件发布方创建和/或修改设备组,每个设备组可以对应于特定应用的不同版本。可以使用一般可以与设备或者设备类型的能力或者属性对应的任何适当数目的维度。可以在维度信息数据库126中存储和/或更新各种维度。
例如在一些实现中,发布方系统104可以允许软件发布方使用包括安装的设备框架、显示屏幕尺寸和图形处理能力的三个维度来定义设备组。也可以在系统中使用例如其它和/或附加维度、例如包括与OpenGLES版本有关的维度、计算设备的本机平台(ARMEABIv7、INTEL等)、各种设备硬件或者软件特征(例如相机、蓝牙、Wi-Fi、电话等)、设备的载体和/或它的位置。
软件发布方可以选定在使用发布方系统104来定义特定设备组时利用可用维度中的一个或者多个维度。例如在一些情况下,软件发布方可以具有应用的全部与不同设备框架有关的不同版本(例如用于OS版本1.6至1.8的一个版本、用于OS版本2.0至2.2的第二版本以及用于OS版本3.0和以上的第三版本)。在这样的情况下,软件发布方可以定义仅由设备框架维度区分的三个不同设备组。在其它情况下,软件发布方可以选定使用附加和/或不同维度来进一步细化设备组。应当理解,发布方系统104可以在各种实现中被配置用于提供与适合于提供的特定实现一样多或者一样少的维度。
二进制文件解析器128可以解析软件发布方已经向系统上传的应用二进制文件。解析器128可以例如用来分离应用数据与描述应用的元数据。例如在一些实现中,二进制文件解析器128可以用来提取在应用二进制文件中嵌入的清单文件。在一些情况下,在清单文件中的信息(或者与二进制文件关联的其它适当信息)可以用来自动指定作为应用二进制文件的目标的设备或者设备类型。
应用市场系统108可以包括接口132、请求处理器134、设备标识符模块136、用户和/或设备信息数据库138、应用管理器140和响应格式化器142。接口132可以在一些实现中包括多个接口、比如用于接收和响应于在各种客户端设备上执行的应用集市客户端的应用接口,以及用于接收和响应于用来访问应用集市系统108的由web应用提供的请求的基于web的前端接口。来自应用集市系统108的各种用户的请求和对这些用户的响应可以分别由请求处理器134和响应格式化器142处理。
设备标识符模块136可以用来标识与给定的请求关联的特定设备。例如对于通过在特定设备上执行的应用市场客户端提供的请求,请求可以包括唯一设备标识符或者专属于个体设备的其它信息。设备标识符模块136可以使用请求中的设备标识符信息以查询用户和/或设备信息数据库138,以确定与请求设备关联的某些属性。然后可以向应用管理器140传递这些属性,以用于在确定应当向请求设备提供请求的应用的哪个版本时使用。在一些实现中,请求本身可以包括设备属性信息,该设备属性信息可以用来标识应用的用于请求设备的适当版本。
对于通过基于web的前端提供的请求,设备标识符模块136可以使用登录信息或者其它由用户提供的信息,以确定与请求关联的特定设备。例如如果用户登录到系统,则设备标识符模块136可以查询用户和/或设备信息数据库138以确定与登录进来的用户关联的一个或者多个设备。如果用户仅有一个关联设备或者如果用户已经指定请求与之关联的特定设备(例如通过选择请求的应用被既定用于的设备),则设备标识符模块136可以如以上描述的那样确定与用户的设备关联的属性,该属性继而可以向应用管理器140提供。
在一些情况下,从匿名用户或者从登录进来的但与多个设备关联的用户接收通过基于web的前端提供的请求。在这样的情况下,应用被既定用于的设备可以在用户提交请求时未知。系统可以向用户提供关于应用的一般信息,直至应用集市系统108108能够确立特定应用被既定用于的特定设备。例如系统108可以显示代表软件应用的所有版本的概要信息(例如跨所有版本相同的定价、代表所有版本的屏幕截图等)。系统108也可以指示关于应用的某些详情可以基于应用的适合于既定设备的版本、例如通过显示“按设备变化”消息而变化。在应用集市系统108能够断定用于应用的既定设备之后,例如如果用户指示将在其上安装应用的特定设备,则系统108可以如先前描述的那样继续以确定与用户的设备关联的属性并且向应用管理器140提供属性用于进一步处理。
应用管理器140可以用来确定请求的应用的适当版本以向请求设备提供。例如应用管理器140可以比较与请求设备关联的设备属性与不同可用应用版本的规范以确定版本中的任何版本是否以请求设备为目标。如果是这样,则应用集市系统108可以比如通过响应于请求而显示关于特定版本的信息,来向请求设备提供应用的特定版本。在一些情况下,响应可以包括将使应用得以下载到请求设备的机制、例如链接。在应用管理器140确定应用的版本都未以特定请求设备为目标的情况下,应用管理器140可以返回空结果,并且应用集市系统108可以提供应用对于请求设备不可用这样的响应。
如果例如使用发布方系统104来将各种应用版本与相应设备组进行关联,则应用管理器140可以匹配设备属性与特定设备组并且可以向请求设备提供与特定设备组关联的应用版本。例如如果请求设备属性包括OS2.0和大屏幕尺寸,则应用管理器140可以标识与那些属性匹配的设备组,并且向设备提供与该设备组关联的应用版本。在一些实现中,多个设备组可以被配置用于匹配请求设备的属性(例如可以在设备组的定义中有某个重叠)。在这样的实例中,应用管理器140可以利用预定的平分决胜规则(tie-breakingrule)以确定向请求设备提供应用版本中的哪个应用版本。例如应用管理器140可以从与设备属性匹配的设备组之中向请求设备提供具有最高版本代码的应用版本。在其它实现中,可以在这样的情形中应用附加或者备选平分决胜规则(例如向请求设备提供最新近更新的应用版本或者可以提供与优选设备组关联的应用版本或者可以提供最具体或者最多限制的应用版本)。
在一些实现中,应用管理器140可以使用预定过程来确定请求的应用的用于向请求设备提供的适当版本。预定过程可以首先按照发布的应用版本代码的倒序对设备组排序。然后可以匹配设备属性与对应设备组属性中的每个设备组属性直至标识出匹配设备组。在一些情况下,还可以评估与设备组关联的应用版本以确定应用版本是否针对设备上使用兼容(例如在应用除了具有用于定义设备组的维度的限制之外的限制的情况下)。如果为设备标识出适当应用版本,则将其提供给请求设备。否则,系统可以做出响应为应用对于请求设备不可用。
图2是允许软件发布方上传软件应用的多个版本的示例用户接口202的图。用户接口202可以提供多个不同控件和输入,以允许软件发布方关联上传的应用版本与特定设备组。虽然示出用户接口202为包括文本框204、210、按钮206、208和214以及下拉框212的具体配置,但是应当理解也可以提供其它配置和/或输入机制。
在示例用户接口202中,软件发布方可以在文本框204中指定应用二进制文件的路径。应用二进制文件可以对应于软件应用的版本之一。如图所示,用户接口202也可以包括允许软件发布方浏览本地计算设备的文件系统和/或其它可访问计算设备的文件系统的浏览按钮206。在已经录入通向应用二进制文件的路径之后,软件发布方可以点击上传按钮208以向发布方系统上传二进制文件。
用户接口202也可以包括允许软件发布方描述已经对应用版本做出的新近改变的文本框210。例如在待上传的应用版本是对先前应用的更新的情况下,软件发布方可以用发行备注的形式录入文本,这些发行备注可以在与更新一起呈现它们时向用户呈现。这样的信息可以对用户在决定是否在他的或者她的计算设备上安装更新是有所帮助,并且潜在地提醒用户自从上次更新起可能已经向应用添加的新特征。
用户接口202也可以包括允许软件发布方在特定设备组上发布应用二进制文件的下拉框212或者另一适当控件。如以上描述的那样,特定设备组可以对应于作为应用版本的目标的设备组或者设备类型。例如一个设备组可以与智能电话关联,而另一设备组可以与写字板关联,并且更多另一设备组可以与机顶盒计算设备关联。作为另一示例,设备组可以以具有小或者中等屏幕尺寸的智能电话为目标,而另一设备组可以以具有大或者超大屏幕尺寸的智能电话为目标。使用如这里描述的设备组可以允许软件开发者创建它们的应用的为特定设备或者设备组优化或者定制的不同版本,并且可以向软件发布方提供对如何向特定设备发布各种版本的增加的控制。在一些实现中,下拉框212可以提供例如基于已经从与应用二进制文件关联的清单文件解析的信息从预定义设备组预选的建议的设备组。在这些情况下,软件发布方可以接受用于应用版本的建议的设备组或者可以被允许选择在下拉框中可用的不同设备组。一旦软件发布方已经完成输入关于正在被上传的应用版本的信息,发布方可以点击保存按钮214以完成上传过程。
在一些实现中,允许软件发布方例如通过点击保存按钮214来完成上传过程而未选择特定设备组。例如软件发布方可以在上传时间上传未被既定用于发布的一个或者多个版本,因此软件发布方可以选择不选定设备组以与应用版本关联。在一些实现中,仅发布已经与一个或者多个特定设备组关联的应用版本用于在应用集市系统上由用户访问。
图3是允许软件发布方描述和修改作为软件应用的不同版本的目标的设备组的示例用户接口302的图。如同用户接口202,用户接口302可以提供多个不同控件和输入以允许软件发布方指定如何处理软件应用的不同版本。虽然示出用户接口302为包括选项卡304、按钮314、316和318、滑块以及下拉框312的具体配置,但是应当理解也可以提供其它配置和/或输入机制。一般而言,用户接口302可以向软件发布方提供对它们的应用的版本如何以特定设备组为目标的控制,并且可以提供对哪些设备将接收特定应用的版本的可视化。
用户接口302可以呈现如图所示包括产品详情选项卡、设备组选项卡304和APK选项卡的选项卡式的接口。在这一具体示例中,设备组选项卡304是活跃的。一般而言,产品详情选项卡可以允许软件发布方指定一般关于应用的各种信息、比如应用的描述、应用的屏幕截图等。这样的信息可以适用于应用的所有不同版本。设备组选项卡304如以下更具体描述的那样可以允许软件发布方创建和/或修改可以用来关联具体应用版本与作为特定应用版本的目标的特定设备或者设备类型的设备组。APK选项卡可以允许软件发布方管理已经为特定应用上传的二进制文件,或者上传与应用关联的附加二进制文件。应当理解,虽然本文讨论形式为APK文件的应用二进制文件,但是也可以根据这里描述的技术处理其它类型的应用二进制文件。
设备组选项卡304可以包括多个设备组306、308和310,每个设备组可以用来描述用于正被发布的软件应用的特定版本的目标设备。在示例中,应用版本1.1与标注为“标准电话”的设备组306关联。设备组306以具有OS1.6、小或者中等屏幕尺寸和“GL_ATI_texture_compression_atitc”OpenGL纹理压缩格式的设备为目标。应用版本1.3与标注为“高端电话”的设备组308关联并且以具有从OS1.8至2.1和从小到大屏幕尺寸的设备为目标。在这一示例中,设备组308与任何OpenGL纹理压缩格式兼容。设备组310标注为“写字板”并且以具有OS3.0、超大屏幕尺寸的设备为目标。这些和其它设备组配置可以经由用户接口302由应用的发布方管理。
设备组可以包括可以用来以应用的用于具体设备的具体版本为目标的任何适当数目的设备属性或者维度。例如设备组可以允许软件发布方指定与设备关联的特定操作系统或者其它操作框架,和/或与设备关联的特定屏幕尺寸,和/或与设备关联的特定图形能力、例如与设备兼容的OpenGL纹理压缩格式。可以根据这里描述的技术使用的其它属性或者维度可以例如包括OpenGLES版本、本机设备平台(例如ARMEABIv7、INTEL等)或者某些设备特征或者设备能力(例如相机、蓝牙、电话、GPS、运动传感器等)。在一些实现中,也可以根据这里描述的技术使用附加维度、比如设备的载体和/或位置。
可以用适当方式进一步分段(例如通过指定前置摄像头与后置摄像头)这些和其它适当属性或者维度,以允许对于特定的实现可能适合的那么多的或那么少的设备粒度。一般而言,附加粒度可以向软件发布方提供对如何分发应用的不同版本的更大控制,而更少粒度可以提供用于软件发布方的更不复杂的接口。在一些实现中,系统可以允许软件发布方定义它们希望在对于特定设备组以它们的应用版本为目标时利用的粒度水平。
可以在具体值、具体值集合或者值范围方面描述设备组属性。例如如用户接口302中所示,使用具体值“GL_ATI_texture_compression_atitc”来定义用于设备组306的OpenGL纹理压缩格式。换而言之,如果设备利用除了指定的值之外的任何其它OpenGL纹理压缩格式,则设备不在设备组内相配。作为用户接口302中所示另一示例,作为设备组308的目标的OS版本包括从OS1.8上至OS2.1的范围。在使用值范围来描述设备组属性时,具有落在范围内任何处的设备属性的设备可以被视为在设备组内相配。相似地,在使用具体值集合来描述设备组属性时,具有与具体值中的任何具体值匹配的设备属性的设备可以被视为与特定设备组属性匹配。
在一些实现中,发布方系统可以允许设备组描述重叠设备组属性。例如如用户接口302中所示,在设备组306和308中指定小和中等屏幕尺寸,并且设备组308还指定大屏幕尺寸。在允许重叠设备组属性的这样的情况下,系统可以利用适当规则以确定应当向用户提供哪些应用版本。继续以上示例,一种方法可以是向用户提供具有最高版本代码的应用版本。在一些实现中,这样的重叠可以使系统向软件发布方提供警告以保证他或者她在确认设备组配置之前意识到重叠。
用户接口302可以被编程用于在软件发布方选定系统未允许的设备组设置时标识错误。例如在一些实现中,软件发布方可以定义两个设备组,从而两个之一被另一个完全包摄,并且其中与设备组之一关联的应用版本将绝不会向用户提供。如果这一功能在系统提供的发布规则之下不可允许,则系统可以生成错误。可以使用相似技术、比如通过显示描述错误的可视错误消息、通过播放可听提醒等来向软件发布方提起这样的错误。在一些实现中,如果在发布期间提起错误,则不可以允许软件发布方在修复错误的原因之前继续发布过程。
用户接口302也可以被编程用于在软件发布方选择设备组设置时标识警告,虽然这些设备组设置可能没有升至不被允许的级别,但这些警告可以创建关于将如何处理应用版本的一些模糊度。例如在一些实现中,可以在两个应用版本在一个或者多个维度中部分地重叠时生成警告。在这样的情况下,系统可以提供默认规则集,该默认规则集根据预定义过程、例如通过向设备提供具有更高版本代码的版本来处理重叠维度。作为另一示例,可以在软件发布方改变设备组,从而使得先前被提供访问应用的版本的设备不再与应用的任何版本关联时生成警告。在这样的示例中,可以未向用户提供对应用的任何更新,因为设备组都未以用户的设备为目标。
以上关于用户接口302描述的功能也可以由发布方系统自动完成而无来自软件发布方的任何干预。在这样的实现中,可以使用与应用版本本身关联的信息来生成用来描述各种设备组的定义。在一些情况下,与特定应用版本对应的二进制文件可以比如在应用清单中包括嵌入式信息,该信息用来描述与应用版本兼容的特定设备属性。例如应用清单可以声明仅与OS2.0或者以上兼容的二进制文件。在这一示例中,发布方系统可以自动创建与二进制文件的兼容性对应的设备组、即通过创建以具有OS2.0或者以上的设备为目标的设备组。
在一些实现中,可以利用用户接口302和自动应用版本的组合。例如作为初始方式,发布方系统可以利用二进制文件中的信息以创建用于应用版本的设备组。然后,软件发布方可以能够通过用户接口302、例如通过扩展或者收缩一个或者多个特定设备组属性的范围来调整设备组。例如继续以上示例,软件发布方可以决定虽然应用版本与OS2.0和以上兼容,但是不同应用版本可以更好地以OS2.2和以上为目标,并且发布方因此可以决定调节将用于当前应用版本的设备组调节成具有OS2.0或者OS2.1的设备、因此收缩原有目标设备组。
一般而言,如以上描述的示例用户接口302可以用来创建和/或修改如下设备组,该设备组用来使应用版本以特定设备或者设备组为目标。然而应当理解,其它用户接口可以用来实现与这里描述的系统和技术一致的相似功能。
图4是用于发布和分发具有多个版本的软件应用的示例过程400的泳道图。过程400可以例如由图1A和1B的发布方系统104和应用集市系统108实施。为了清楚地呈现,以下描述使用这些系统作为用于描述过程400的基础。然而其它系统或者系统组合也可以或者备选地用来执行该过程。
过程400在软件开发者编写软件应用以用于在应用集市系统上发布时开始。具体而言,根据这里描述的技术,软件开发者开发应用的多个不同版本以用于在应用集市系统上发布(402)。为了简化,在过程400中描述软件开发者为与软件发布方相同的实体,但是在一些情况下,不同实体可以负责发布另一实体已经开发的软件应用。
软件发布方然后可以向发布方系统上传各种版本(404)。软件发布方可以在相同时间上传应用的所有不同版本,或者可以选择随时间上传不同版本。无论何时上传版本,发布方系统可以在向系统上传应用版本中时解析与每个应用版本对应的二进制文件(406)。这样的解析可以允许发布方系统提取与应用版本有关的某些元数据,该元数据然后可以用来创建用于每个相应二进制文件的设备组(408)。
例如二进制文件可以包括清单文件,该清单文件描述对于应用与特定设备兼容的某些操作要求。例如如果二进制文件未被配置用于在具有小屏幕的设备上操作,则清单文件可以指定应用版本仅与具有中等或者更大尺寸的屏幕兼容。这一分类然后可以应用于设备组,该设备组用来使应用版本以特定设备或者设备组为目标。
在一些实现中,可以允许应用的发布方调整设备组(410)。例如如果应用版本将在具有中等或者更大尺寸的屏幕的设备上工作,则分类可以初始地包括具有中等或者更大尺寸的屏幕的所有设备。然而发布方也可以具有应用的不同版本,该版本专门以具有超大屏幕的设备为目标,并且因此可能想要应用的当前版本仅向具有中等和大尺寸的屏幕的设备发行,而对于不同版本则想要向具有超大屏幕的设备发行。在这样的场景中,发布方可以选择相应地调整设备组。
在发布方已经调整用于各种应用版本的设备组以将既定设备作为目标之后,发布方可以请求发布二进制文件(412)。发布方系统转而可以例如通过更新由应用集市系统使用的数据库来在应用集市系统上发布版本二进制文件(414),并且应用集市系统可以根据这里描述的技术向访问集市的用户提供适当版本二进制文件(416)。
过程400的用户访问部分在用户请求来自应用集市的特定应用时开始(420)。可以通过任何适当接口作出请求。例如用户的设备可以包括与应用集市系统通信以提供访问集市系统提供的应用的客户端集市应用。作为另一示例,用户可以访问对应用集市系统的基于web的前端,以请求应用。可以以不同形式提供对于应用的请求。例如用户可以能够浏览应用集市托管的各种应用或者可以使用常规搜索工具来搜寻应用。
响应于接收到请求,应用集市系统可以确定与用户的计算设备关联的一个或者多个设备属性(422)。例如如果用户通过在计算设备上执行的客户端集市应用来从计算设备访问应用集市,则请求可以包括设备信息(例如设备标识符),该设备信息允许应用集市系统以确定与设备关联的各种设备属性。在一些实现中,应用集市系统可以基于与请求包括的设备标识符确定设备属性(例如通过使用与请求发送的设备标识符来查找注册的设备的属性)。在其它实现中,请求本身可以包括如以下描述的可以由应用集市系统利用的某些设备属性。
应用集市系统然后可以如以上描述的那样从先前已经由软件发布方上传的多个版本之中标识软件应用的、以用户的设备为目标的特定版本(424)。例如应用集市系统可以使用确定的设备属性,以标识以具有那些设备属性的设备为目标的特定应用版本。在标识用于设备的适当应用版本之后,应用市场系统可以向用户提供关于应用版本的信息(426)。例如应用市场系统可以提供与应用的具体版本有关的某些信息例如用于向用户显示。信息可以例如包括一般与应用或者与应用的以用户的设备为目标的具体版本有关的文件大小、定价和其它信息。此外,信息可以包括允许用户下载标识的应用版本的机制(例如按钮或者链接)。
用户然后可以查看版本信息(428)并且可以例如使用由应用市场系统提供的机制来请求下载应用版本(430)。在接收对于下载的请求时,应用市场系统可以例如通过收集用于付费应用的付费信息并且授权用于用户的下载来促进下载(432)。
图5示出可以用来实施这里描述的技术的计算设备500和移动计算设备550的示例。计算设备500旨在于代表各种形式的数字计算机、比如膝上型计算机、桌面型计算机、工作站、个人数字助理、服务器、刀片服务器、主机和其它适当计算机。计算设备550旨在于代表各种形式的移动设备、比如个人数字助理、蜂窝电话、智能电话和其它相似计算设备。这里所示部件、它们的连接和关系及其功能意味着仅为示例,而不意味着限制在本文档中描述和/或要求保护的实现。
计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高速扩展端口510的高速接口508,以及连接到低速总线514和存储设备506的低速接口512。部件502、504、506、508、510和512中的每个部件通过使用各种总线来互连,并且可以被装备到共同母板上,或者以适当的其它方式装配。处理器502可以处理用于在计算设备500内执行的指令,这些指令包括在存储器504中或者存储设备506上存储的、用于在外部输入/输出设备、比如耦合到高速接口508的显示器516上显示用于GUI的图形信息的指令。在其它实现中,多个处理器和/或多个总线可以根据情况与多个存储器和存储器类型一起使用。也可以连接多个计算设备500而每个设备提供必需操作的部分(例如作为服务器组、成组刀片服务器或者多处理器系统)。
存储器504存储计算设备500内的信息。在一个实现中,存储器504是一个或者多个易失性存储器单元。在另一实现中,存储器504是一个或者多个非易失性存储器单元。存储器504也可以是另一形式的计算机可读介质、比如磁盘或者光盘。
存储设备506能够提供用于计算设备500的海量存储装置。在一个实现中,存储设备506可以是或者包含计算机可读介质、比如软盘设备、硬盘设备、光盘设备或者磁带设备、闪存或者其它相似固态存储器设备或者如下设备的阵列,这些设备包括存储区域网络或者其它配置中的设备。可以在信息载体中有形地体现计算机程序产品。计算机程序产品也可以包含在被执行时执行一种或者多种方法、比如以上描述的方法的指令。信息载体是计算机或者机器可读介质、比如存储器504、存储设备506或者在处理器502上的存储器。
高速控制器508管理用于计算设备500的带宽密集操作,而低速控制器512管理更低带宽密集操作。这样的功能分配仅为示例。在一个实现中,高速控制器508耦合到存储器504、显示器516(例如通过图形处理器或者加速器)并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口510。在该实现中,低速控制器512耦合到存储设备506和低速扩展端口514。可以包括各种通信端口(例如USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或者多个输入/输出设备、比如键盘、指点设备、扫描仪或者联网设备、比如交换机或者路由器。
如图中所示可以在多个不同形式中实施计算设备500。例如可以实施它为标准服务器520或者多次实施于成组这样的服务器中。也可以实施它为架式服务器系统524的一部分。此外,可以在个人计算机、比如膝上型计算机522中实施它。备选地,来自计算设备500的部件可以与移动设备(未示出)、比如设备550中的其它部件组合。这样的设备中的每个设备可以包含计算设备500、550中的一个或者多个计算设备,并且整个系统可以由相互通信的多个计算设备500、550组成。
计算设备550包括处理器552、存储器564、输入/输出设备、比如显示器554、通信接口566和收发器568以及其它部件。设备550也可以具有用于提供附加存储装置的存储设备、比如微驱动或者其它设备。使用各种总线来互连部件550、552、564、554、566和568中的每个部件,并且可以在共同母板上或者根据情况以其它方式装配部件中的若干部件。
处理器552可以执行计算设备550内的指令,这些指令包括存储器564中存储的指令。可以实施处理器为包括分离以及多个模拟和数字处理器的芯片的芯片组。处理器可以例如提供用于协调设备550的其它部件、比如用户接口控件、设备550运行的应用和设备550的无线通信。
处理器552可以通过控制接口558和耦合到显示器554的显示接口556与用户通信。显示器554可以例如是TFTLCD(薄膜晶体管液晶显示器)显示器或者OLED(有机发光二极管)显示器或者其它适当显示器技术。显示器接口556可以包括用于驱动显示器554以向用户呈现图形和其它信息的适当电路装置。控制接口558可以从用户接收命令,并且将其进行转换以用于向处理器552提交。此外,可以提供与处理器552通信的外部接口562以便启用设备550与其它设备的近区域通信。外部接口562可以例如在一些实现中提供有线通信或者在其它实现中提供无线通信,并且也可以使用多个接口。
存储器564存储计算设备550内的信息。可以实施存储器564为一个或者多个计算机可读介质、一个或者多个易失性存储器单元或者一个或者多个非易失性存储器单元中的一项或者多项。也可以提供扩展存储器574并且该扩展存储器可以通过可以例如包括SIMM(单列直插存储器模块)卡接口的扩展接口572连接到设备550。这样的扩展存储器574可以提供用于设备550的额外存储空间或者也可以存储用于设备550的应用或者其它信息。具体而言,扩展存储器574可以包括用于实现或者补充以上描述的过程的指令并且也可以包括安全信息。因此,例如可以提供扩展存储器574作为用于设备550的安全模块,并且可以用允许安全使用设备550的指令对扩展存储器574编程。此外,可以经由SIMM卡将安全应用与附加信息一起提供、比如以不可被黑客方式将标识信息放置于SIMM卡上。
如以下讨论的那样,存储器可以例如包括闪存和/或NVRAM存储器。在一个实现中,在信息载体中有形地体现计算机程序产品。计算机程序产品包含在被执行时执行一种或者多种方法、比如以上描述的方法的指令。信息载体是计算机或者机器可读介质、比如存储器564、扩展存储器574或者在处理器552上的存储器。
设备550可以通过可以在必要时可以包括数字信号处理电路装置的通信接口566无线地通信。通信接口566可以在以下各种模式或者协议以及其它模式或者协议之下提供通信,各种模式或者协议比如GSM语音呼叫、SMS、EMS或者MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000或者GPRS。可以例如通过射频收发器568发生这样的通信。此外,可以比如使用蓝牙、WiFi或者其它这样的收发器(未示出)发生短程通信。此外,GPS(全球定位系统)接收器模块570可以向设备550提供附加的与导航和位置有关的无线数据,该数据可以根据情况由在设备550上运行的应用使用。
设备550也可以使用音频编码解码器560来可听地通信,该编码解码器可以从用户接收口述信息并且将它转换成可用数字信息。音频编码解码器560可以类似地比如通过例如在设备550的头戴式受话器中的扬声器生成用于用户的可听声音。这样的声音可以包括来自语音电话呼叫的声音、可以包括记录的声音(例如语音消息、音乐文件等)并且也可以包括设备550上运转的应用所生成的声音。
如图中所示,可以用多个不同形式实施计算设备550。例如可以实施它为蜂窝电话580。也可以实施它为智能电话582、个人数字助理或者其它相似移动设备的一部分。
此外,计算设备500或者550可以包括通用串行总线(USB)闪存驱动。USB闪存驱动可以存储操作系统和其它应用。USB闪存驱动可以包括输入/输出部件、比如可以向另一计算设备的USB端口中插入的无线发送器或者USB连接器。
可以在数字电子电路装置、集成电路装置、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现这里描述的系统和技术的各种实现。这些各种实现可以包括在可编程系统上可执行和/或可解译的一个或者多个计算机程序中的实现,该可编程系统包括可以是专门或者通用的至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器被耦合用于从存储系统接收数据和指令以及向存储系统传输数据和指令。
这些计算机程序(也称为程序、软件、软件应用或者代码)包括用于可编程处理器的机器指令并且可以用高级过程化和/或面向对象的编程语言和/或用汇编/机器语言来实施。如这里所用,术语“机器可读介质”和“计算机可读介质”指代用来向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑器件(PLD))。
为了提供与用户的交互,可以在计算机上实施这里描述的系统和技术,该计算机具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或者LCD(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指点设备(例如鼠标或者轨迹球)。其它种类的设备也可以用来提供与用户的交互;例如向用户提供的反馈可以是任何形式的感官反馈(例如可视反馈、听觉反馈或者触觉反馈);并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。
可以在计算系统中实施这里描述的系统和技术,该计算系统包括后端部件(例如作为数据服务器)或者包括中间件部件(例如应用服务器)或者包括前端部件(例如具有如下图形用户接口或者Web浏览器的客户端计算机,用户可以通过该图形用户接口或者Web浏览器与这里描述的系统和技术的实现交互)或者这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序产生客户端和服务器关系。
虽然以上已经具体描述少数实现,但是其它修改是有可能的。另外,可以使用用于实现在本文档中描述的系统和方法的其它机制。此外,在图中描绘的逻辑流可以并不要求所示特定顺序或者依次顺序以实现所期望的结果。可以提供其它步骤或者可以从描述的流程消除步骤,并且可以向描述的系统添加或者从描述的系统去除其它部件。因而,其它实现在所附权利要求的范围内。

Claims (19)

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.一种存储有指令的非瞬态计算机可访问介质,在所述指令由处理器执行时执行操作,所述操作包括:
在应用集市系统处并且从与计算设备关联的用户接收与由所述应用集市系统分发的软件应用对应的请求,所述计算设备与所述应用集市系统远离地操作,其中所述软件应用具有在所述应用集市系统上同时可用的多个版本,并且其中所述软件应用的所述多个版本中的每个版本由对应的应用开发者提供以对计算设备的特定类型进行操作、并且与相应的版本以之为目标的设备组相关联;
由所述应用集市系统确定与所述计算设备的硬件和软件关联的一个或者多个设备属性;
基于确定与所述计算设备的所述硬件和软件关联的所述一个或者多个设备属性,由所述应用集市系统从在所述应用集市系统上同时可用的所述软件应用的所述多个版本之中标识所述软件应用的、以所述计算设备为目标的特定版本;以及
用于向所述用户显示并且响应于所述请求来由所述应用集市系统提供与所述软件应用的以所述计算设备为目标的所述特定版本有关的信息,其中提供的与所述软件应用的所述特定版本有关的所述信息并不包括与所述软件应用的其他版本有关的信息。
16.根据权利要求15所述的非瞬态计算机可访问介质,其中标识所述软件应用的、以所述计算设备为目标的所述特定版本包括确定所述计算设备所对应的特定设备组。
17.根据权利要求15所述的非瞬态计算机可访问介质,其中确定所述计算设备所对应的所述特定设备组包括比较至少一个设备属性与至少一个对应设备组属性,以确定所述至少一个设备属性是否与所述至少一个对应设备组属性相匹配。
18.根据权利要求15所述的非瞬态计算机可访问介质,其中标识所述软件应用的、以所述计算设备为目标的所述特定版本包括响应于确定所述计算设备对应于两个或者更多特定设备组来标识所述软件应用中具有最高版本号的版本。
19.一种系统,包括:
一个或多个计算机处理器;以及
一个或多个非瞬态计算机可读设备,所述设备包括指令,所述指令在由所述一个或多个计算机处理器执行时,使得所述一个或多个处理器执行操作,所述操作包括:
在应用集市系统处并且从与计算设备关联的用户接收与由所述应用集市系统分发的软件应用对应的请求,所述计算设备与所述应用集市系统远离地操作,其中所述软件应用具有在所述应用集市系统上同时可用的多个版本,并且其中所述软件应用的所述多个版本中的每个版本由对应的应用开发者提供以对计算设备的特定类型进行操作、并且与相应的版本以之为目标的设备组相关联
由所述应用集市系统确定与所述计算设备的硬件和软件关联的一个或者多个设备属性;
基于确定与所述计算设备的所述硬件和软件关联的所述一个或者多个设备属性,由所述应用集市系统从在所述应用集市系统上同时可用的所述软件应用的所述多个版本之中标识所述软件应用的、以所述计算设备为目标的特定版本;以及
用于向所述用户显示并且响应于所述请求来由所述应用集市系统提供与所述软件应用的以所述计算设备为目标的所述特定版本有关的信息,其中提供的与所述软件应用的所述特定版本有关的所述信息并不包括与所述软件应用的其他版本有关的信息。
CN201610074408.2A 2011-07-20 2012-07-20 多个应用版本的分发 Pending CN105677361A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/187,198 2011-07-20
US13/187,198 US8707289B2 (en) 2011-07-20 2011-07-20 Multiple application versions

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280045508.2A Division CN103890723A (zh) 2011-07-20 2012-07-20 多个应用版本的分发

Publications (1)

Publication Number Publication Date
CN105677361A true CN105677361A (zh) 2016-06-15

Family

ID=46584411

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280045508.2A Pending CN103890723A (zh) 2011-07-20 2012-07-20 多个应用版本的分发
CN201610074408.2A Pending CN105677361A (zh) 2011-07-20 2012-07-20 多个应用版本的分发

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201280045508.2A Pending CN103890723A (zh) 2011-07-20 2012-07-20 多个应用版本的分发

Country Status (5)

Country Link
US (6) US8707289B2 (zh)
EP (4) EP2734920B8 (zh)
KR (3) KR102111080B1 (zh)
CN (2) CN103890723A (zh)
WO (1) WO2013013166A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220066A (zh) * 2017-06-28 2017-09-29 北京金山安全软件有限公司 应用商店中应用软件的发布方法及装置
CN109240740A (zh) * 2018-11-15 2019-01-18 北京金山云网络技术有限公司 控制台版本兼容方法、装置及电子设备

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2012085176A (ja) * 2010-10-13 2012-04-26 Konica Minolta Business Technologies Inc 画像形成装置、情報機器およびコンピュータプログラム
US8707289B2 (en) 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US9646292B2 (en) * 2011-08-24 2017-05-09 Follett Corporation Method and system for distributing digital media content
US20130081007A1 (en) * 2011-09-27 2013-03-28 International Business Machines Corporation Providing continuous application availability during application update
US10147123B2 (en) 2011-09-29 2018-12-04 Amazon Technologies, Inc. Electronic marketplace for hosted service images
US8776043B1 (en) * 2011-09-29 2014-07-08 Amazon Technologies, Inc. Service image notifications
US9530156B2 (en) 2011-09-29 2016-12-27 Amazon Technologies, Inc. Customizable uniform control user interface for hosted service images
US9626700B1 (en) 2011-09-29 2017-04-18 Amazon Technologies, Inc. Aggregation of operational data for merchandizing of network accessible services
US10148762B2 (en) * 2011-10-18 2018-12-04 Facebook, Inc. Platform-specific notification delivery channel
US20130232229A1 (en) * 2012-03-02 2013-09-05 Ilya Firman Distribution of Application Files
US8973090B1 (en) * 2012-03-14 2015-03-03 Symantec Corporation Systems and methods for protecting platform-as-a-service platforms
US9096347B2 (en) 2012-03-20 2015-08-04 Berry Plastics Corporation Stand-up Package
US9239817B2 (en) * 2012-04-19 2016-01-19 Microsoft Technology Licensing, Llc Managing web extension through manifest file
WO2013175560A1 (ja) * 2012-05-21 2013-11-28 株式会社日立製作所 情報通信システム及び情報変換方法
US9710247B2 (en) * 2012-06-26 2017-07-18 Microsoft Technology Licensing, Llc Identification of host-compatible downloadable applications
US9189220B2 (en) * 2012-07-02 2015-11-17 Amazon Technologies, Inc. Evaluating application compatibility
CN107479911B (zh) * 2012-07-27 2021-07-16 华为终端有限公司 下载应用程序的方法、用户设备和应用服务器
JP2014063450A (ja) * 2012-08-27 2014-04-10 Sony Corp 携帯端末、情報処理装置、および情報処理方法
US8938726B2 (en) * 2012-08-28 2015-01-20 Sap Ag Integrating native application into web portal
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US9146720B1 (en) * 2012-09-14 2015-09-29 Amazon Technologies, Inc. Binary file application processing
US9229632B2 (en) 2012-10-29 2016-01-05 Facebook, Inc. Animation sequence associated with image
US9235321B2 (en) 2012-11-14 2016-01-12 Facebook, Inc. Animation sequence associated with content item
US9507757B2 (en) * 2012-11-14 2016-11-29 Facebook, Inc. Generating multiple versions of a content item for multiple platforms
US9606695B2 (en) 2012-11-14 2017-03-28 Facebook, Inc. Event notification
US9547627B2 (en) 2012-11-14 2017-01-17 Facebook, Inc. Comment presentation
US9684935B2 (en) 2012-11-14 2017-06-20 Facebook, Inc. Content composer for third-party applications
US9081410B2 (en) 2012-11-14 2015-07-14 Facebook, Inc. Loading content on electronic device
US9696898B2 (en) 2012-11-14 2017-07-04 Facebook, Inc. Scrolling through a series of content items
US9218188B2 (en) 2012-11-14 2015-12-22 Facebook, Inc. Animation sequence associated with feedback user-interface element
US9607289B2 (en) 2012-11-14 2017-03-28 Facebook, Inc. Content type filter
US9547416B2 (en) 2012-11-14 2017-01-17 Facebook, Inc. Image presentation
US9245312B2 (en) 2012-11-14 2016-01-26 Facebook, Inc. Image panning and zooming effect
US9507483B2 (en) 2012-11-14 2016-11-29 Facebook, Inc. Photographs with location or time information
US10530853B2 (en) * 2012-12-12 2020-01-07 Futurewei Technologies, Inc. Multi-screen application enabling and distribution service
US9877082B2 (en) * 2013-03-15 2018-01-23 Echostar Technologies Llc Addressable realtime messaging for television receivers
US20140289158A1 (en) * 2013-03-20 2014-09-25 Adobe Systems Inc. Method and apparatus for rating a multi-version product
US20140366002A1 (en) * 2013-06-11 2014-12-11 Sap Ag Searching for an entity most suited to provide knowledge regarding an object
US8918775B1 (en) * 2013-07-12 2014-12-23 Ca, Inc. Dynamic release control of software application version changes
KR20150026656A (ko) * 2013-09-03 2015-03-11 삼성전자주식회사 응용프로그램 관리 방법 및 그 전자 장치
US20150128121A1 (en) * 2013-11-06 2015-05-07 Improvement Interactive, LLC Dynamic application version selection
US20150156257A1 (en) * 2013-12-04 2015-06-04 Huawei Technologies Co., Ltd. Application service providing method and system, and related device
ES2655207T3 (es) * 2013-12-27 2018-02-19 Buongiorno S.p.A. Método y sistema para implementar conjuntos de herramientas de desarrollo de software en aplicación
US9367299B2 (en) 2013-12-31 2016-06-14 Google Inc. Preventing application downgrade in an application store
US9749440B2 (en) * 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US9817646B1 (en) 2014-03-17 2017-11-14 Google Llc Multiplatform and multichannel distribution of web applications across devices
US10140654B2 (en) * 2014-03-20 2018-11-27 United Parcel Service Of America, Inc. Concepts for repair and service of a consumer device using a network connection and diagnostic test
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
US20150370548A1 (en) * 2014-06-23 2015-12-24 Google Inc. Automated Mobile Application Publishing
US9853929B2 (en) 2014-09-30 2017-12-26 Apple Inc. Service compatibility check for messages
US10095500B2 (en) * 2014-09-30 2018-10-09 Apple Inc. Revision locking
CN104317914B (zh) * 2014-10-28 2018-07-31 小米科技有限责任公司 数据获取方法和装置
CN104375891A (zh) * 2014-11-04 2015-02-25 普华基础软件股份有限公司 一种应用程序管理系统
US10949075B2 (en) 2014-11-06 2021-03-16 Microsoft Technology Licensing, Llc Application command control for small screen display
US20160132992A1 (en) 2014-11-06 2016-05-12 Microsoft Technology Licensing, Llc User interface scaling for devices based on display size
WO2016086124A1 (en) * 2014-11-25 2016-06-02 Berry Plastics Corporation Package
US10532872B2 (en) 2014-12-08 2020-01-14 Berry Plastics Corporation Package
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
LU92690B1 (en) * 2015-04-03 2016-10-04 Iee Int Electronics & Eng Sa Heating device for curved surfaces
US9472196B1 (en) * 2015-04-22 2016-10-18 Google Inc. Developer voice actions system
US20160313958A1 (en) * 2015-04-27 2016-10-27 Microsoft Technology Licensing, Llc Cross-platform command extensibility
US10042626B2 (en) * 2015-06-29 2018-08-07 Verizon Patent And Licensing Inc. Software updates using client self-reporting and a hierarchical data structure
US10320879B2 (en) * 2015-07-09 2019-06-11 Verizon Patent And Licensing Inc. Software service discovery and service evolution management
KR101935847B1 (ko) * 2015-07-17 2019-01-07 인핸스 인코퍼레이티드 컴파일링된 소프트웨어 내의 기계 명령어를 수정하기 위한 방법 및 시스템
US10572248B2 (en) * 2015-08-12 2020-02-25 Blackberry Limited Groups of endpoints and targeting of releases and packages to endpoints
US10365912B2 (en) 2015-08-12 2019-07-30 Blackberry Limited Delivery mechanisms for deployment of releases of packages to endpoints
US10229137B2 (en) 2015-08-12 2019-03-12 Blackberry Limited Management of upgradeable endpoints
US10656935B2 (en) * 2015-10-13 2020-05-19 Home Box Office, Inc. Maintaining and updating software versions via hierarchy
US10623514B2 (en) 2015-10-13 2020-04-14 Home Box Office, Inc. Resource response expansion
US9986064B2 (en) 2015-12-03 2018-05-29 International Business Machines Corporation Adaptable applications in a client/server architecture
US10242386B2 (en) * 2015-12-16 2019-03-26 Facebook, Inc. Grouping users into tiers based on similarity to a group of seed users
US9823919B2 (en) * 2015-12-30 2017-11-21 Microsoft Technology Licensing, Llc Controlled deployment of application feature in mobile environment
CN105988688A (zh) * 2016-01-22 2016-10-05 腾讯科技(深圳)有限公司 一种截图的方法及装置
US9910663B1 (en) 2016-02-23 2018-03-06 Mackson Consulting, LLC Network-independent modular applications
US10057263B2 (en) * 2016-03-01 2018-08-21 Cay JEGLINSKI Application management system
CN105867879A (zh) * 2016-03-21 2016-08-17 合肥赛猊腾龙信息技术有限公司 一种模拟微处理器指令的方法及装置
US10044832B2 (en) 2016-08-30 2018-08-07 Home Box Office, Inc. Data request multiplexing
CN110168651A (zh) * 2016-10-11 2019-08-23 基因组系统公司 用于选择性访问存储的或传输的生物信息数据的方法和系统
US20180157478A1 (en) * 2016-12-02 2018-06-07 Coursera, Inc. Deployment of immutable web application builds
US10649753B2 (en) * 2016-12-14 2020-05-12 Verizon Patent And Licensing Inc. Enabling user device application modularity
US10698740B2 (en) 2017-05-02 2020-06-30 Home Box Office, Inc. Virtual graph nodes
US10635699B2 (en) * 2017-05-03 2020-04-28 Servicenow, Inc. Fuzzy matching for computing resources
JP7009909B2 (ja) * 2017-10-26 2022-01-26 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム、及び管理システム
US11157258B2 (en) * 2017-11-16 2021-10-26 Atlassian Pty Ltd. Systems and processes for updating computer applications
MY191530A (en) * 2017-11-20 2022-06-29 Emerico Sdn Bhd A system for operating an electronic platform
US10630808B1 (en) * 2018-02-02 2020-04-21 Dell Products L.P. Contextual routing for directing requests to different versions of an application
US11640429B2 (en) 2018-10-11 2023-05-02 Home Box Office, Inc. Graph views to improve user interface responsiveness
US11307840B2 (en) 2019-07-05 2022-04-19 Hewlett Packard Enterprise Development Lp Software version determinations based on release notes and support file
CN110377330B (zh) * 2019-07-22 2023-07-04 国美视界(北京)科技有限公司 电子设备的操作系统配置方法及设备
CN110766526B (zh) * 2019-10-28 2023-10-10 陈灏 一种接入平板电脑应用商店的应用发现与定制系统及方法
KR20210055387A (ko) 2019-11-07 2021-05-17 삼성전자주식회사 컨텍스트에 기반하여 애플리케이션을 제공하는 서버 및 그 제어 방법
US11061667B1 (en) 2020-04-27 2021-07-13 Citrix Systems, Inc. Selecting a version of an application
US11556320B2 (en) 2020-08-06 2023-01-17 Bank Of America Corporation Electronic system for dynamic analysis and detection of transformed transient data in a distributed system network
CN114827133A (zh) * 2022-06-27 2022-07-29 浪潮云信息技术股份公司 一种应用软件管理方法、装置及计算机

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030221190A1 (en) * 2002-05-22 2003-11-27 Sun Microsystems, Inc. System and method for performing patch installation on multiple devices
US20060143601A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Runtime optimizing applications for a target system from within a deployment server
CN101119517A (zh) * 2007-07-12 2008-02-06 深圳市融合视讯科技有限公司 一种从网络服务器自动下载软件的方法
CN102098660A (zh) * 2009-12-15 2011-06-15 上海苏腾信息科技有限公司 一种基于服务器移动客户终端的本地程序自动适配系统

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US5991856A (en) * 1997-09-30 1999-11-23 Network Associates, Inc. System and method for computer operating system protection
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US20030041110A1 (en) 2000-07-28 2003-02-27 Storymail, Inc. System, Method and Structure for generating and using a compressed digital certificate
GB2367216B (en) 2000-09-26 2004-01-21 Hewlett Packard Co Selection of content for downloading
US20040068721A1 (en) 2000-11-17 2004-04-08 O'neill Patrick Network for updating firmware and / or software in wireless communication devices
AU2002232464A1 (en) 2001-02-09 2002-08-28 Microsoft Corporation Distribution of binary executables and content from peer locations/machines
US7130951B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
AU2003231070A1 (en) * 2002-04-18 2003-11-03 Advanced Micro Devices Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US20040002943A1 (en) 2002-06-28 2004-01-01 Merrill John Wickens Lamb Systems and methods for application delivery and configuration management of mobile devices
US20040203681A1 (en) 2002-07-01 2004-10-14 Ross David J. Application catalog on an application server for wireless devices
US20040098715A1 (en) 2002-08-30 2004-05-20 Parixit Aghera Over the air mobile device software management
US7409208B1 (en) 2003-07-02 2008-08-05 Cellco Partnership Self-subscription to catalogs of mobile application software
US20050177829A1 (en) 2003-10-10 2005-08-11 Vipul Vishwanath Method of applying constraints against discovered attributes in provisioning computers
US20050108690A1 (en) * 2003-11-17 2005-05-19 Tira Wireless Inc. System and method of generating applications for mobile devices
US7509636B2 (en) 2003-12-15 2009-03-24 Microsoft Corporation System and method for updating files utilizing delta compression patching
US7257583B2 (en) 2004-01-09 2007-08-14 Microsoft Corporation System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download
US8239858B2 (en) * 2004-02-25 2012-08-07 Research In Motion Limited Method and system for selecting a program for download
US7707242B2 (en) * 2004-09-30 2010-04-27 Bally Gaming, Inc. Internet browser-based gaming system and method for providing browser operations to a non-browser enabled gaming network
GB0426736D0 (en) * 2004-12-06 2005-01-12 Omnifone Ltd MyFone
US7818734B2 (en) 2005-01-21 2010-10-19 Callwave, Inc. Methods and systems for transferring data over a network
US20060217111A1 (en) 2005-02-11 2006-09-28 Sunil Marolia Network for customer care and distribution of firmware and software updates
US8027684B2 (en) 2005-08-22 2011-09-27 Infosys Technologies, Ltd. System for performing a task in a communication network and methods thereof
US8346223B1 (en) 2005-11-07 2013-01-01 Flurry, Inc. Delivering a customized service to a mobile device using a link
US7475358B2 (en) 2006-02-14 2009-01-06 International Business Machines Corporation Alternate progress indicator displays
US20070255576A1 (en) 2006-04-26 2007-11-01 Macrovision Corporation Service providing an electronic market for the distribution of promotional material using software installation packages
GB0702587D0 (en) 2006-05-05 2007-03-21 Omnifone Ltd Digital rights management
US20080052383A1 (en) 2006-08-25 2008-02-28 Gpxs Holding Ltd. System and method for mobile device application management
US9231904B2 (en) 2006-09-25 2016-01-05 Weaved, Inc. Deploying and managing networked devices
US8370479B2 (en) * 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8413135B2 (en) * 2006-10-30 2013-04-02 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for controlling software application installations
KR101430442B1 (ko) 2007-01-08 2014-08-14 엘지전자 주식회사 네트워크 기반의 능력 관리를 통한 세션 업데이트 방법 및단말
US7844658B2 (en) 2007-01-22 2010-11-30 Comcast Cable Holdings, Llc System and method for providing an application to a device
JP4946592B2 (ja) 2007-04-20 2012-06-06 株式会社日立製作所 ダウンロード装置および方法、コンテンツ送受信システムおよび方法
US20090037287A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Software Marketplace and Distribution System
CN101378561B (zh) 2007-08-29 2013-01-02 华为技术有限公司 提供终端外观内容的方法、外观定制服务器和系统
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090307683A1 (en) * 2008-06-08 2009-12-10 Sam Gharabally Network-Based Update of Application Programs
JP2011527465A (ja) 2008-06-30 2011-10-27 モミニス リミテッド コンピュータアプリケーションの生成・配布方法
US8650561B2 (en) 2008-07-10 2014-02-11 Apple Inc. System and method for localizing display of applications for download
US8607208B1 (en) * 2008-10-01 2013-12-10 Oracle International Corporation System and methods for object code hot updates
US8213924B2 (en) 2008-10-06 2012-07-03 Facebook, Inc. Providing distributed online services for mobile devices
US20100088367A1 (en) * 2008-10-08 2010-04-08 Research In Motion Limited Mobile wireless communications device and system providing dynamic management of carrier applications and related methods
EP2175366B1 (en) * 2008-10-08 2012-10-10 Research In Motion Limited Server for sending new application portions to mobile wireless communications devices and related methods
EP2175612B1 (en) * 2008-10-08 2016-11-02 BlackBerry Limited Mobile wireless communications system providing downloading and installation of mobile device applications upon registration and related methods
US9367680B2 (en) * 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US8745153B2 (en) * 2009-02-09 2014-06-03 Apple Inc. Intelligent download of application programs
US8340635B2 (en) * 2009-03-16 2012-12-25 Apple Inc. Capability model for mobile devices
US8725745B2 (en) 2009-04-13 2014-05-13 Microsoft Corporation Provision of applications to mobile devices
US8346847B2 (en) 2009-06-03 2013-01-01 Apple Inc. Installing applications based on a seed application from a separate device
US20100325624A1 (en) * 2009-06-22 2010-12-23 Stephen John Bartolo Method and System for Application Portability
US20100332296A1 (en) * 2009-06-25 2010-12-30 Apple Inc. Systems, methods, and computer-readable media for community review of items in an electronic store
KR101369773B1 (ko) * 2009-07-08 2014-03-06 한국전자통신연구원 어플리케이션 식별자를 이용한 어플리케이션 설치 방법 및 장치
US8849717B2 (en) 2009-07-09 2014-09-30 Simon Cooper Methods and systems for upgrade and synchronization of securely installed applications on a computing device
KR20110042982A (ko) 2009-10-20 2011-04-27 삼성전자주식회사 컨텐츠 다운로드 서비스 제공방법 및 이를 적용한 단말장치
US8719776B2 (en) 2009-12-30 2014-05-06 Foneclay, Inc. System for creation and distribution of software applications usable on multiple mobile device platforms
US20110246618A1 (en) 2010-04-02 2011-10-06 Apple Inc. Caching multiple views corresponding to multiple aspect ratios
CN105760716B (zh) 2010-05-19 2018-12-14 谷歌有限责任公司 电子证书管理
JP2012018657A (ja) 2010-06-11 2012-01-26 Nintendo Co Ltd 情報処理端末、情報処理システム、情報処理プログラム
US8819123B1 (en) 2011-05-17 2014-08-26 Amazon Technologies, Inc. Web document transfers
US8707289B2 (en) 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US8903955B2 (en) 2011-12-02 2014-12-02 Cisco Technology, Inc. Systems and methods for intelligent video delivery and cache management
US20130198342A1 (en) 2012-01-26 2013-08-01 General Instrument Corporation Media format negotiation mechanism delivering client device media capabilities to a server
US9785424B2 (en) 2015-06-05 2017-10-10 Apple Inc. Capability attributes based application packaging

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030221190A1 (en) * 2002-05-22 2003-11-27 Sun Microsystems, Inc. System and method for performing patch installation on multiple devices
US20060143601A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Runtime optimizing applications for a target system from within a deployment server
CN101119517A (zh) * 2007-07-12 2008-02-06 深圳市融合视讯科技有限公司 一种从网络服务器自动下载软件的方法
CN102098660A (zh) * 2009-12-15 2011-06-15 上海苏腾信息科技有限公司 一种基于服务器移动客户终端的本地程序自动适配系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220066A (zh) * 2017-06-28 2017-09-29 北京金山安全软件有限公司 应用商店中应用软件的发布方法及装置
CN109240740A (zh) * 2018-11-15 2019-01-18 北京金山云网络技术有限公司 控制台版本兼容方法、装置及电子设备
CN109240740B (zh) * 2018-11-15 2022-08-02 北京金山云网络技术有限公司 控制台版本兼容方法、装置及电子设备

Also Published As

Publication number Publication date
US20170140451A1 (en) 2017-05-18
US20150287003A1 (en) 2015-10-08
US10290035B2 (en) 2019-05-14
US8707289B2 (en) 2014-04-22
US9595027B2 (en) 2017-03-14
EP3809258A1 (en) 2021-04-21
KR102111080B1 (ko) 2020-05-15
US8621450B2 (en) 2013-12-31
CN103890723A (zh) 2014-06-25
EP3907604A1 (en) 2021-11-10
KR102156815B1 (ko) 2020-09-16
EP2734920B8 (en) 2017-12-13
US20130024852A1 (en) 2013-01-24
US20130024851A1 (en) 2013-01-24
US20140173585A1 (en) 2014-06-19
KR20200052991A (ko) 2020-05-15
KR20180014199A (ko) 2018-02-07
KR20140054100A (ko) 2014-05-08
US10740813B2 (en) 2020-08-11
EP2734920A1 (en) 2014-05-28
EP3293630B1 (en) 2022-03-16
KR101824666B1 (ko) 2018-02-01
EP2734920B1 (en) 2017-10-04
WO2013013166A1 (en) 2013-01-24
EP3293630A1 (en) 2018-03-14
US20190259078A1 (en) 2019-08-22
US9098380B2 (en) 2015-08-04

Similar Documents

Publication Publication Date Title
CN105677361A (zh) 多个应用版本的分发
EP2820539B1 (en) Distribution of application files
US10248401B1 (en) Multiplatform and multichannel distribution of web applications across devices
CN108351765B (zh) 用于生成应用的方法、系统和计算机存储介质
US20170242666A1 (en) Development System and Method for Providing External Functionality
US20220237315A1 (en) Metadata storage architecture and data aggregation
KR20210125781A (ko) 이미지 기반 컨텐츠의 개인화 추천을 위한 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
US11652893B2 (en) Enhanced processing of user profiles using data structures specialized for graphical processing units (GPUs)
JP2020155108A (ja) 複数のソーシャルネットワークサービス内のチャンネルをグルーピングする方法、システム、および非一時的なコンピュータ読み取り可能な記憶媒体
EP3001336A1 (en) Presenting publisher data sets in context
US10523774B2 (en) Method and system for personalizing notification time within contents service
US10382541B2 (en) Server and method for providing design data for application and system for generating application
KR102252053B1 (ko) 듀얼 스크린에서의 컨텐츠 중복을 배제하는 방법, 시스템, 및 컴퓨터 프로그램
US20220253343A1 (en) Method for combining unified matters in personal workspace and system using the same
JP2022083998A (ja) コンテンツ配置方法およびコンピュータ装置
CN115390832A (zh) 前端组件处理方法、装置、终端及存储介质
JP2013196216A (ja) サーバ装置、検索方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160615