CN105453078A - 捆绑包取回 - Google Patents
捆绑包取回 Download PDFInfo
- Publication number
- CN105453078A CN105453078A CN201380077089.5A CN201380077089A CN105453078A CN 105453078 A CN105453078 A CN 105453078A CN 201380077089 A CN201380077089 A CN 201380077089A CN 105453078 A CN105453078 A CN 105453078A
- Authority
- CN
- China
- Prior art keywords
- bag
- resource
- application
- bundle
- applicability
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000009434 installation Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 10
- 230000000007 visual effect Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 abstract description 17
- 230000000153 supplemental effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 57
- 238000010586 diagram Methods 0.000 description 19
- 230000004304 visual acuity Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 12
- 238000012795 verification Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000008520 organization Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 239000013589 supplement Substances 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010422 painting Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供了用于生成捆绑包、对捆绑包进行数字签名、选择性地分发捆绑包和/或对从捆绑包取回的一个或更多资源包进行索引的一种或更多种技术和/或系统。也就是说,捆绑包(例如应用或游戏捆绑包)包括一个或更多应用包,所述应用包包括被配置成在各种计算环境(例如操作系统、处理器等等)上执行的应用代码。捆绑包可以包括一个或更多资源包,所述资源包包括被用来提供用于应用的可选用户体验功能的补充数据(例如法语支持、高分辨率纹理、游戏板支持等等)。通过这种方式,客户端设备可以选择性地下载可能是相关的捆绑包的某些部分,这可以减少通过其他方式被用来获得捆绑包的不必要部分的下载带宽、存储空间或者资源(例如平板设备可以仅下载低分辨率纹理)。
Description
背景技术
许多用户利用应用来实施多种活动,比如检查电子邮件、玩视频游戏、共享照片、通过社交网络进行交互、从事银行业务和/或许多其他活动。由于用户可以通过各种设备和/或计算环境来执行这样的应用,因此应用开发者可以创建支持多个处理器、操作系统、语言、显示尺度、分辨率、图形卡等等的应用部署包。因此,所述应用部署包可能包括相对大量的数据,特定的设备或计算环境可能不会使用到全部所述数据。举例来说,用户可以从应用市场下载绘画应用到平板设备上。绘画应用可以包括可以与平板设备良好地一起工作的中等分辨率纹理(texture),但是还可以包括意图用于较小的智能电话的低分辨率纹理以及意图用于个人计算机的高分辨率纹理。绘画应用可以包括针对10种语言的支持。平板设备可以利用中等分辨率纹理和由用户所使用的语言,但是可能不会利用低分辨率纹理、高分辨率纹理以及其他9种语言。在绘画应用在平板设备上的下载、部署以及执行期间,绘画应用的这样的未被使用的特征可能不必要地消耗下载带宽、存储空间以及计算资源。
发明内容
提供本发明内容是为了以简化形式介绍将在后面的具体实施方式中进一步描述的概念的选择。本发明内容不意图标识出所要求保护的主题内容的关键因素或必要特征,也不意图被用来限制所要求保护的主题内容的范围。
除了别的之外,在这里提供了用于以下操作的一种或更多种系统和/或技术:生成用于应用的捆绑包;对捆绑包进行数字签名;选择性地取回捆绑包的某些部分;对与应用相关联的资源包进行索引;以及分发和安装用于游戏的游戏捆绑包。
在生成用于应用的捆绑包的一些实施例中,可以标识出一个或更多应用包以供包括在用于应用的捆绑包内。第一应用包可以包括被配置成在第一计算环境上执行的第一应用代码(例如可执行二进制文件),第一计算环境比如是特定的计算机架构(例如第一处理器架构、不同的第二处理器架构等等)和/或特定的操作系统(例如平板设备操作系统、台式机操作系统、基于云的操作系统等等)。可以标识出一个或更多资源包以供包括在捆绑包内。资源包可以包括用于应用的可选的用户体验功能(例如分辨率纹理数据、语言数据、比如DirectX®之类的多媒体应用程序接口(API)版本数据、可以由现代资源技术(MRT)加载的与地区有关的数据和/或可以被用来促进调整用户体验等等的任何其他资源、数据等等)。举例来说,第一资源包可以包括被用来提供用于应用的第一用户体验功能的第一补充数据。可以生成捆绑包以包括一个或更多应用包以及一个或更多资源包。通过这种方式,可以选择性地下载应用包和/或一个或更多资源包以用于应用的安装(例如平板设备可以下载第一处理器架构应用包和中等分辨率纹理资源包)。
在对捆绑包进行数字签名的一些实施例中,对于与应用相关联的捆绑包实施第一数字签名操作。捆绑包包括第一应用包和第一资源包。在一个示例中,捆绑包包括一个或更多应用包和/或一个或更多资源包。可以实施数字签名操作(例如使用单一数字签名证书作为单一签名操作来实施)以便对第一应用包、第一资源包和捆绑包进行数字签名。举例来说,利用数字签名证书通过第一应用包签名对第一应用包进行签名,利用数字签名证书通过第一资源包签名对第一资源包进行签名,并且利用数字签名证书通过捆绑包签名对捆绑包进行签名。由于数字签名操作使用相同的数字签名证书(例如和/或通过单一签名操作)对第一应用包、第一资源包和捆绑包进行签名,因此可以由第一应用包签名、第一资源包签名和/或捆绑包签名共享一个签名属性集合(例如数字签名证书所有者、授权机构的连锁认证、密钥使用、签名验证日期、加密强度和/或时间戳)。通过这种方式,捆绑包和/或其某些部分可以由客户端设备选择性地和/或单独地下载,并且由客户端设备基于共享的签名属性以有效的方式来证实。
在选择性地取回与应用相关联的捆绑包的某些部分的一些实施例中,可以标识出与要安装的应用相关联的捆绑包。举例来说,捆绑包可以与可用于通过应用市场下载的照片共享可应用相关联。可以确定针对应用在客户端设备上执行的适用性情境。举例来说,适用性情境可以指定针对客户端设备的分辨率、屏幕尺度、感兴趣的语言集合、多媒体API特征集合、图形处理单元(GPU)或者其他用户体验情境(例如针对说德语的用户的智能电话的适用性情境可以基于语言、硬件能力、显示能力等等而不同于针对说英语的用户的台式机的适用性情境)。可以基于第一应用包包括对应于由适用性情境指定的计算环境情境(例如处理器架构、操作系统类型等等)的应用代码而从捆绑包中选择性地取回第一应用包。响应于适用性情境对应于捆绑包的资源包集合内的第一资源包,可以从捆绑包中选择性地取回第一资源包(例如可以为智能电话取回德语资源包)。通过这种方式,可以选择性地取回对应于适用性情境的一个或更多资源包,而不取回不对应于适用性情境的资源包(例如对于智能电话可以不取回高分辨率游戏纹理,如果将其取回的话,其可能会不必要地消耗下载带宽和/或需要存储智能电话不可使用的应用的某些部分/特征)。
在对客户端设备上的应用的资源包进行索引的一些实施例中,在客户端设备上标识出第一资源包和第二资源包。在一个示例中,第一资源包和第二资源包可能已经针对所述应用被选择性地和/或单独地下载,并且因此可以初始地被存储在客户端设备上,而不存在指定可以如何使用第一资源包和第二资源包来提供针对所述应用的调整的用户体验的逻辑关系。第一资源包包括被用来提供用于应用的第一可选用户体验功能的第一补充数据(例如被用来提供用于社交网络应用的德语用户界面体验的一个或更多德语文字串)。第二资源包包括被用来提供用于应用的第二可选用户体验功能的第二补充数据(例如被用来提供用于社交网络应用的法语用户界面体验的一个或更多法语文字串)。
用于第一资源包的第一资源索引可以描述用于第一资源包的第一资源数据(例如一个或更多德语字符串)和/或第一资源适用性数据(例如使用德语数据来显示针对说德语的用户的文字)。用于第二资源包的第二资源索引可以描述用于第二资源包的第二资源数据(例如一个或更多法语字符串)和/或第二资源适用性数据(例如使用法语数据来显示针对说法语的用户的文字)。第一资源索引和第二资源索引可以被合并到合并的资源索引中。合并的资源索引可以描述第一资源包和/或第二资源包内的各项单独的资源,比如德语文字串和/或法语文字串。可以对合并的资源索引进行评估,以便对于应用的执行而选择性地利用一项或更多项资源。在一个示例中,可以在用于社交网络应用的应用包内创建对于合并的索引的引用。在使用所述应用包执行社交网络应用时,可以使用所述引用来查询合并的索引,以便标识出哪些资源对于执行社交网络应用是可用的和/或是相关的(例如第一资源包内的德语欢迎消息文字串对于针对说德语的当前用户的欢迎消息窗口可能是相关的;在当前显示设定被设定到高对比度模式时,高对比度显示资源包内的高对比度用户界面元素可能是相关的;等等)。
在通过游戏捆绑包分发游戏的一些实施例中,可以生成用于游戏的游戏捆绑包。游戏捆绑包可以包括一个或更多核心游戏包。第一核心游戏包包括被配置成在第一计算环境(例如x86处理器)上执行的游戏代码(例如可执行二进制文件)。游戏捆绑包可以包括一个或更多资源游戏包。第一资源游戏包可以包括被用来提供用于游戏的第一可选用户体验功能的第一补充知晓硬件数据(例如纹理图像、地形数据、角色几何结构和/或特定显示质量下的其他游戏视觉化数据)。所述一个或更多核心游戏包和/或一个或更多资源游戏包可以被暴露用于游戏的选择性下载和/或安装。通过这种方式,客户端设备可以选择性地下载可以在所述客户端设备上提供符合期望的游戏体验的某些资源游戏包(例如平板设备可以下载中等质量纹理以便节省下载带宽和/或存储空间,而PC则可以下载高质量纹理)。
为了实现前述和有关目的,后面的描述和附图阐述了某些说明性方面和实施方式。这些仅仅表明了可以据以采用一个或更多方面的各种方式当中的少数几种。当结合附图考虑后面的具体实施方式时,从后面的具体实施方式中,本公开内容的其他方面、优点和新颖特征将变得显而易见。
附图说明
图1是图示出了生成用于应用的捆绑包的示例性方法的流程图。
图2是图示出了用于生成捆绑包的示例性系统的组件方框图。
图3是促进资源包创建事务的一个示例的图示。
图4是图示出了用于选择性地分发捆绑包的某些部分的示例性系统的组件方框图。
图5是图示出了对捆绑包进行数字签名的示例性方法的流程图。
图6是图示出了用于利用提取技术对捆绑包进行签名的示例性系统的组件方框图。
图7是图示出了用于从新的捆绑包创建经过签名的捆绑包的示例性系统的组件方框图。
图8是图示出了用于在原地(in-place)对捆绑包内的包进行数字签名的示例性系统的组件方框图。
图9是图示出了用于分发经过签名的捆绑包和/或其中的经过签名的包的示例性系统的组件方框图。
图10是图示出了选择性地取回与应用相关联的捆绑包的某些部分的示例性方法的流程图。
图11是图示出了用于选择性地取回与应用相关联的捆绑包的某些部分的示例性系统的组件方框图。
图12是图示出了用于选择性地取回与应用相关联的捆绑包的某些部分的示例性系统的组件方框图。
图13是图示出了对客户端设备上的应用的资源包进行索引的示例性方法的流程图。
图14是图示出了用于对客户端设备上的应用的资源包进行索引的示例性系统的组件方框图。
图15是图示出了用于在应用的执行期间利用合并的索引的示例性系统的组件方框图。
图16是图示出了通过游戏捆绑包来分发游戏的示例性方法的流程图。
图17是图示出了通过游戏捆绑包来安装游戏的示例性方法的流程图。
图18是图示出了用于通过游戏捆绑包来分发游戏的示例性系统的组件方框图。
图19是示例性计算机可读介质的图示,其中可以包括被配置成采用这里所阐述的其中一项或更多项规定的处理器可执行指令。
图20图示出了可以在其中实施这里所阐述的其中一项或更多项规定的示例性计算环境。
具体实施方式
现在将参照图来描述所要求保护的主题内容,其中相同的附图标记通常被用来始终指代相同的元素。在后面的描述中出于解释的目的阐述了许多具体细节,以便提供对于所要求保护的主题内容的理解。但是可明显的是,可以在没有这些具体细节的情况下实践所要求保护的主题内容。在其他实例中,为了便于描述所要求保护的主题内容,通过方框图的形式图示出结构和设备。
这里所提供的软件组件(比如资源包、应用包等等)可以(在几乎没有或者完全没有重复的情况下)被选择性地提供到末端用户机器,从而使得仅为末端用户机器提供由该末端用户机器使用的软件组件,而末端用户机器不必下载、存储和/或安装不必要的软件组件。举例来说,末端用户机器(比如客户端设备)可以包括多种多样的软件和/或硬件特性(例如平板设备可以包括不同于台式游戏设备的处理器、操作系统、图形处理单元和/或多种特性)。为了在这样的客户端设备上提供符合期望的体验,许多应用可以为相应的客户端设备定制应用资产(例如特定应用的纹理、字符串、图像、用户界面元素和/或其他软件组件)。不幸的是,这对于开发者和/或用户可能是成问题的,因为开发者可能要花费大量的时间和/或资源来为这样的多种客户端设备创建单独的安装包。替换地,开发者可以创建包括所有应用资产的单一安装包,这可能会将下载和/或存储大量应用资产的负担放在用户和/或客户端设备上,其中客户端设备利用仅仅所述应用资产的一(例如,小)部分。
相应地,正如这里所提供的那样,对于应用的各项应用资产(例如资源包和/或应用包内的资产),开发者可以标识出客户端设备的特性,其可以被用来选择用于下载到客户端设备的软件组件(例如选择性地下载资源包和/或应用包)。在一个示例中,应用包可以包括应用二进制文件和/或可执行文件,其可以取决于客户端设备中的CPU的架构(例如x86、x64等等)。在另一个示例中,图形资源包可以包括纹理和/或着色器(shader)应用资产,其可以取决于客户端设备中的图形处理单元的水平或世代(例如DX9、DX10或DX11)。在另一个示例中,用户界面资源包可以包括对话框和/或其他用户界面元素资产,其可以取决于客户端设备的显示分辨率(例如,比如96*1.0、*1.4或*1.6的监视器DPI)。在另一个示例中,纹理资源包可以包括指导资产,其可以取决于客户端设备的语言。
开发者可以提交应用资产,并且可以通过客户端设备的特性对应用资产加标签。软件分发系统可以从开发者上载(on-board)这样的信息以供客户端设备取回。当在客户端设备上发生安装时,标识出客户端设备的设备特性。安装器可以安装与客户端设备的设备特性相匹配的应用资产集合(其例如被包括在一个或更多资源包内),并且可以避免安装不匹配的应用资产。通过这种方式,开发者可以仅提供应用资产一次以供客户端设备安装,并且用户可以仅在客户端设备上下载和/或安装将由该客户端设备使用的应用资产。
通过图1的示例性方法100图示出了生成用于应用的捆绑包的一个实施例。在102处,所述方法开始。在104处,可以标识出一个或更多应用包以供包括在用于应用的捆绑包内。举例来说,第一应用包可以包括被配置成在第一计算环境(例如第一处理器类型、平板设备操作系统等等)上执行的第一应用代码,第二应用包可以包括被配置成在第二计算环境(例如第二处理器类型、台式机操作系统等等)上执行的第二应用代码,等等。通过这种方式,应用可以基于所述一个或更多应用包而支持各种计算环境(比如计算机架构或操作系统)。在一个示例中,应用包可以包括可执行二进制文件,其可以被执行来在客户端设备上运行应用的核心版本。由于应用可以支持针对应用的多种多样的可选的用户体验功能,因此可以将这样的功能从所述一个或更多应用包中分离出来,并且可以将其暴露以用于与应用代码分开的选择性的和/或可选的下载。通过这种方式,客户端设备可以仅下载对于该客户端设备或者该客户端设备的用户可能是相关的可选功能(例如对于用户的特定语言的支持、用于游戏设备的高分辨率纹理、用于平板设备的低分辨率纹理等等)。因此,可以通过资源包来提供这样的可选用户体验功能。
在106处,可以标识出一个或更多资源包以供包括在捆绑包内。举例来说,第一资源包可以包括被用来提供用于应用的第一可选用户体验功能的第一补充数据(例如纹理数据、图标数据、按照特定语言的字符串、多媒体API功能、按照特定分辨率的图像等等);第二资源包可以包括被用来提供用于应用的第二可选用户体验功能的第二补充数据;等等。可以认识到,资源包不限于这里所提供的示例,并且资源包可以包括多种多样的任何一项或更多项资源,其比如可以涉及语言、显示功能、硬件功能、软件功能、用户界面功能和/或可以被用来调整(tailor)用户体验的任何其他功能(例如可以由现代资源技术加载的任何数据等等)。在一个示例中,资源包可以包括用于应用的可选语言用户体验功能。在另一个示例中,资源包可以包括可以针对用户调整的可选用户体验功能(例如优选的用户输入模式、高对比度设定、用户的位置等等)。在另一个示例中,资源包可以包括用于应用的可选显示质量用户体验功能(例如分辨率数据、屏幕尺度数据、多媒体API数据等等)。在另一个示例中,资源包可以包括可选的知晓硬件的功能,其可以取决于客户端设备的硬件能力(例如用于包括摄影机的客户端设备的图像捕获功能,用于包括麦克风或头戴式耳机的客户端设备的音频功能,用于包括无线外设的客户端设备的无线功能等等)。在另一个示例中,资源包包括与多项用户体验功能相关联的内容(例如高分辨率德语图像;利用DX9功能集合的高对比度交互式用户界面元素;等等)。
在一些实施例中,可以对于应用自动生成资源包。举例来说,可以对应用包进行解析,以便从第一应用包中标识出第一可选数据集合(例如应用可以原生地提供英语字符串,但是还可以包括法语字符串以作为可选的语言支持)。可以从第一应用包中提取出第一可选数据集合。可以基于第一可选数据集合生成资源包,比如法语资源包。在一个示例中,资源包(其例如被自动生成或者并非自动生成)可以包括一种类型的多个实例(例如英语资源包、美国英语资源包和/或英国英语资源包等等)。
在108处,可以生成捆绑包以包括所述一个或更多应用包和/或一个或更多资源包。在一个示例中,(例如在单一数字签名操作期间)可以利用数字签名证书对捆绑包、一个或更多应用包和/或一个或更多资源包进行数字签名,从而使得所述包可以共享一个签名属性集合(例如数字签名证书所有者、授权机构的连锁认证、密钥使用、签名验证日期、签名加密强度、签名时间戳等等),这可以允许客户端设备有效地验证所述包而不管所述包是否被选择性地和/或单独地下载。在一个示例中,可以生成捆绑清单以供包括在捆绑包内。捆绑清单可以包括针对一个或更多应用包的一项或更多项应用描述和/或针对一个或更多资源包的一项或更多项资源描述。在一个示例中,可以对捆绑包进行更新,以便添加、移除和/或修改其中的应用包和/或资源包。举例来说,可以接收针对捆绑包的捆绑更新。捆绑更新可以包括用于包括在捆绑包内的新的资源包。捆绑包可以被更新以包括新的资源包,并且捆绑清单可以被更新以载明所述新的资源包可用于可选的取回。在其中通过应用市场认证过程(例如,用以验证正确的功能和/或与应用市场的兼容性的自动化和/或人工测试过程)来对捆绑包进行认证的一个示例中,可以仅仅对新的资源包进行认证,而不是对捆绑包进行重新认证。
捆绑包可以被暴露用于通过应用市场的选择性下载。举例来说,一个或更多资源包可以被暴露作为用于应用的可选下载。也就是说,可以下载应用包以用于将应用安装在客户端设备上,并且一个或更多资源包可以被可选地下载或部署,以便提供用于所述应用的可选用户体验功能(例如对于法语的支持)。相应地,可以接收来自客户端设备的捆绑获取请求。在一个示例中,捆绑获取请求可以指定第一应用包。可以将第一应用包选择性地提供到客户端设备以用于安装。在一个示例中,捆绑获取请求可以指定捆绑包内的第二资源包。可以从捆绑包向客户端设备选择性地提供第二资源包而不是第一资源包以用于应用的安装。在另一个示例中,捆绑获取请求指定包括在捆绑包内的一个资源包子集。所述资源包子集可以指定捆绑包内的所述一个或更多资源包当中的至少一些但是少于全部的资源包。通过这种方式,可以从捆绑包向客户端设备选择性地提供所述资源包子集以用于应用的安装。在110处,所述方法结束。
图2图示出了用于生成捆绑包208的系统200的一个示例。系统200可以包括捆绑生成组件206。捆绑生成组件206可以被配置成标识出用于应用的一个或更多应用包(例如由绘画应用的应用开发者提供的应用包数据202)。捆绑生成组件206可以被配置成标识出用于应用的一个或更多资源包(例如由应用开发者或者比如资源包开发者之类的另一来源所提供的资源包数据204)。在一个示例中,捆绑生成组件206可以对应用包进行解析,以便标识出可以被提取和/或被用来生成资源包的可选数据。举例来说,可以对应用包进行解析,以便标识出多媒体API版本2.2的特征集合,其可以提供用于所述绘画应用的可选显示功能,从而可以针对所述特征集合创建资源包。
捆绑生成组件206可以生成用于绘画应用的捆绑包208,以便包括一个或更多应用包和/或一个或更多资源包。举例来说,捆绑包208例如可以包括:包括被配置成在第一处理器架构上执行的应用代码的第一应用包210,包括被配置成在第二处理器架构上执行的应用代码的第二应用包212,包括被配置成在云操作系统上执行的应用代码的第三应用包214,和/或被配置成在各种计算机架构和/或操作系统上执行的其他应用包。捆绑包208可以包括:包括德语字符串的第一资源包216、包括法语字符串的第二资源包218、包括按照1440x900的中等质量分辨率图像(或者例如中等质量像素密度)的第三资源包220、包括按照1920x1080的高质量分辨率图像(例如高质量像素密度)的第四资源包222、包括多媒体API版本2.2的特征集合的第五资源包224(例如可以基于从应用包提取出的可选显示功能自动生成第五资源包224),和/或包括被用来提供用于所述绘画应用的可选用户体验功能的补充数据的其他资源包。捆绑生成组件206可以生成捆绑清单226,其描述可以通过捆绑包208得到的一个或更多应用包和/或一个或更多资源包。通过这种方式,捆绑包208可以被暴露用于捆绑包208或者其中的某些部分的选择性下载,以用于所述绘画应用的安装(例如图4)。
图3图示出了促进资源包创建事务的一个示例300。也就是说,应用的应用开发者(例如绘画应用的绘画应用开发者302)可以创建应用包,所述应用包包括被配置成用英语执行所述绘画应用的应用代码。可以通过应用市场认证过程对应用包进行认证,从而可以将其捆绑到捆绑包中并且通过应用市场暴露用于下载。在一个示例中,绘画应用开发者302可能希望使得所述绘画应用可由说西班牙语的用户使用,但是可能缺少实施这样的翻译的资源。相应地,可以将资源包外包接口306暴露给绘画应用开发者302(例如绘画应用开发者302可以访问可能托管资源包外包接口306的网站)。
可以接收来自绘画应用开发者302的资源包创建请求304(例如针对创建西班牙语资源包的征求)。资源包创建请求304可以通过资源包外包接口而暴露给多个资源包开发者。举例来说,资源包开发者(A)308、资源包开发者(B)310和资源包开发者(C)312可以通过托管资源包外包接口306的网站来访问资源包创建请求304。可以通过资源包外包接口306接收一项或更多项资源包创建投标(例如来自资源包开发者(A)308的资源包创建投标(A)314,以及来自资源包开发者(B)310的资源包创建投标(B)316)。响应于对资源包创建投标的选择(例如选择了资源包创建投标(B)316),可以在绘画应用开发者302与资源包开发者(B)310之间促进资源包创建事务(例如可以促进西班牙语资源包的付费事务和/或移交)。通过这种方式,可以接收来自资源包开发者(B)310的西班牙语资源包,以供包括在用于所述绘画应用的捆绑包中。
图4图示出了用于选择性地分发捆绑包208的某些部分的系统400的一个示例。系统400可以包括应用分发组件402,其被配置成将一个或更多应用包(例如第一应用包210、第二应用包212、第三应用包214等等)和/或一个或更多资源包(例如针对德语字符串的第一资源包216、针对法语字符串的第二资源包218、针对按照1440x900的中等分辨率纹理的第三资源包、针对按照1920x1080的高分辨率纹理的第四资源包、针对多媒体API版本2.2的第五资源包等等)暴露用于绘画应用在客户端设备406上的选择性下载和/或部署。举例来说,应用分发组件402可以将捆绑清单226暴露给客户端设备,比如原生地支持1440x900分辨率并且由说德语的用户使用的平板设备。捆绑清单226可以描述捆绑包208,比如所述一个或更多应用包和/或一个或更多资源包。
在一个示例中,接收来自客户端设备406的捆绑获取请求。捆绑获取请求可以指定第二应用包212,这是因为客户端设备406具有可以使用第二应用包212来执行所述绘画应用的第二处理器架构。捆绑获取请求可以指定第一资源包216,这是因为用户说德语。在一个示例中,捆绑获取请求不指定第二资源包218,从而使得客户端设备406不消耗将通过其他方式被用来针对用户所不说的法语而下载和部署第二资源包218的下载带宽、存储空间和/或计算资源。捆绑获取请求可以指定第三资源包220,这是因为客户端设备406原生地支持1440x900的分辨率。在一个示例中,捆绑获取请求不指定第四资源包222,从而使得客户端设备406不消耗将通过其他方式被用来针对客户端设备406所不支持的分辨率而下载和部署第四资源包222的下载带宽、存储空间和/或计算资源。通过这种方式,应用分发组件402选择性地将来自捆绑包208的第二应用包212、第一资源包216和/或第三资源包220提供到客户端设备406,以用于所述绘画应用的安装。
通过图5的示例性方法500图示出了对捆绑包进行数字签名的一个实施例。在502处,所述方法开始。用于应用的捆绑包可以包括一个或更多应用包和/或一个或更多资源包。应用包可以包括应用代码,其可以被执行以便在特定计算环境中运行所述应用(例如第一应用包可以包括可由移动操作系统和/或第二处理器架构执行的可执行二进制文件)。资源包可以包括被配置成提供用于应用的可选用户体验功能的补充代码。在一个示例中,第一资源包可以包括德语的字符串。在另一个示例中,显示资源包可以包括分辨率数据、屏幕尺度数据、多媒体API版本数据和/或可以针对所述应用提供经过调整的视觉体验的其他数据。由于所述捆绑包、一个或更多应用包和/或一个或更多资源包可以由客户端设备选择性地和/或单独地下载以供安装(例如客户端设备可以下载第一应用包和包括法语的字符串的第二资源包,但是可以不下载第一资源包,这是因为该客户端设备的用户不说德语),所以可以实施数字签名操作,所述数字签名操作利用具有类似签名属性(例如数字签名证书所有者、授权机构的连锁认证、密钥使用、签名验证日期、签名加密强度、签名时间戳等等)的数字签名对所述捆绑包、一个或更多应用包和/或一个或更多资源包进行签名。所述数字签名可以由客户端设备使用来针对应用的安装而验证捆绑包、应用包和/或资源包的来源和/或其中的内容。
相应地,在504处对于捆绑包实施第一数字签名操作。在一个示例中,利用数字签名证书通过单一签名操作来实施第一数字签名操作(例如在所述单一签名操作期间可以使用相同的数字签名证书来对捆绑包、应用包和/或资源包进行签名,从而使得这样的包包括可以被客户端设备有效地验证的类似的签名属性,而不管这样的包是否被分开地或者单独地下载)。在506处,第一数字签名操作可以包括利用数字签名证书通过第一应用包签名对第一应用包进行数字签名,从而创建经过签名的第一应用包。在508处,第一数字签名操作可以包括利用数字签名证书通过第一资源包签名对第一资源包进行数字签名,从而创建经过签名的第一资源包。在510处,创建利用签名证书通过捆绑包签名进行签名的经过签名的捆绑包(例如可以对初始地包括应用包和/或资源包的捆绑包进行签名;可以从经过签名的应用包和经过签名的资源包创建新的捆绑包,并且可以对新的捆绑包进行签名;等等)。第一应用包签名、第一资源包签名和捆绑包签名可以共享一个签名属性集合。
在对第一应用包和第一资源包进行签名的一些实施例中,可以从捆绑包中提取出第一应用包和第一资源包以作为所提取出的第一应用包和所提取出的第一资源包。可以对所提取出的第一应用包进行数字签名,以便创建经过签名的所提取出的第一应用包。可以对所提取出的第一资源包进行数字签名,以便创建经过签名的所提取出的第一资源包。在一个示例中,经过签名的所提取出的第一应用包被返回到捆绑包以作为经过签名的第一应用包,并且经过签名的所提取出的第一资源包被返回到捆绑包以作为经过签名的第一资源包。通过这种方式,可以对捆绑包进行签名以便创建经过签名的捆绑包。在另一个示例中,利用经过签名的所提取出的第一应用包作为经过签名的第一应用包以及利用经过签名的所提取出的第一资源包作为经过签名的第一资源包来创建新的捆绑包。可以利用捆绑包签名对所述新的捆绑包进行签名,从而创建经过签名的捆绑包。在另一个示例中,在第一应用包和/或第一资源包被包括在捆绑包内时,在原地对第一应用包和/或第一资源包进行签名。
在对一个或更多应用包和/或一个或更多资源包进行签名的一些实施例中,可以使用数字签名证书顺序地对所述一个或更多应用包和/或一个或更多资源包进行签名。在对一个或更多应用包和/或一个或更多资源包进行签名的一些实施例中,可以并行地对所述一个或更多应用包和/或一个或更多资源包进行签名。在一个示例中,可以并行地对第一应用包和第一资源包进行签名。在另一个示例中,可以并行地对第一应用包和第二应用包进行签名。在另一个示例中,可以并行地对第一资源包和第二资源包进行签名。
经过签名的捆绑包可以被暴露用于通过应用市场进行下载。一个或更多经过签名的资源包可以被暴露为用于应用的可选下载。在其中经过签名的捆绑包包括经过签名的第一资源包和经过签名的第二资源包的一个示例中,可以接收来自客户端设备的捆绑获取请求。捆绑获取请求可以指定经过签名的第一应用包和经过签名的第一资源包。可以向客户端设备选择性地提供经过签名的第一应用包和经过签名的第一资源包而不提供经过签名的第二资源包,以用于应用的签名验证和安装。在512处,所述方法结束。
图6图示出了使用提取技术对捆绑包进行签名的系统600的一个示例。系统600包括数字签名组件614。数字签名组件614可以被配置成利用数字签名证书616来实施数字签名操作(例如单一签名操作),以便对捆绑包(例如在被数字签名之前的用于视频编辑器应用的捆绑包602a)和/或其中的各个包进行数字签名。举例来说,数字签名组件614可以从捆绑包602a中提取出612第一应用包604a、第二应用包606a、第一资源包608a和第二资源包610a。数字签名组件614可以利用数字签名证书616通过第一应用包签名620对第一应用包604a进行数字签名,以便创建经过签名的所提取出的第一应用包。数字签名组件614可以利用数字签名证书616通过第二应用包签名622对第二应用包606a进行数字签名,以便创建经过签名的所提取出的第二应用包。数字签名组件614可以利用数字签名证书616通过第一资源包签名624对第一资源包608a进行数字签名,以便创建经过签名的所提取出的第一资源包。数字签名组件614可以利用数字签名证书616通过第二资源包签名626对第二资源包610a进行数字签名,以便创建经过签名的所提取出的第二资源包。在一个示例中,所述包可以被顺序地或并行地签名。
在一个示例中,数字签名组件614可以把经过签名的所提取出的包返回628到捆绑包602a,并且可以利用数字签名证书616通过捆绑包签名对捆绑包602a进行签名,以便创建包括经过签名的第一应用包604b、经过签名的第二应用包606b、经过签名的第一资源包608b和经过签名的第二资源包610b的经过签名的捆绑包602b。捆绑包签名、第一应用包签名620、第二应用包签名622、第一资源包签名624和/或第二资源包签名626可以共享一个签名属性集合(例如数字签名证书所有者、授权机构的连锁认证、密钥使用、签名验证日期、签名加密强度、签名时间戳等等)。通过这种方式,由于各个包签名共享签名属性集合,因此可以由客户端设备以有效的方式选择性地和/或单独地下载和验证经过签名的捆绑包602b和/或其中的经过签名的包。
图7图示出了用于从新的捆绑包创建经过签名的捆绑包704的系统700的一个示例。系统700包括数字签名组件614。数字签名组件614可以被配置成利用数字签名证书616来实施数字签名操作(例如单一签名操作),以便对捆绑包(例如在被数字签名之前的用于视频编辑器应用的捆绑包602a)和/或其中的包进行数字签名。举例来说,数字签名组件614可以从捆绑包602a中提取出612第一应用包604a、第二应用包606a、第一资源包608a和第二资源包610a。数字签名组件614可以利用数字签名证书616通过第一应用包签名620对第一应用包604a进行数字签名,以便创建经过签名的所提取出的第一应用包。数字签名组件614可以利用数字签名证书616通过第二应用包签名622对第二应用包606a进行数字签名,以便创建经过签名的所提取出的第二应用包。数字签名组件614可以利用数字签名证书616通过第一资源包签名624对第一资源包608a进行数字签名,以便创建经过签名的所提取出的第一资源包。数字签名组件614可以利用数字签名证书616通过第二资源包签名626对第二资源包610a进行数字签名,以便创建经过签名的所提取出的第二资源包。在一个示例中,所述包可以被顺序地或并行地签名。
在一个示例中,数字签名组件614可以利用经过签名的所提取出的包创建702新的捆绑包。可以利用数字签名证书616通过捆绑包签名对所述新的捆绑包进行签名,以便创建经过签名的捆绑包704。通过这种方式,经过签名的捆绑包704可以包括经过签名的第一应用包604b(其例如对应于通过第一应用包签名620进行签名的第一应用包604a)、经过签名的第二应用包606b(其例如对应于通过第二应用包签名622进行签名的第二应用包606a)、经过签名的第一资源包608b(其例如对应于通过第一资源包签名624进行签名的第一资源包608a)以及经过签名的第二资源包610b(其例如对应于通过第二资源包签名626进行签名的第二资源包610a)。在一个示例中,经过签名的捆绑包704可以替代捆绑包602a(例如可以删除捆绑包602a)。捆绑包签名、第一应用包签名620、第二应用包签名622、第一资源包签名624和/或第二资源包签名626可以共享一个签名属性集合(例如数字签名证书所有者、授权机构的连锁认证、密钥使用、签名验证日期、签名加密强度、签名时间戳等等)。通过这种方式,由于各个包签名共享签名属性集合,因此可以由客户端设备以有效的方式选择性地和/或单独地下载和验证经过签名的捆绑包704和/或其中的经过签名的包。
图8图示出了用于在原地对捆绑包802内的包进行数字签名的系统800的一个示例(例如对于视频编辑器应用)。系统800可以包括数字签名组件814。当第一应用包804、第二应用包806、第一资源包808和第二资源包810被包括在捆绑包802内时,数字签名组件814可以被配置成利用数字签名证书816在原地通过第一应用包签名对第一应用包804进行签名、通过第二应用包签名对第二应用包806进行签名、通过第一资源包签名对第一资源包808进行签名并且通过第二资源包签名对第二资源包810进行签名。数字签名组件814可以利用数字签名证书816通过捆绑包签名对捆绑包802进行签名,以便创建经过签名的捆绑包。由于数字签名组件814可以使用数字签名证书816在数字签名操作812期间对各个包进行签名,所以各个包签名可以共享一个签名属性集合。
图9图示出了用于分发经过签名的捆绑包924和/或其中的经过签名的包的系统900的一个示例。经过签名的捆绑包924可以包括经过签名的第一应用包902、经过签名的第二应用包904、经过签名的第一资源包906和经过签名的第二资源包908。在数字签名操作期间,数字签名证书可能被用来通过捆绑包签名对经过签名的捆绑包924进行签名,通过第一应用包签名910对经过签名的第一应用包902进行签名,通过第二应用包签名912对经过签名的第二应用包904进行签名,通过第一资源包签名914对经过签名的第一资源包906进行签名,并且通过第二资源包签名916对经过签名的第二资源包908进行签名。
系统900可以包括应用分发组件918。应用分发组件918可以被配置成将经过签名的捆绑包924和/或其中的经过签名的包暴露用于由客户端设备(比如客户端设备922)进行选择性的和/或单独的下载。举例来说,可以接收来自客户端设备922的捆绑获取请求。捆绑获取请求可以指定经过签名的第一应用包902和经过签名的第二资源包908。应用分发组件918可以把经过签名的第一应用包902、经过签名的第二资源包908以及签名926(例如捆绑包签名、第一应用包签名910和/或第二资源包签名916)发送920到客户端设备922,以用于由经过签名的捆绑包924所代表的应用的验证和/或安装。
通过图10的示例性方法1000图示出了选择性地取回与应用相关联的捆绑包的某些部分的一个实施例。在1002处,所述方法开始。在1004处,可以标识出与应用相关联的捆绑包以用于安装(例如应用市场可以将捆绑包和/或其中的某些部分暴露用于选择性的和/或单独的下载)。捆绑包可以包括一个或更多应用包和/或一个或更多资源包,所述一个或更多应用包包括被配置成在比如操作系统或计算机架构之类的各种计算环境上执行的应用代码(例如第一应用包可以包括针对可以在移动操作系统上执行的绘画应用的可执行二进制文件),所述一个或更多资源包包括被用来提供可选的用户体验功能的补充数据。由于客户端设备可以包括各种计算环境,因此可以将一个或更多应用包暴露用于选择性下载(例如游戏计算设备可以下载包括基于游戏的操作系统的第二应用包,而不是第一应用包)。由于所述一个或更多资源包可以包括被用来提供对于客户端设备或用户可能或者可能不相关的可选用户体验功能的补充数据,因此可以将所述一个或更多资源包暴露用于选择性的和/或可选的下载(例如游戏计算设备可以下载高分辨率纹理资源包,但是可以避免下载低分辨率纹理资源包)。在一个示例中,所述捆绑包、一个或更多应用包和/或一个或更多资源包可能已利用数字签名证书进行了数字签名(例如在单一数字签名操作期间),从而使得所述包可以共享一个签名属性集合(例如数字签名证书所有者、授权机构的连锁认证、密钥使用、签名验证日期、签名加密强度、签名时间戳等等),这可以允许客户端设备有效地验证这些包,而不管这些包是否被选择性地和/或单独地下载。
在1006处,可以确定针对应用在客户端设备上执行的适用性情境。适用性情境可以对应于与客户端设备和/或客户端设备的用户相关联的多种隐含的和/或明确的信息。在一个示例中,适用性情境可以对应于客户端设备的分辨率、客户端设备的屏幕尺度、针对客户端设备的用户体验情境(例如用户可以指定高对比度显示模式,用户可以安装游戏板外围设备,用户可以安装麦克风设备驱动程序,用户的位置,和/或与用户相关联的多种其他优选项和/或情境方面)、客户端设备上可用的多媒体API的特征集合(例如DirectX®特征集合)、客户端设备的图形处理单元、针对客户端设备的视觉质量情境、由客户端设备的用户所使用的语言和/或可以被用来标识出可能与用户和/或客户端设备相关的用户体验功能的许多其他信息。在另一个示例中,可以对客户端设备进行评估,以便隐含地标识出适用性情境(例如用户当前可能正处在法国,因此可能暗示着法语情境)。在另一个示例中,可以将用户针对客户端设备所指定的设定确定为适用性情境(例如由用户设定的高对比度显示模式)。在另一个示例中,可以对与客户端设备相关联的信息应用模糊匹配逻辑,从而生成关于客户端设备或用户的假设以作为适用性情境(例如由用户安装的游戏图形卡和游戏外围设备可以被用来确定用户期望高分辨率纹理)。在其中多个用户可以利用客户端设备的另一个示例中,可以对多个用户进行列举,并且可以基于所述多个用户来确定适用性情境(例如针对第一用户的德语和针对第二用户的法语)。
在1008处,可以基于第一应用包包括对应于由适用性情境所指定的计算环境情境(例如操作系统、计算机架构等等)的应用代码来选择性地取回第一应用包。在一个示例中,可以验证第一应用包的第一应用包签名(例如对于应用包的应用开发者的标识和/或对于第一应用包未被修改过的验证)。在1010处,响应于适用性情境对应于包括在捆绑包内的一个或更多资源包当中的第一资源包,从捆绑包选择性地取回第一来源包。在一个示例中,可以验证第一资源包的第一资源包签名(例如对于第一资源包的开发者的标识和/或对于第一资源包未被修改过的验证)。由于捆绑包可能包括不对应于适用性情境的资源包,因此不从捆绑包取回这样的资源包。举例来说,针对智能电话的适用性情境可以指定针对智能电话的相对低的分辨率,因而对于智能电话可以取回低分辨率图像资源包而不是高分辨率图像资源包。
在一个示例中,适用性情境可以指定澳大利亚英语。响应于捆绑包不包括针对澳大利亚英语的语言资源包,可以标识出与澳大利亚英语的对应性在某个语言相似度阈值以上的第二语言的第二语言资源包(例如可以将英国英语资源包标识成比美国英语资源包更加类似于澳大利亚英语)。可以选择性地取回第二语言资源包,比如英国英语资源包。通过这种方式,可以选择性地取回在某个相似度阈值以上(例如“次好的”选择)的与适用性情境有关的资源包(例如在某个阈值以上的对应于适用性情境的视觉质量情境的视觉资源包)。客户端设备可以利用从捆绑包取回的第一应用包、第一资源包和/或其他包来安装应用。
在一个示例中,可以标识出针对捆绑包的更新。所述更新可以对应于向捆绑包内的资源包集合添加新的资源包。响应于适用性情境对应于所述新的资源包(例如澳大利亚英语资源包),可以从捆绑包选择性地取回所述新的资源包。通过这种方式,客户端设备可以仅获得与客户端设备和/或用户相关的应用包和/或资源包。在1012处,所述方法结束。
图11图示出了用于选择性地取回与应用相关联的捆绑包1110的某些部分的系统1100的一个示例。在一个示例中,捆绑包1110与绘画应用相关联。捆绑包1110包括一个或更多应用包和/或一个或更多资源包。举例来说,捆绑包1110包括用于第一处理器类型的第一应用包1112和用于第二处理器类型的第二应用包1114。捆绑包包括用于美国英语的第一资源包,用于英国英语的第二资源包1118,用于高分辨率图标的第三资源包1120,以及用于中等分辨率图标的第四资源包1122。所述一个或更多资源包可以被暴露用于所述绘画应用的选择性的和/或可选的下载。也就是说,资源包可以包括被用来提供用于应用的可选用户体验功能的补充数据。
在一个示例中,客户端设备1102(比如平板设备)可以标识出针对绘画应用的捆绑包1110。客户端设备1102可以获得描述捆绑包1110内的一个或更多应用包和/或一个或更多资源包的捆绑清单1124。系统1100可以包括被配置成确定客户端设备1102的适用性情境1106的适用性组件1104。举例来说,适用性情境1106可以指定客户端设备1102具有第二处理器类型,客户端设备1102的用户说澳大利亚英语,并且客户端设备1102支持中等到低的分辨率图形。系统1100可以包括被配置成取回1126对应于适用性情境1106的应用包和/或一个或更多资源包的取回组件1108。取回组件1108可以避免取回不对应于适用性情境1106的应用包和/或资源包(例如对应性不在相似度阈值以上)。在一个示例中,取回组件1108可以取回1126第二应用包1114、第二资源包1118(这例如是因为英国英语与澳大利亚英语情境的对应性可以在某个相似度阈值以上,而美国英语并非如此)和第四资源包1122(这例如是因为中等分辨率图标与中等到低的分辨率情境的对应性可以在某个相似度阈值以上,而高分辨率图标并非如此),这是因为这样的包对应于适用性情境1106。通过这种方式,客户端设备1102可以使用所述选择性地下载的包来安装所述绘画应用。
图12图示出了用于选择性地取回与应用相关联的捆绑包1110的某些部分的系统1200的一个示例。在一个示例中,捆绑包1110与绘画应用相关联。捆绑包1110包括一个或更多应用包和/或一个或更多资源包。举例来说,捆绑包1100包括用于第一处理器类型的第一应用包1112和用于第二处理器类型的第二应用包1114。捆绑包1110包括用于美国英语的第一资源包1116,用于英国英语的第二资源包1118,用于高分辨率图标的第三资源包1120,以及用于中等分辨率图标的第四资源包1122。所述一个或更多资源包可以被暴露用于所述绘画应用的选择性的和/或可选的下载。也就是说,资源包可以包括被用来提供用于应用的可选用户体验功能的补充数据。
在一个示例中,客户端设备1202(比如游戏台式机)可以标识出针对绘画应用的捆绑包1110。客户端设备1202可以获得描述捆绑包1110内的一个或更多应用包和/或一个或更多资源包的捆绑清单1124。系统1200可以包括被配置成确定客户端设备1202的适用性情境1206的适用性组件1204。举例来说,适用性情境1206可以指定客户端设备1202具有第一处理器类型,客户端设备1102的用户说英语,并且客户端设备1202支持高分辨率图形。系统1200可以包括被配置成取回1210对应于适用性情境1206的应用包和/或一个或更多资源包的取回组件1208。取回组件1208可以避免取回不对应于适用性情境1206的应用包和/或资源包。在一个示例中,取回组件1208可以取回1210第一应用包1112、第一资源包1116和第三资源包1120,这是因为这样的包对应于适用性情境1206。通过这种方式,客户端设备1202可以使用所述选择性地下载的包来安装所述绘画应用。
通过图13的示例性方法1300图示出了对客户端设备上的应用的包(比如资源包和/或应用包)内的资源进行索引的一个实施例。在1302处,所述方法开始。在一个示例中,客户端设备可能已经选择性地取回了与应用相关联的应用包以及一个或更多资源包。在一个示例中,可以验证应用包的第一应用包签名(例如对于应用包的应用开发者的标识和/或对于应用包未被修改过的验证),和/或可以验证所述一个或更多资源包的资源签名(例如对于资源包的开发者的标识和/或对于资源包未被修改过的验证)。由于所述一个或更多资源包可能已被单独地下载和/或存储在客户端设备上,因此可能有利的是跟踪这样的资源包以供应用在运行时间期间利用。相应地,在1304处,例如可以在客户端设备上标识出第一资源包和第二资源包。第一资源包可以包括被用来提供用于应用的第一可选用户体验功能的第一补充数据(例如高分辨率图标资源包内的一个或更多高分辨率图标)。第二资源包可以包括被用来提供用于应用的第二可选用户体验功能的第二补充数据(例如针对多媒体API版本11的特征集合内的一项或更多项多媒体特征资源)。第一资源包可以包括描述第一资源数据(例如对于第一资源包包括所述一个或更多高分辨率图标的标识)和/或第一资源适用性数据(例如对于所述高分辨率图标数据在能够显示高分辨率图标数据的客户端设备上执行时适用于所述应用的标识)的第一资源索引。第二资源包可以包括描述第二资源数据(例如对于一项或更多项多媒体特征资源的描述)和/或第一资源适用性数据(例如对于当客户端设备安装有多媒体API版本11时可以使用所述特征集合的标识)的第二资源索引。
在一个示例中,资源包可以包括用于应用的一个资源子集(例如加拿大英语资源包可以包括比如Colour和Favourite之类的少数加拿大文字串,而中性或美国英语资源包则包括用于其他单词的多个文字串)。在一个示例中,单一资源包可以包括一项单独资源的几个变型(例如德语图像的高对比度版本、德语图像的低对比度版本等等)。
在1306处,可以把针对第一资源包的第一资源索引与针对第二资源包的第二资源包合并,以便创建合并的资源索引。应当认识到,合并的资源索引通常(而不总是或排他性地)是客户端一侧,而捆绑清单则通常(而不总是或排他性地)是服务器或开发者一侧。此外,合并的资源索引通常(而不总是)被用来确定在应用的执行期间可以使用可用的(例如本地的)资源包内的哪些单独的资源,而捆绑清单则通常(而不总是)被用来确定将把哪一个(哪些)应用包和/或哪一个(哪些)资源包下载到客户端设备。在一个示例中,可以把针对与应用相关联的资源包的多项资源索引合并到合并的资源索引中,从而使得合并的资源索引可以描述在执行应用时可以被加载的资源包内的各项单独的资源(例如在合并的资源索引内可以实施多维查找以便标识出用于应用的执行的资源集合,比如文字串、图像、图标等等)。举例来说,可以从应用市场取回第三资源包。第三资源包可以包括被用来提供用于应用的第三可选用户体验功能的第三补充数据(例如德语资源包内的一个或更多德语字符串)。在一个示例中,在把第三资源包部署到客户端设备期间,可以把针对第三资源包的第三资源索引合并到合并的资源索引中。在另一个示例中,可以在应用的初始执行期间把第三资源索引合并到合并的资源索引中。在一个示例中,合并的资源索引可以包括针对资源包内的资源的一项或更多项引用。在另一个示例中,可以在用于应用的应用包内创建对合并的资源索引的参考。应用包可以包括用于应用的执行的应用代码,从而使得所述引用可以被用来在应用的执行期间访问合并的资源索引,从而使得可以选择性地使用来自一个或更多资源包的各项单独的资源。
在一个示例中,可以标识出与应用相关联的应用包。应用包可以包括被配置用于应用的执行的应用代码。可以把针对应用包的资源索引(其例如描述由应用包提供的一项或更多项资源)合并到合并的索引中。
在1308处,可以利用合并的资源索引来选择性地使用来自一个或更多包(比如资源包和/或应用包)的资源以用于应用的执行(例如高分辨率欢迎屏幕图像资源、德语欢迎文字串等等)。在一个示例中,响应于利用应用包在运行时间状态下执行应用,可以对合并的资源索引进行评估,以便标识出被用来提供用于应用的可选用户体验功能的资源集合。通过这种方式,可以调用应用以便利用资源包集合和/或其中的(例如和/或应用包内的)一项或更多项资源。在利用合并的资源索引的一个示例中,可以在合并的资源索引内实施多维查找,以便标识出可以被包括在一个或更多资源包内的适当的资源集合。举例来说,合并的资源索引可以包括语言维度、分辨率维度、屏幕尺度维度、视觉质量维度、多媒体API维度、补充功能维度和/或可以被评估以便标识出可能与在客户端设备上执行应用相关的资源的多种其他维度(例如法语文字串资源和德语文字串资源可能是可用的,并且由于客户端设备的当前用户优选法语和/或客户端设备当前处在法国,因此可以选择法语文字串资源而不是德语文字串资源)。在一个示例中,所述资源集合可以跨越用于应用的所有或者少于所有的可用资源包(例如所述资源集合可以基于所述资源集合与客户端设备和/或用户相关而被包括在通过合并的资源索引标识出的资源包的一个子集内,比如与客户端设备的显示质量用户体验和/或用户的语言的对应性在某个阈值对应性以上的资源)。在1310处,所述方法结束。
在对客户端设备上的应用的资源进行索引的一些实施例中,可以在客户端设备上标识出资源包和应用包。资源包可以包括被用来提供用于应用的可选用户体验功能的补充数据。应用包可以包括被配置用于应用的执行的应用代码(例如应用二进制文件)。可以把用于资源包的第一资源索引(其例如描述资源包内的各项单独的资源)与用于应用包的第二资源包(其例如描述应用包内的各项单独的资源)合并,以便创建合并的资源索引。合并的资源索引可以被利用来选择性地将资源包和/或应用包内的一项或更多资源用于应用的执行。
图14图示出了用于对客户端设备1402上的应用的包(比如资源包和/或应用包)内的资源进行索引的系统1400的一个示例。客户端设备1402可以包括用于德语的第一资源包1404(例如一项或更多项德语字符串资源),用于法语的第二资源包1406(例如一项或更多项法语字符串资源),和/或其他资源包,比如资源包(N)1408。系统1400可以包括索引组件1416。索引组件1416可以被配置成标识出客户端设备1402上的这样的资源包。索引组件1416可以被配置成把描述资源包内的各项单独的资源的资源索引合并到合并的资源索引1418中。举例来说,第一资源索引1410、第二资源索引1412和/或其他资源索引(比如资源索引(N)1414)可以被合并到合并的资源索引1418中。通过这种方式,合并的资源索引1418可以描述可供应用利用的资源包内的各项单独的资源。举例来说,合并的资源索引可以包括针对第一资源包1404内的德语字符串资源的第一引用1420,针对第二资源包内的法语字符串资源的第二引用1422,和/或针对资源包内的其他资源的其他引用(例如针对第三资源包内的中等分辨率图像资源的引用1424,针对第四资源包内的高分辨率图像资源的引用1426,针对第五资源包内的低分辨率图标资源的引用1428,针对第六资源包内的高分辨率图标A的引用1430;针对第六资源包内的高分辨率图标B的引用1432;和/或针对第六资源包内的高分辨率图标C的引用1434)。在一个示例中,索引组件1416可以在用于应用的应用包1416内创建引用。通过这种方式,在利用应用包1416执行应用期间,所述引用可以被用来访问合并的资源索引1418,以便标识出(例如利用多维查找,其中维度对应于比如语言或显示质量之类的各项用户体验功能)供所述应用使用的一项或更多项资源。
图15图示出了用于在应用1506的执行期间利用合并的索引1418的系统1500的一个示例。系统1500可以包括资源利用组件1502。资源利用组件1502可以被配置成检测正在利用应用包在运行时间状态下执行应用1506。响应于应用1506正被执行,资源利用组件1502可以对合并的资源索引1418(例如图14的合并的资源索引1418)进行评估,以便标识出可以被用来提供用于应用的可选用户体验功能的资源集合。举例来说,可以在合并的资源索引1418内实施对应于语言维度、分辨率维度、图标分辨率维度和/或其他维度的多维查找。举例来说,所述资源集合可以包括用于德语的第一资源包内的德语字符串资源(例如基于当前用户所说的语言),用于高分辨率的第四资源包内的高分辨率图像资源(例如基于客户端设备1420的屏幕类型),以及用于高分辨率图标的第六资源包内的高分辨率图标资源(例如基于客户端设备1420的图形卡)。通过这种方式,可以取回1504(例如按需取回)德语字符串资源、高分辨率图像资源以及高分辨率图标资源以供应用1506利用。
通过图16的示例性方法1600图示出了通过游戏捆绑包来分发游戏的一个实施例。在1602处,所述方法开始。在1604处,可以生成用于游戏的游戏捆绑包。游戏捆绑包可以包括一个或更多核心游戏包(例如可以被执行来玩游戏的核心体验的可执行二进制文件)。在一个示例中,游戏捆绑包可以包括第一核心游戏包,其包括被配置成在第一计算环境(例如第一处理器类型、特定操作系统等等)上执行的游戏代码。在另一个示例中,游戏捆绑包可以包括第二核心游戏包,其包括被配置成在第二计算环境(例如第二处理器类型、移动操作系统等等)上执行的游戏代码。
游戏捆绑包可以包括提供用于游戏的可选用户体验功能的一个或更多资源游戏包。在一个示例中,游戏捆绑包可以包括第一资源游戏包,其包括被用来提供用于游戏的第一可选用户体验功能的第一补充知晓硬件数据。举例来说,第一补充知晓硬件数据可以对应于第一显示质量用户体验(例如第一补充知晓硬件数据可以包括纹理图像、地形数据、角色几何结构和/或相对高的显示质量下的游戏视觉化数据,其可以受到比如游戏图形处理单元之类的具有图形能力的硬件或者比如DirectX®之类的多媒体API的游戏特征集合的支持)。在另一个示例中,游戏捆绑包可以包括第二资源游戏包,其包括被用来提供用于游戏的第二可选用户体验功能的第二补充知晓硬件数据。举例来说,第二补充知晓硬件数据可以对应于第二显示质量用户体验(例如第二补充知晓硬件数据可以包括纹理图像、地形数据、角色几何结构和/或相对低的显示质量下的游戏视觉化数据,其可以受到比如平板图形处理单元之类的移动设备硬件或者比如DirectX®之类的多媒体API的移动特征集合的支持)。在一个示例中,(例如在单一数字签名操作期间)可以利用数字签名证书对游戏捆绑包、一个或更多核心游戏包和/或一个或更多资源游戏包进行数字签名,从而使得所述包可以共享一个签名属性集合(例如数字签名证书所有者、授权机构的连锁认证、密钥使用、签名验证日期、签名加密强度、签名时间戳等等),这可以允许客户端设备有效地验证包而不管所述包是否被选择性地和/或单独地下载。
在一个示例中,可以接收针对游戏捆绑包的游戏捆绑更新(例如资源包的添加、移除或修改)。游戏捆绑更新可以包括新的资源游戏包以供包括在游戏捆绑包内。游戏捆绑包可以被更新以包括新的资源游戏包。在其中通过应用市场认证过程来对游戏捆绑包进行认证的一个示例中,可以仅对新的资源游戏包进行认证,而不必对整个游戏捆绑包进行重新认证。
在1606处,所述一个或更多核心游戏包和/或一个或更多资源游戏包可以被暴露用于游戏的选择性下载。在一个示例中,可以接收来自客户端设备的游戏捆绑获取请求。游戏捆绑获取请求可以指定第一核心游戏包以及资源游戏包的一个子集(例如游戏捆绑包内的所述一个更多资源游戏包当中的至少一些但是少于全部的资源游戏包)。通过这种方式,可以把第一核心游戏包和所述资源游戏包的子集选择性地提供到客户端设备以用于游戏的安装。在1608处,所述方法结束。
通过图17的示例性方法1700图示出了通过游戏捆绑包来安装游戏的一个实施例。在1702处,所述方法开始。在1704处,可以标识出通过应用市场提供的用于游戏的游戏捆绑包。游戏捆绑包可以包括一个或更多核心游戏包和/或一个或更多资源游戏包。所述一个或更多资源游戏包可以被暴露作为提供用于游戏的可选用户体验功能的可选下载(例如对于游戏板的支持、对于多媒体API版本的支持、高分辨率纹理、对于聊天客户端的支持,对于游戏头戴式耳机或其他外设的支持等等)。在1706处,可以向应用市场发送捆绑获取请求以便访问游戏捆绑包。捆绑获取请求可以指定第一核心游戏包以及资源游戏包的一个子集(例如所述资源游戏包的子集可以包括游戏捆绑包内的一个或更多资源游戏包当中的至少一些但是少于全部的资源游戏包)。在一个示例中,例如可以基于客户端设备的硬件资源和/或多媒体功能来标识出所述资源游戏包的子集。在1708处,可以获得第一应用包和所述资源游戏包的子集以用于将游戏安装在客户端设备上。在1710处,所述方法结束。
图18图示出了用于通过游戏捆绑包1804来分发游戏的系统1800的一个示例。在一个示例中,游戏捆绑包1804与驾驶游戏应用相关联。游戏捆绑组件1802可以被配置成生成游戏捆绑包以包括一个或更多核心游戏包和/或一个或更多资源游戏包。游戏捆绑包1804可以包括第一核心游戏包1806和第二核心游戏包1808,其中第一核心游戏包1806包括被配置成在第一处理器类型上执行的游戏代码,第二核心游戏包1808包括被配置成在第二处理器类型上执行的游戏代码。游戏捆绑包1804可以包括一个或更多资源游戏包,其包括被用来提供用于游戏的可选用户体验功能的补充知晓硬件数据(例如用于高纹理图像的第一资源游戏包1810,用于低分辨率纹理图像的第二资源游戏包1812,用于稀疏地形数据的第三资源游戏包1814,用于稠密地形数据的第四资源游戏包1816,用于复杂几何结构的第五资源游戏包1818,和/或其他资源游戏包)。游戏捆绑包可以被暴露用于游戏的选择性下载(例如一个或更多资源游戏包可以被暴露作为用于游戏的可选下载)。
系统1800可以包括分发组件1820。分发组件1820可以被配置成从比如平板设备之类的客户端设备1826接收针对游戏捆绑包1804的捆绑获取请求1822。捆绑获取请求1822可以基于客户端设备1826的硬件资源1828(例如游戏外设、图形卡等等)和/或多媒体功能1830(例如多媒体API版本、显示器驱动器等等)来指定第二核心游戏包1808、第二资源游戏包1812和第三资源游戏包1814。举例来说,客户端设备1826可以包括第二处理器类型、相对少量的存储空间和/或相对低的分辨率显示功能和硬件。通过这种方式,客户端设备1826可以请求低纹理图像和稀疏地形数据,以便减少与获得和部署游戏相关联的下载带宽、存储空间和/或计算资源(例如没有不必要地下载不受支持的高分辨率视觉数据)。通过这种方式,分发组件1820可以向客户端设备1826提供1824第二核心游戏包1808、第二资源游戏包1812和/或第三资源游戏包1814以用于游戏的安装。
再一个实施例涉及计算机可读介质,其包括被配置成实施这里所给出的其中一种或更多种技术的处理器可执行指令。在图19中图示出了通过这些方式设想到的计算机可读介质或计算机可读设备的一个示例实施例,其中实施方式1900包括其上编码有计算机可读数据1906的计算机可读介质1908,比如CD-R、DVD-R、闪速驱动器、硬盘驱动器的盘片等等。该计算机可读数据1906(比如包括0或1中的至少一个的二进制数据)进而包括被配置成根据这里所阐述的其中一项或更多项原理来操作的计算机指令1904的集合。在一些实施例中,例如,处理器可执行计算机指令1904被配置成实施方法1902,比如图1的示例性方法100的至少一部分,图5的示例性方法500的至少一部分,图10的示例性方法1000的至少一部分,图13的示例性方法1300的至少一部分,图16的示例性方法1600的至少一部分,和/或图17的示例性方法1700的至少一部分。在一些实施例中,例如,处理器可执行指令1904被配置成实施一种系统,比如图2的示例性系统200的至少一部分,图4的示例性系统400的至少一部分,图6的示例性系统600的至少一部分,图7的示例性系统700的至少一部分,图8的示例性系统800的至少一部分,图9的示例性系统900的至少一部分,图11的示例性系统1100的至少一部分,图12的示例性系统1200的至少一部分,图14的示例性系统1400的至少一部分,图15的示例性系统1500的至少一部分,和/或图18的示例性系统1800的至少一部分。本领域普通技术人员设想到被配置成根据这里给出的技术操作的许多这样的计算机可读介质。
虽然通过特定于结构特征和/或方法动作的语言描述了所述主题内容,但是应当理解的是,在所附权利要求书中限定的主题内容不一定受限于前面所描述的特定特征或动作。相反,前面所描述的特定特征和动作是作为实施权利要求的示例形式而公开的。
在本申请中使用的术语“组件”、“模块”、“系统”、“接口”等等通常意图指代与计算机有关的实体,或者是硬件、硬件与软件的组合、软件或者是执行中的软件。举例来说,组件可以是但不限于运行在处理器上的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,运行在控制器上的应用和控制器都可以是一个组件。一个或更多组件可以驻留在一个进程和/或执行线程内,并且一个组件可以局部化在一台计算机上和/或分布在两台或更多台计算机之间。
此外,所要求保护的主题内容可以被实施成使用标准编程和/或工程技术来产生软件、固件、硬件或其任意组合以便控制计算机实施所公开的主题内容的方法、装置、或者制造品。这里使用的术语“制造品”意图涵盖可以从任何计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到,在不背离所要求保护的主题内容的范围或精神的情况下,可以对这种配置做出许多修改。
图20和后面的讨论提供了对于用以实施这里所阐述的一项或更多项规定的实施例的适当计算环境的简要的一般性描述。图20的操作环境仅仅是适当的操作环境的一个示例,而不意图暗示关于操作环境的使用或功能的范围的任何限制。示例的计算设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费电子装置、小型计算机、大型计算机、包括任何前述系统或设备的分布式计算环境等等。
虽然并无要求,但是在由一个或更多计算设备执行的“计算机可读指令”的一般情境中描述实施例。计算机可读指令可以经由计算机可读介质(后面讨论)来分发。计算机可读指令可以被实施成实施特定任务或者实施特定抽象数据类型的程序模块,比如函数、对象、应用编程接口(API)、数据结构等等。通常来说,在各种环境中可以按照希望组合或分配计算机可读指令的功能。
图20图示出了包括被配置成实施这里提供的一个或更多实施例的计算设备2012的系统2000的一个示例。在一种配置中,计算设备2012包括至少一个处理单元2016和存储器2018。取决于计算设备的确切配置和类型,存储器2018可以是易失性的(例如,比如RAM)、非易失性的(例如,比如ROM、闪存等等)或者二者的某种组合。这种配置在图20中由虚线2014图示出。
在其他实施例中,设备2012可以包括附加的特征和/或功能。举例来说,设备2012还可以包括附加的存储装置(例如可移除的和/或不可移除的),其中包括但不限于磁性存储装置、光学存储装置等等。这样的附加存储装置在图20中由存储装置2020图示出。在一个实施例中,用以实施这里提供的一个或更多实施例的计算机可读指令可以处于存储装置2020中。存储装置2020还可以存储用以实施操作系统、应用程序等等的其他计算机可读指令。计算机可读指令可以被加载到存储器2018中以供例如处理单元2016执行。
这里使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括通过用于存储比如计算机可读指令或其他数据之类的信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除的介质。存储器2018和存储装置2020是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储所期望的信息并且可以由设备2012访问的任何其他介质。任何这样的计算机存储介质都可以是设备2012的一部分。
设备2012还可以包括允许设备2012与其他设备通信的(多个)通信连接2026。(多个)通信连接2026可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频传送器/接收器、红外端口、USB连接或者用于将计算设备2012连接到其他计算设备的其他接口。(多个)通信连接2026可以包括有线连接或无线连接。(多个)通信连接2026可以传送和/或接收通信介质。
术语“计算机可读介质”可以包括通信介质。通信介质通常在比如载波或其他传输机制之类的“已调制的数据信号”中具体实现计算机可读指令或其他数据,并且包括任何信息递送介质。术语“已调制的数据信号”可以包括其一项或更多项特性被按照这样的方式设定或改变的信号:在信号中对信息进行编码。
设备2012可以包括(多个)输入设备2024,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外摄影机、视频输入设备和/或任何其他输入设备。在设备2012中还可以包括(多个)输出设备2022,比如一个或更多显示器、扬声器、打印机和/或任何其他输出设备。(多个)输入设备2024和(多个)输出设备2022可以经由有线连接、无线连接或其任意组合连接到设备2012。在一个实施例中,来自另一个计算设备的输入设备或输出设备可以被用作计算设备2012的(多个)输入设备2024或(多个)输出设备2022。
计算设备2012的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如PCI Express)、通用串行总线(USB)、firewire(IEEE 1394)、光学总线结构等等。在另一个实施例中,计算设备2012的组件可以通过网络互连。举例来说,存储器2018可以包括位于通过网络互连的不同物理位置处的多个物理存储器单元。
本领域技术人员将认识到,被利用来存储计算机可读指令的存储设备可以分布在网络上。举例来说,可经由网络2028访问的计算设备2030可以存储用以实施这里所提供的一个或更多实施例的计算机可读指令。计算设备2012可以访问计算设备2030,并且下载所述计算机可读指令的一部分或全部以供执行。替换地,计算设备2012可以按照需要下载计算机可读指令片段,或者一些指令可以在计算设备2012处执行,并且一些指令可以在计算设备2030处执行。
这里提供了实施例的各种操作。在一个实施例中,所描述的其中一项或更多项操作可以构成存储在一个或更多计算机可读介质上的计算机可读指令,如果由计算设备执行,则所述计算机可读指令将使得所述计算设备实施所描述的操作。据以描述一些或所有操作的顺序不应被解释成暗示这些操作一定依赖于顺序。受益于本说明书的本领域技术人员将认识到替换的排序。此外,应当理解的是,并非所有操作都必然存在于这里提供的每一个实施例中。
此外,除非另行指定,否则“第一”、“第二”等等不意图暗示时间方面、空间方面、排序等等。相反,这样的术语仅仅被用作用于特征、元素、项目等等的标识符、名称等等。举例来说,第一对象和第二对象通常对应于对象A和对象B,或者两个不同的或两个完全相同的对象,或者同一个对象。
此外,“示例性”在这里被用于意味着充当一个示例、实例或说明等等,并且不一定意味着是有利的。这里所使用的“或者”意图意味着包含性的“或者”而不是排他性的“或者”。此外,除非另行指定或者从上下文中清楚可见是针对单数形式,否则在本申请中使用的“一个”和“一项”通常被解释成意味着“一个或更多个”。此外,A和B中的至少一个等等通常意味着A或B或者A和B二者。此外,就在具体实施方式或权利要求书中使用“包括”、“具有”、“拥有”、“带有”和/或其变型而言,这样的术语意图以类似于术语“包括”的方式进行包含。
此外,虽然关于一种或更多种实施方式示出并描述了本公开内容,但是基于阅读并且理解本说明书和附图,本领域其他技术人员将会想到等效的改动和修改。本公开内容包括所有这样的修改和改动,并且仅由所附权利要求书的范围限制。特别关于由前面描述的组件(例如元件、资源等等)所实施的各项功能,被用来描述这样的组件的术语意图对应于(除非另行表明)实施所描述的组件的指定功能的任何组件(例如其在功能上等效),尽管其在结构上并不等效于在本公开内容的这里说明的示例性实现方式中实施所述功能的所公开的结构。此外,虽然本公开内容的某一特定特征可以关于几种实施方式当中的仅仅一种进行公开,但是这样的特征可以与其他实施方式的一项或更多项其他特征组合,正如可能对于任何给定或特定的应用是所期望并且有利的那样。
Claims (10)
1.一种用于选择性地取回与应用相关联的捆绑包的某些部分的方法,其包括:
标识出与应用相关联的捆绑包以用于安装,所述捆绑包包括一个或更多应用包以及一个资源包集合;
确定针对应用在客户端设备上执行的适用性情境;
基于第一应用包包括对应于由适用性情境指定的计算环境情境的应用代码,选择性地取回所述一个或更多应用包当中的第一应用包;以及
响应于所述适用性情境对应于所述资源包集合内的第一资源包,从捆绑包中选择性地取回第一资源包,并且避免取回捆绑包内的不对应于适用性情境的资源包。
2.如权利要求1的方法,选择性地取回第一应用包和选择性地取回第一资源包包括:
从应用市场下载第一应用包和第一资源包。
3.如权利要求1的方法,确定适用性情境包括:
把第一用户使用来与客户端设备进行交互的语言标识成适用性情境。
4.如权利要求1的方法,确定适用性情境包括:
把针对客户端设备的视觉质量情境标识成适用性情境。
5.如权利要求1的方法,确定适用性情境包括以下各项中的至少一项:
对客户端设备进行评估以便隐含地标识出适用性情境;
把针对客户端设备的用户指定的设定确定成适用性情境;或者
对与客户端设备相关联的信息应用模糊匹配逻辑,以便生成关于客户端设备或用户中的至少一个的假设以作为适用性情境。
6. 如权利要求1的方法,其包括:
标识针对捆绑包的更新,所述更新对应于向捆绑包内的资源包集合添加新的资源包;以及
响应于适用性情境对应于新的资源包,从捆绑包中选择性地取回所述新的资源包。
7.一种用于选择性地取回与应用相关联的捆绑包的某些部分的系统,其包括:
适用性组件,其被配置成:
标识出与应用相关联的捆绑包以用于安装,所述捆绑包包括一个或更多应用包以及一个资源包集合;以及
确定针对应用在客户端设备上执行的适用性情境;以及
取回组件,其被配置成:
基于第一应用包包括对应于由适用性情境指定的计算环境情境的应用代码,选择性地取回所述一个或更多应用包当中的第一应用包;以及
响应于适用性情境对应于所述资源包集合内的第一资源包,从捆绑包中选择性地取回第一资源包,并且避免取回捆绑包内的不对应于适用性情境的资源包。
8. 如权利要求7的系统,所述适用性组件被配置成:
取回描述所述一个或更多应用包以及资源包集合的捆绑清单;以及
在捆绑清单和适用性情境上实施多维模糊逻辑匹配技术以便标识出用于取回的捆绑包的子集,所述子集包括第一应用包和第一资源包。
9.如权利要求7的系统,所述适用性组件被配置成:
对客户端设备进行评估以便隐含地标识出适用性情境;
把针对客户端设备的用户指定的设定确定成适用性情境;或者
对与客户端设备相关联的信息应用模糊匹配逻辑,以便生成关于客户端设备或用户中的至少一个的假设以作为适用性情境。
10.如权利要求8的系统,其包括:
安装组件,其被配置成:
利用所述捆绑包的子集将应用安装在客户端设备上。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/906183 | 2013-05-30 | ||
US13/906,183 US20140359606A1 (en) | 2013-05-30 | 2013-05-30 | Bundle package retrieving |
PCT/US2013/061084 WO2014193463A1 (en) | 2013-05-30 | 2013-09-21 | Bundle package retrieving |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105453078A true CN105453078A (zh) | 2016-03-30 |
Family
ID=49354897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380077089.5A Pending CN105453078A (zh) | 2013-05-30 | 2013-09-21 | 捆绑包取回 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140359606A1 (zh) |
EP (1) | EP3005160B1 (zh) |
CN (1) | CN105453078A (zh) |
WO (1) | WO2014193463A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124446A (zh) * | 2017-04-01 | 2017-09-01 | 北京五八信息技术有限公司 | 应用程序下载方法、服务器及终端 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495570B2 (en) * | 2010-12-23 | 2013-07-23 | Microsoft Corporation | Resource deployment based on conditions |
US9003507B2 (en) * | 2012-03-23 | 2015-04-07 | Cloudpath Networks, Inc. | System and method for providing a certificate to a third party request |
CN103841155B (zh) * | 2012-11-26 | 2015-12-23 | 腾讯科技(深圳)有限公司 | 一种软件下载方法和软件下载装置 |
US9766870B2 (en) * | 2013-05-30 | 2017-09-19 | Microsoft Technology Licensing, Llc | Bundle package generation |
US9323514B2 (en) | 2013-05-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Resource package indexing |
CN104050409B (zh) * | 2014-06-30 | 2016-10-05 | 安一恒通(北京)科技有限公司 | 一种识别被捆绑软件的方法及其装置 |
US9467492B2 (en) * | 2014-08-19 | 2016-10-11 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content stream |
EP3002678A1 (en) * | 2014-10-01 | 2016-04-06 | OCE-Technologies B.V. | Device with a multi-lingual user interface and method for updating the user interface |
US9311811B1 (en) | 2014-10-08 | 2016-04-12 | Google Inc. | Alarm profile for a fabric network |
US9785424B2 (en) * | 2015-06-05 | 2017-10-10 | Apple Inc. | Capability attributes based application packaging |
CN106445572A (zh) * | 2015-08-07 | 2017-02-22 | 中兴通讯股份有限公司 | 一种应用处理方法和移动终端 |
US10567302B2 (en) * | 2016-06-01 | 2020-02-18 | At&T Intellectual Property I, L.P. | Enterprise business mobile dashboard |
US9947069B2 (en) | 2016-06-10 | 2018-04-17 | Apple Inc. | Providing variants of digital assets based on device-specific capabilities |
US11262995B2 (en) * | 2018-03-28 | 2022-03-01 | Huawei Technologies Co., Ltd. | Method and apparatus for downloading installation-free application |
US11275572B2 (en) * | 2020-01-30 | 2022-03-15 | Slack Technologies, Llc | Systems and methods for providing a packaged plurality of application data within a group-based communication system |
US11956232B2 (en) * | 2021-03-19 | 2024-04-09 | Okta, Inc. | Integration packaging for a multi-tenant computing environment |
US12073209B2 (en) * | 2022-03-29 | 2024-08-27 | Bank Of America Corporation | System for enhanced component-level detection in software applications within a computing environment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127179A1 (en) * | 2006-09-25 | 2008-05-29 | Barrie Jon Moss | System and apparatus for deployment of application and content to different platforms |
CN101650663A (zh) * | 2009-08-27 | 2010-02-17 | 中兴通讯股份有限公司 | 一种数据库系统及其升级的方法 |
CN101819577A (zh) * | 2009-01-08 | 2010-09-01 | 国际商业机器公司 | 维护文件系统客户端目录高速缓存的方法、系统和装置 |
CN102780717A (zh) * | 2011-05-10 | 2012-11-14 | 北京磊友信息科技有限公司 | 自适应文件格式匹配的方法及服务器 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5951639A (en) * | 1996-02-14 | 1999-09-14 | Powertv, Inc. | Multicast downloading of software and data modules and their compatibility requirements |
US6282711B1 (en) * | 1999-08-10 | 2001-08-28 | Hewlett-Packard Company | Method for more efficiently installing software components from a remote server source |
US20030018964A1 (en) * | 2001-07-19 | 2003-01-23 | International Business Machines Corporation | Object model and framework for installation of software packages using a distributed directory |
US7191435B2 (en) * | 2002-06-07 | 2007-03-13 | Sun Microsystems, Inc. | Method and system for optimizing software upgrades |
US7530065B1 (en) * | 2004-08-13 | 2009-05-05 | Apple Inc. | Mechanism for determining applicability of software packages for installation |
EP2003852B1 (en) * | 2007-06-15 | 2015-11-04 | Vodafone GmbH | Method for improving output of data from a remote gateway at a mobile device and download management unit |
US8893108B1 (en) * | 2007-10-31 | 2014-11-18 | Intuit Inc. | Method and system for context-based software updates |
CN101763269A (zh) * | 2010-01-27 | 2010-06-30 | 中兴通讯股份有限公司 | 一种软件安装包的制作方法 |
US8396759B2 (en) * | 2010-06-18 | 2013-03-12 | Google Inc. | Context-influenced application recommendations |
US9110743B2 (en) * | 2010-12-21 | 2015-08-18 | Microsoft Technology Licensing, Llc | Extensible system action for sharing while remaining in context |
US8495570B2 (en) * | 2010-12-23 | 2013-07-23 | Microsoft Corporation | Resource deployment based on conditions |
WO2012151286A1 (en) * | 2011-05-04 | 2012-11-08 | Apperian, Inc. | Processing, modification, distribution of installation packages |
US8813060B2 (en) * | 2011-06-17 | 2014-08-19 | Microsoft Corporation | Context aware application model for connected devices |
US9189220B2 (en) * | 2012-07-02 | 2015-11-17 | Amazon Technologies, Inc. | Evaluating application compatibility |
CN111475170B (zh) * | 2012-12-12 | 2024-02-02 | 华为技术有限公司 | 多屏应用启用和分发服务 |
-
2013
- 2013-05-30 US US13/906,183 patent/US20140359606A1/en not_active Abandoned
- 2013-09-21 CN CN201380077089.5A patent/CN105453078A/zh active Pending
- 2013-09-21 WO PCT/US2013/061084 patent/WO2014193463A1/en active Application Filing
- 2013-09-21 EP EP13776612.7A patent/EP3005160B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127179A1 (en) * | 2006-09-25 | 2008-05-29 | Barrie Jon Moss | System and apparatus for deployment of application and content to different platforms |
CN101819577A (zh) * | 2009-01-08 | 2010-09-01 | 国际商业机器公司 | 维护文件系统客户端目录高速缓存的方法、系统和装置 |
CN101650663A (zh) * | 2009-08-27 | 2010-02-17 | 中兴通讯股份有限公司 | 一种数据库系统及其升级的方法 |
CN102780717A (zh) * | 2011-05-10 | 2012-11-14 | 北京磊友信息科技有限公司 | 自适应文件格式匹配的方法及服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124446A (zh) * | 2017-04-01 | 2017-09-01 | 北京五八信息技术有限公司 | 应用程序下载方法、服务器及终端 |
Also Published As
Publication number | Publication date |
---|---|
EP3005160A4 (en) | 2016-12-28 |
EP3005160A1 (en) | 2016-04-13 |
EP3005160B1 (en) | 2019-07-10 |
WO2014193463A1 (en) | 2014-12-04 |
US20140359606A1 (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453078A (zh) | 捆绑包取回 | |
CN105378740A (zh) | 捆绑包签名 | |
US10015282B2 (en) | Context-based selective downloading of application resources | |
CN105378662A (zh) | 捆绑包生成 | |
CN105378661A (zh) | 资源包索引 | |
CN104598257A (zh) | 远程应用程序运行的方法和装置 | |
CN113761412B (zh) | 应用页面的显示方法、装置、电子设备、介质及应用系统 | |
CN111357241A (zh) | 使用自动化通用连接器封装将云应用程序集成到云服务代理平台中的系统和方法 | |
CN110959165A (zh) | 用于自动验证云服务代理系统中的要约的功能的技术 | |
CN103885775A (zh) | 驱动程序文件的获取方法和装置 | |
CN105653933A (zh) | 插件加载方法及装置 | |
CN104572084A (zh) | 卡片业务中用户界面生成及数据下发方法、装置 | |
CN113110829A (zh) | 多ui组件库数据处理方法及装置 | |
CN107423395A (zh) | 导航数据处理系统 | |
US20210042148A1 (en) | Dynamic insertion of variablized secrets in a pipeline integration system | |
CN110647327A (zh) | 基于卡片的用户界面动态控制的方法和装置 | |
CN114611144A (zh) | 权限控制方法、装置、设备、介质及程序产品 | |
CN113656041A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113821430A (zh) | 一种多服务测试方法和装置 | |
EP4428675A1 (en) | Cloud technology-based graphic program online development method and system, and related device | |
CN116775162A (zh) | 一种图像处理方法和装置 | |
KR20240003882A (ko) | 데스크탑 서비스 제공방법 및 이를 이용하는 운영서버 | |
CN114172727A (zh) | 信息处理方法、信息处理装置、电子设备和存储介质 | |
CN113094050A (zh) | 基于业务架构的前端界面生成方法、装置、系统及介质 | |
CN114157917A (zh) | 视频剪辑方法、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160330 |