CN105378661A - 资源包索引 - Google Patents
资源包索引 Download PDFInfo
- Publication number
- CN105378661A CN105378661A CN201380077092.7A CN201380077092A CN105378661A CN 105378661 A CN105378661 A CN 105378661A CN 201380077092 A CN201380077092 A CN 201380077092A CN 105378661 A CN105378661 A CN 105378661A
- Authority
- CN
- China
- Prior art keywords
- resource
- bag
- application
- bundle
- client device
- 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.)
- Granted
Links
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
Abstract
提供了一种或多种技术和/或系统,用于生成捆绑包,对捆绑包进行数字签名,选择性地干扰捆绑包,和/或索引从捆绑包中检索的一个或多个资源包。也就是说,捆绑包(例如,应用或游戏捆绑包)包括一个或多个应用包,该应用包包括被配置成在各种计算环境(例如,操作系统、处理器,等等)上执行的应用代码。捆绑包可以包括一个或多个资源包,该资源包包括用于提供用于应用的可选的用户体验功能性(例如,法语语言支持、高分辨率纹理、游戏垫支持等)的补充数据。这样,客户端设备可以选择性地下载可能相关的捆绑包的部分,其可以减轻下载带宽、存储空间、或另外用于获得捆绑包的不必要部分的资源(例如,平板设备可以仅下载低分辨率纹理)。
Description
背景技术
许多用户使用应用来执行多种活动(诸如检查电子邮件、玩视频游戏、分享照片、通过社交网络交互、银行业务和/或繁多的其它活动)。因为用户可以通过各种设备和/或计算环境执行这样的应用,所以应用开发者可以创建支持多个处理器、操作系统、语言、显示比例、分辨率、图形卡等的应用部署包。因此,应用部署包可以包括相对大量的数据,所有数据可能未被特定的设备或计算环境使用。例如,用户可以将绘图应用从应用市场下载到平板设备上。绘图应用可以包括可以很好地与平板设备协同工作的中等分辨率纹理,但也可以包括意图用于较小的智能电话的低分辨率纹理和意图用于个人计算机的高分辨率纹理。绘图应用可以包括对10种语言的支持。平板设备可以利用中等分辨率纹理和由用户使用的语言,但是可以不利用低分辨率纹理、高分辨率纹理和其它9种语言。绘图应用的这种未使用的特征可以在平板设备上下载、部署和执行绘图应用期间不必消耗下载带宽、存储空间和计算资源。
发明内容
提供本发明内容以便以简化的形式介绍下文在具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键因素或必要特征,也不旨在用于限制所要求保护的主题的范围。
其中,本文中提供了一种或多种系统和/或技术,用于生成用于应用的捆绑包;数字签名捆绑包;选择性地检索捆绑包的部分;对与应用相关联的资源包做索引;以及分布和安装用于游戏的游戏捆绑包。
在一些生成用于应用的捆绑包的实施例中,一个或多个应用包可以被标识以包括在用于应用的捆绑包内。第一应用包可以包括被配置成在诸如特定的计算机体系结构(例如,第一处理器体系结构、第二不同的处理器体系结构等)和/或特定的操作系统(例如,平板操作系统、台式操作系统、基于云的操作系统等)之类的第一计算环境上执行的第一应用代码(例如,可执行的二进制文件)。一个或多个资源包可以被标识以包括在捆绑包内。资源包可以包括用于应用的可选的用户体验功能性(例如,分辨率纹理数据、语言数据、诸如DirectX?之类的多媒体应用程序接口(API)版本数据、可以由现代资源技术(MRT)加载的区域有关的数据和/或可以用于促进定制用户体验的任何其它资源、数据等,等等)。例如,第一资源包可以包括用于提供用于应用的第一用户体验功能性的第一补充数据。可以生成捆绑包以包括所述一个或多个应用包和所述一个或多个资源包。这样,可以选择性地下载应用包和/或一个或多个资源包用于安装应用(例如,平板设备可以下载第一处理器体系结构应用包和中等分辨率纹理资源包)。
在一些数字签名捆绑包的实施例中,对与应用相关联的捆绑包执行第一数字签名操作。捆绑包包括第一应用包和第一资源包。在示例中,捆绑包包括一个或多个应用包和/或一个或多个资源包。可以执行数字签名操作(例如,使用单个数字签名证书作为单个签名操作执行)以对第一应用包、第一资源包和捆绑包进行数字签名。例如,第一应用包利用数字签名证书用第一应用包签名进行签名,第一资源包利用数字签名证书用第一资源包签名进行签名,以及捆绑包利用数字签名证书用捆绑包签名进行签名。因为数字签名操作使用相同的数字签名证书(例如,和/或通过单个签名操作)来对第一应用包、第一资源包和捆绑包进行签名,所以签名属性的集合可以被第一应用包签名、第一资源包签名和/或捆绑包签名(例如,数字签名证书所有者、机构的连锁认证(chaincertificationofauthority)、密钥用途、签名确认日期、加密强度、和/或时间戳)共享。这样,捆绑包和/或其部分可以被客户端设备选择性地和/或分开地下载,并且基于所共享的签名属性以有效的方式被客户端设备认证。
在一些选择性地检索与应用相关联的捆绑包的部分的实施例中,可以标识与用于安装的应用相关联的捆绑包。例如,捆绑包可以通过应用市场与可供下载的可适用的相片共享相关联。可以确定在客户端设备上执行的用于应用的适用性上下文。例如,适用性上下文可以指定分辨率、屏幕比例、感兴趣的语言集合、多媒体API特征集合、图形处理单元(GPU)、或用于客户端设备的其它用户体验上下文(例如,基于语言、硬件能力、显示能力等,用于讲德语的用户的智能电话的适用性上下文可以与用于讲英语的用户的台式机的适用性上下文不同)。可以基于包括对应于由适用性上下文指定的计算环境上下文(例如,处理器体系结构、操作系统类型等)的应用代码的第一应用包从捆绑包中选择性地检索到第一应用包。响应于捆绑包的资源包集合内的对应于第一资源包的适用性上下文,可以从捆绑包中选择性地检索到第一资源包(例如,可以针对智能电话检索到德语语言资源包)。这样,可以选择性地检索到对应于适用性上下文的一个或多个资源包,同时没有检索到与适用性上下文不对应的资源包(例如,可能无法针对智能电话检索到高分辨率游戏纹理,如果检索到,则其可以不必消耗下载带宽和/或需要存储不能被智能电话使用的应用的部分/特征)。
在一些在客户端设备上对用于应用的资源包进行索引的实施例中,在客户端设备上标识第一资源包和第二资源包。在示例中,可以已经针对应用选择性地和/或单独地下载第一资源包和第二资源包,并且因此可以最初被存储在客户端设备上,而没有指定可以如何使用第一资源包和第二资源来提供所定制的用于应用的用户体验的逻辑关系。第一资源包包括用于提供用于应用的第一可选的用户体验功能性的第一补充数据(例如,用于提供用于社交网络应用的德语语言用户接口体验的一个或多个德语文本串)。第二资源包包括用于提供用于应用的第二可选的用户体验功能性的第二补充数据(例如,用于提供用于社交网络应用的法语语言用户接口体验的一个或多个法语文本串)。
用于第一资源包的第一资源索引可以描述用于第一资源包的第一资源数据(例如,所述一个或多个德语语言串)和/或第一资源适用性数据(例如,使用德语语言数据为讲德语的用户显示文本)。用于第二资源包的第二资源索引可以描述用于第二资源包的第二资源数据(例如,一个或多个法语语言串)和/或第二资源适用性数据(例如,使用法语语言数据为讲法语的用户显示文本)。第一资源索引和第二资源索引可以被合并成合并资源索引。合并资源索引可以描述第一资源包和/或第二资源包内的诸如德语文本串和/或法语文本串之类的单独资源。可以评估合并资源索引以选择性地利用用于执行的应用的一个或多个资源。在示例中,在用于社交网络应用的应用包内可以创建对合并索引的引用。在使用应用包执行社交网络应用时,可以使用该引用来查询合并索引,以标识哪些资源是可用的和/或相关的以执行社交网络应用(例如,针对讲德语的当前用户的欢迎消息窗口,第一资源包内的德语欢迎消息文本串可以是相关的;当当前显示设置被设定为高对比度模式时,高对比度显示资源包内的高对比度用户接口元素可能是相关的,等等。)。
在一些经由游戏捆绑包分布游戏的实施例中,可以生成用于游戏的游戏捆绑包。游戏捆绑包可以包括一个或多个核心游戏包。第一核心游戏包包括被配置成在第一计算环境(例如,X86处理器)上执行的游戏代码(例如,可执行的二进制文件)。游戏捆绑包可以包括一个或多个资源游戏包。第一资源游戏包可以包括用于提供用于游戏的第一可选的用户体验功能性的第一补充硬件感知数据(例如,纹理图像、地形数据、字符几何形状和/或特定的显示品质的其它游戏可视化数据)。可以暴露所述一个或多个核心游戏包和/或所述一个或多个资源游戏包以供选择性下载和/或安装游戏。这样,客户端设备可以选择性地下载可以在客户端设备上提供合意的游戏体验的某些资源游戏包(例如,平板设备可以下载中等品质纹理以节省下载带宽和/或存储空间,而PC可以下载高品质纹理)。
为了达到前述和相关目的,以下描述和附图陈述某些说明性方面和实施方式。这些仅指示可以采用一个或多个方面的各种方式中的几种。在结合附图进行考虑时,本公开的其它方面、优点和新颖特征从以下详细描述中将变得显而易见。
附图说明
图1是图示了生成用于应用的捆绑包的示例性方法的流程图。
图2是图示了用于生成捆绑包的示例性系统的组件框图。
图3是促进资源包创建业务的示例的图示。
图4是图示了用于选择性地分布捆绑包的部分的示例性系统的组件框图。
图5是图示了对捆绑包进行数字签名的示例性方法的流程图。
图6是图示了用于利用提取技术对捆绑包进行签名的示例性系统的组件框图。
图7是图示了用于由新捆绑包创建已签名的捆绑包的示例性系统的组件框图。
图8是图示了用于就地对捆绑包内的包进行数字签名的示例性系统的组件框图。
图9是图示了用于分布已签名的捆绑包和/或其中的已签名的包的示例性系统的组件框图。
图10是图示了选择性地检索与应用相关联的捆绑包的部分的示例性方法的流程图。
图11是图示了用于选择性地检索与应用相关联的捆绑包的部分的示例性系统的组件框图。
图12是图示了用于选择性地检索与应用相关联的捆绑包的部分的示例性系统的组件框图。
图13是图示了在客户端设备上对用于应用的资源包进行索引的示例性方法的流程图。
图14是图示了用于在客户端设备上对用于应用的资源包进行索引的示例性系统的组件框图。
图15是图示了用于在执行应用期间利用合并索引的示例性系统的组件框图。
图16是图示了经由游戏捆绑包分布游戏的示例性方法的流程图。
图17是图示了经由游戏捆绑包安装游戏的示例性方法的流程图。
图18是图示了经由游戏捆绑包分布游戏的示例性系统的组件框图。
图19是示例性计算机可读介质的图示,其中可以包括被配置成体现本文中所陈述的提供事项(provision)中的一个或多个的处理器可执行指令。
图20图示了示例性计算环境,其中可以实现本文中所陈述的提供事项中的一个或多个。
具体实施方式
现在,参照附图对所要求保护的主题进行描述,其中,相同的附图标记在全文中通常用来指代相同的元件。在以下描述中,出于解释的目的,陈述了许多具体细节,以便提供对所要求保护的主题的理解。然而,明显的是,所要求保护的主题可以在没有这些具体细节的情况下实施。在其它实例中,结构和设备以框图形式进行示出以促进对所要求保护的主题进行描述。
如本文中所提供的,可以向终端用户机器选择性地提供诸如资源包、应用包等之类的软件组件,很少乃至没有重复,使得终端用户机器仅提供有由终端用户机器使用的软件组件,无需终端用户机器必须下载、存储和/或安装不必要的软件组件。例如,诸如客户端设备之类的终端用户机器可以包括广泛多种的软件和/或硬件特点(例如,平板可以包括处理器、操作系统、图形处理单元和/或与台式游戏设备不同的多种特点)。为了提供这样的客户端设备上的合意的体验,许多应用可以针对相应的客户端设备定制应用资产(例如,纹理、串、图像、用户接口元素和/或特定应用的其它软件组件)。不幸的是,因为开发者可能花费创建用于这样的大量多种客户端设备的分开的安装包的大量时间和/或资源,所以这对开发者和/或用户来说可能是有问题的。可替代地,开发者可以创建包括所有应用资产的单个安装包,其可以给用户和/或客户端设备下载和/或存储充足的应用资产带来负担,其中客户端设备仅利用应用资产的一(例如,小)部分。
因此,如本文中所提供的,对于应用的相应的应用资产(例如,资源包和/或应用包内的资产)开发者可以标识可以用来选择用于下载到客户端设备的软件组件(例如,选择性地下载资源包和/或应用包)的客户端设备的特点。在示例中,应用包可以包括可以取决于客户端设备中的CPU(例如,X86、X64,等等)的体系结构的应用二进制项和/或可执行文件。在另一示例中,图形资源包可以包括可以取决于客户端设备中的图形处理单元(例如,DX9、DX10或DX11)的水平或生成的纹理和/或着色器(shader)应用资产。在另一示例中,用户接口资源包可以包括可以取决于客户端设备的显示分辨率(例如,监视器DPI,诸如96*1.0、*1.4或*1.8)的对话框和/或其它用户接口元素资产。在另一示例中,纹理资源包可以包括可以取决于客户端设备的语言的指导资产(instructionalasset)。
开发者可以提交应用资产,并且可以根据客户端设备的特点标注应用资产。软件分布系统可以板载来自开发者的这样的信息以供客户端设备检索。当安装发生在客户端设备上时,标识客户端设备的设备特点。安装者可以安装与客户端设备的设备特点匹配的应用资产集合(例如,包括在一个或多个资源包内),并且可以避免安装不匹配的应用资产。这样,开发者可以仅提供应用资产一次以供客户端设备安装,并且用户可以仅在客户端设备上下载和/或安装待被客户端设备使用的应用资产。
生成用于应用的捆绑包的实施例由图1的示例性方法100图示。在102,该方法开始。在104,一个或多个应用包可以被标识以包括在用于应用的捆绑包内。例如,第一应用包可以包括被配置成在第一计算环境(例如,第一处理器类型、平板操作系统等)上执行的第一应用代码,第二应用包可以包括被配置成在第二计算环境(例如,第二处理器类型、台式操作系统等)上执行的第二应用代码,等等。这样,应用可以基于所述一个或多个应用包支持各种计算环境,诸如计算机体系结构或操作系统。在示例中,应用包可以包括可以被执行以在客户端设备上运行该应用的核心版本的可执行二进制文件。因为该应用可以支持用于应用的广泛多种可选的用户体验功能性,所以这样的功能性可以从所述一个或多个应用包中分离出来,并且可以与应用代码分开被暴露用于选择性(selective)和/或任选(optional)下载。这样,客户端设备可以仅下载可能与客户端设备或客户端设备的用户相关的可选的功能性(例如,对用户的特定语言的支持、用于游戏设备的高分辨率纹理、用于平板设备的低分辨率纹理,等等)。因此,这样的可选的用户体验功能性可以通过资源包提供。
在106,一个或多个资源包可以被标识以包括在捆绑包内。例如,第一资源包可以包括用于提供用于应用的第一可选的用户体验功能性的第一补充数据(例如,纹理数据、图标数据、特定语言串、多媒体API功能性、特定分辨率的图像,等等);第二资源包可以包括用于提供用于应用的第二可选的用户体验功能性的第二补充数据;等等。应当理解,资源包并不限于本文中所提供的示例,并且资源包可以包括广泛多种的任何一个或多个资源,诸如可以与语言、显示功能性、硬件功能性、软件功能性、用户接口功能性和/或可以用于定制用户体验的任何其它功能性有关的资源(例如,可以由现代资源技术加载的任何数据,等等)。在示例中,资源包可以包括用于应用的可选的语言用户体验功能性。在另一示例中,资源包可以包括可以为用户定制的可选的用户体验功能性(例如,优选的用户输入模式、高对比度设置、用户位置,等等)。在另一示例中,资源包可以包括用于应用的可选的显示品质用户体验功能性(例如,分辨率数据、屏幕比例数据、多媒体API数据,等等)。在另一示例中,资源包可以包括可以取决于客户端设备的硬件能力的可选的硬件感知功能性(例如,用于包括摄像机的客户端设备的图像捕获功能性、用于包括麦克风或耳机的客户端设备的音频功能性、用于包括无线外设的客户端设备的无线功能性,等等)。在另一示例中,资源包包括与多个用户体验功能性相关联的内容(例如,高分辨率德语图像;利用DX9功能性集合的高对比度交互式用户接口元素;等等)。
在一些实施例中,可以针对应用自动地生成资源包。例如,应用包可以被解析以从第一应用包标识第一可选数据集合(例如,应用可以固有地提供英语串,而且可以包括法语串作为可选的语言支持)。第一可选数据集合可以从第一应用包中提取。可以基于诸如法语资源包之类的第一可选数据集合生成资源包。在示例中,资源包(例如,自动地生成或不是自动地生成)可以包括一种类型的多个实例(例如,英语语言资源包、美国英语语言资源包和/或英国英语语言资源包等)。
在108,可以生成捆绑包以包括所述一个或多个应用包和/或所述一个或多个资源包。在示例中,捆绑包、所述一个或多个应用包和/或所述一个或多个资源包可以用数字签名证书(例如,在单个数字签名操作期间)进行数字签名,使得包可以共享签名属性集合(例如,数字签名证书所有者、机构的连锁认证、密钥用途、签名确认日期、签名加密强度、签名时间戳,等等),其可以允许客户端设备有效地验证包,不管是否选择性地和/或单独地下载了包。在示例中,可以生成捆绑清单以包括在捆绑包内。捆绑清单可以包括用于所述一个或多个应用包的一个或多个应用描述和/或用于所述一个或多个资源包的一个或多个资源描述。在示例中,捆绑包可以被更新以添加、去除和/或修改其中的应用包和/或资源包。例如,可以接收针对捆绑包的捆绑更新。捆绑更新可以包括新资源包以包括在捆绑包内。捆绑包可以被更新以包括新资源包,并且捆绑清单可以被更新以指定新资源包可用于可选检索。在其中捆绑包由应用市场认证过程(例如,自动化和/或手动测试过程以验证正确的功能性和/或对应用市场的遵守)验证的示例中,仅可以验证新资源包,不同于重新验证捆绑包。
捆绑包可以被暴露以通过应用市场选择性下载。例如,所述一个或多个资源包可以被暴露作为用于应用的可选下载。也就是说,应用包可以被下载以供将应用安装在客户端设备上,并且一个或多个资源包可以被可选地下载或部署以提供用于应用的可选的用户体验功能性(例如,对法语语言的支持)。因此,捆绑获取请求可以从客户端设备中接收。在示例中,捆绑获取请求可以指定第一应用包。可以向客户端设备选择性地提供第一个应用包以供安装。在示例中,捆绑获取请求可以指定捆绑包内的第二资源包。可以从捆绑包向客户端设备选择性地提供第二资源包而非第一资源包以供应用的安装。在另一示例中,捆绑获取请求指定包括在捆绑包内的资源包子集。资源包子集可以指定捆绑包内的一个或多个资源包中的至少一些但少于所有。这样,可以从捆绑包向客户端设备选择性地提供资源包子集以供应用的安装。在110,该方法结束。
图2图示了用于生成捆绑包208的系统200的示例。该系统200可以包括捆绑生成组件206。该捆绑生成组件206可以被配置成标识用于应用的一个或多个应用包(例如,由绘图应用的应用开发者所提供的应用包数据202)。该捆绑生成组件206可以被配置成标识用于应用的一个或多个资源包(例如,由应用开发者或另一源(诸如资源包开发者)所提供的资源包数据204)。在示例中,捆绑生成组件206可以解析应用包以标识可以被提取和/或用于生成资源包的可选数据。例如,应用包可以被解析以标识可以提供用于绘图应用的可选显示功能性的多媒体API版本2.2的特征集合,并且因此可以针对特征集合创建资源包。
捆绑生成组件206可以生成用于绘图应用的捆绑包208以包括一个或多个应用包和/或一个或多个资源包。例如,捆绑包208可以包括第一应用包210,该第一应用包包括被配置成在第一处理器体系结构上执行的应用代码;第二应用包212,该第二应用包212包括被配置成在第二处理器体系结构上执行的应用代码;第三应用包214,该第三应用包214包括被配置成在云操作系统上执行的应用代码;和/或被配置成在各种计算机体系结构和/或操作系统上执行的其它应用包,例如。捆绑包208可以包括第一资源包216,该第一资源包216包括德语语言串;第二资源包218,该第二资源包218包括法语语言串;第三资源包220,该第三资源包220包括1440×900(例如,或者中等品质像素密度)的中等品质分辨率图像;第四资源包222,该第四资源包222包括1920×1080(例如,高品质像素密度)的高品质分辨率图像;第五资源包224,该第五资源包224包括多媒体API版本2.2的特征集合(例如,第五资源包224可以基于从应用包中提取的可选的显示功能性自动地生成);和/或包括用来提供用于绘图应用的可选的用户体验功能性的补充数据的其它资源包。捆绑生成组件206可以生成描述通过捆绑包208可用的所述一个或多个应用包和/或所述一个或多个资源包的捆绑清单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可以包括被配置成暴露一个或多个应用包(例如,第一应用包210、第二应用包212、第三应用包214,等等)和/或一个或多个资源包(例如,用于德语语言串的第一资源包216、用于法语语言串的第二资源包218、用于1440×900的中等分辨率纹理的第三资源包、用于1920×1080的高分辨率纹理的第四资源包、用于多媒体API版本2.2的第五资源包,等等)以供将绘图应用选择性地下载和/或部署到客户端设备406上的应用分布组件402。例如,该应用分布组件402可以将捆绑清单226暴露给客户端设备,诸如固有地支持1440×900的分辨率并且被讲德语的用户使用的平板设备。捆绑清单226可以描述捆绑包208,诸如所述一个或多个应用包和/或所述一个或多个资源包。
在示例中,从客户端设备406接收捆绑获取请求。因为客户端设备406具有可以使用第二应用包212执行绘图应用的第二处理器体系结构,所以捆绑获取请求可以指定第二应用包212。因为用户讲德语,所以捆绑获取请求可以指定第一资源包216。在示例中,捆绑获取请求没有指定第二资源包218,使得客户端设备406不消耗下载带宽、存储空间和/或另外将用于下载和部署用于用户不讲的法语的第二资源包218的计算资源。因为客户端设备406固有地支持1440×900的分辨率,所以捆绑获取请求可以指定第三资源包220。在示例中,捆绑获取请求不指定第四资源包222,使得客户端设备406不消耗下载带宽、存储空间和/或另外将用于下载和部署用于不被客户端设备406支持的分辨率的第四资源包222的计算资源。这样,应用分布组件402可以从捆绑包208向客户端设备406选择性地提供404第二应用包212、第一资源包216和/或第三资源包220以供绘图应用的安装。
数字签名捆绑包的实施例由图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。该数字签名组件814可以被配置成利用数字签名证书816就地用第一应用包签名来对第一应用包804进行签名、用第二应用包签名来对第二应用包806进行签名、用第一资源包签名来对第一资源包808进行签名以及用第二资源包签名来对第二资源包810进行签名,同时这样的包被包括在捆绑包802内。数字签名组件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可以向客户端设备922发送920已签名的第一应用包902、已签名的第二资源包908和签名926(例如,捆绑包签名、第一应用包签名910和/或第二资源包签名916)以供验证和/或安装由已签名的捆绑包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(例如,不与大于相似度阈值相对应)相对应的应用包和/或资源包。在示例中,因为这样的包对应于适用性上下文1106,所以检索组件1108可以检索1126的第二应用包1114、第二资源包1118(例如,因为英国英语语言可以对应于大于相似度阈值的澳大利亚英语语言上下文,而美国英语语言不对应)和第四资源包1122(例如,因为中等分辨率图标可以对应于大于相似度阈值的中等到低分辨率上下文,而高分辨率图标不对应)。这样,客户端设备1102可以使用选择性地下载的包安装绘图应用。
图12图示了用于选择性地检索与应用相关联的捆绑包1110的部分的系统1200的示例。在示例中,捆绑包1110与绘图应用相关联。捆绑包1110包括一个或多个应用包和/或一个或多个资源包。例如,捆绑包1100包括用于第一处理器类型的第一应用包1112和用于第二处理器类型的第二应用包1114。捆绑包1110包括用于美国英语语言的第一资源包1116、用于英国英语语言的第二资源包1118、用于高分辨率图标的第三资源包1120和用于中等分辨率图标的第四资源包1122。所述一个或多个资源包可以被暴露以供选择性和/或可选地下载绘图应用。也就是说,资源包可以包括用于提供用于应用的可选的用户体验功能性的补充数据。
在示例中,客户端设备1202(诸如游戏台式机)可以标识用于绘图应用的捆绑包1110。客户端设备1202可以获得描述捆绑包1110内的所述一个或多个应用包和/或所述一个或多个资源包的捆绑清单1124。系统1200可以包括被配置成确定用于客户端设备1102的适用性上下文1206的适用性组件1204。例如,适用性上下文1206可以指定客户端设备1202具有第一处理器类型,客户端设备1102的用户讲英语,并且客户端设备1202支持高分辨率图形。该系统1200可以包括被配置成检索1210对应于适用性上下文1206的应用包和/或一个或多个资源包的检索组件1208。该检索组件1208可以避免检索到不与适用性上下文1206相对应的应用包和/或资源包。在示例中,因为这样的包对应于适用性上下文1206,所以检索组件1208可以检索1210第一应用包1112、第一资源包1116和第三资源包1120。这样,客户端设备1202可以使用选择性地下载的包安装绘图应用。
索引用于客户端设备上的应用的包(诸如资源包和/或应用包)内的资源的实施例由图13的示例性方法1300图示。在1302,该方法开始。在示例中,客户端设备可能已选择性地检索与应用相关联的应用包和一个或多个资源包。在示例中,可以验证应用包的第一应用包签名(例如,应用包的应用开发者的标识和/或应用包还未被修改的验证)和/或可以验证一个或多个资源包的资源签名(例如,资源包的开发者的标识和/或资源包还未被修改的验证)。因为所述一个或多个资源包可能已经被单独地下载和/或存储在客户端设备上,所以可能有利的是,在运行时间期间跟踪这样的资源包以供应用利用。因此,在1304,可以在客户端设备上标识例如第一资源包和第二资源包。第一资源包可以包括用于提供用于应用的第一可选的用户体验功能性的第一补充数据(例如,高分辨率图标资源包内的一个或多个高分辨率图标)。第二资源包可以包括用于提供用于应用的第二可选的用户体验功能性的第二补充数据(例如,用于多媒体API版本11的特征集合内的一个或多个多媒体特征资源)。第一资源包可以包括描述第一资源数据的第一资源索引(例如,第一资源包包括一个或多个高分辨率图标的标识)和/或第一资源适用性数据(例如,当应用在能够显示高分辨率图标数据的客户端设备上执行时,高分辨率图标数据适用该应用的标识)。第二资源包可以包括描述第二资源数据的第二资源索引(例如,所述一个或多个多媒体特征资源的描述)和/或第一资源适用性数据(例如,当客户端设备安装有多媒体API版本11时,可以使用特征集合的标识)。
在示例中,资源包可以包括用于应用的资源子集(例如,加拿大英语资源包可以包括一些加拿大文本串(诸如颜色和爱好),而中立或美国英语资源包包括用于其它词的多个文本串)。在示例中,单个资源包可以包括单独资源的若干个变型(例如,德语图像的高对比度版本、德语图像的低对比度版本,等等)。
在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,该第一核心游戏包1806包括被配置成在第一处理器类型上执行的游戏代码;和第二核心游戏包1808,该第二核心游戏包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的一部分。
设备812还可以包括允许设备2012与其它设备通信的(多个)通信连接2026。该(多个)通信连接2026可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外端口、USB连接或用于将计算设备2012连接到其它计算设备的其它接口。(多个)通信连接2026可以包括有线连接或无线连接。(多个)通信连接2026可以发射和/或接收通信媒体。
术语“计算机可读媒体”可以包括通信媒体。通信媒体典型地体现了计算机可读指令或诸如载波或其它运送机制之类的“已调制的数据信号”中的其它数据,并且包括任何信息传递媒体。术语“已调制的数据信号”可以包括使其一个或多个特点以在信号中编码信息这样的方式设定或更改的信号。
设备2012可以包括(多个)输入设备2024,诸如键盘、鼠标、笔、话音输入设备、触摸输入设备、红外摄像机、视频输入设备和/或任何其它输入设备。(多个)输出设备2022(诸如一个或多个显示器、扬声器、打印机、和/或任何其它输出设备)也可以被包括在设备2012内。(多个)输入设备2024和(多个)输出设备2022可以经由有线连接、无线连接、或它们的任意组合连接到设备2012。在一个实施例中,来自另一个计算设备的输入设备或输出设备可以用作用于计算设备2012的(多个)输入设备2024或(多个)输出设备2022。
计算设备2012的组件可以通过诸如总线之类的各种互连进行连接。这样的互连可以包括外设组件互连(PCI),诸如PCIExpress、通用串行总线(USB)、火线(IEEE1394)、光学总线结构,等等。在另一实施例中,计算设备2012的组件可以通过网络互连。例如,存储器2018可以由位于由网络互连的不同物理位置中的多个物理存储器单元组成。
本领域的技术人员将意识到,用来存储计算机可读指令的存储设备可以分布在网络中。例如,可经由网络2028访问的计算设备2030可以存储计算机可读指令以实现本文中所提供的一个或多个实施例。计算设备2012可以访问计算设备2030并且下载计算机可读指令中的部分或全部用于执行。可替换地,计算设备2012可以根据需要下载数个计算机可读指令,或者一些指令可以在计算设备2012处执行并且一些在计算设备2030处执行。
本文提供了实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个操作可以构成存储在一个或多个计算设备可读媒体上的计算机可读指令,如果其由计算设备执行,则将使计算机执行所描述的操作。描述操作中的一些或全部操作所采取的顺序不应被解释为暗示这些操作一定是依赖于顺序的。获益于本描述的本领域技术人员应理解替换的排序。此外,应该理解的是,并非所有操作都必须在本文中所提供的每个实施例中呈现。
进一步地,除非另外指定,“第一”,“第二”等等不旨在暗示时间方面、空间方面、排序等。相反,这样的术语仅仅用作用于特征、元件、项等的标识符、名称等。例如,第一对象和第二对象通常对应于对象A和对象B、或两种不同的或两个相似对象或相同的对象。
而且,“示例性”在本文中用于意味着作为示例、实例、说明,等等,并且不必是有利的。如本文中所使用的,术语“或”旨在意味着包括性“或”而非互斥性“或”。另外,如在本申请所使用的“一”和“一个”通常被解释为意味着“一个或多个”,除非另外指定或从上下文能清楚得知指的是单数形式。同样,A和B中的至少一个等等通常是指A或B或A和B两者。此外,对于在具体实施方式中或在权利要求中使用的术语“包含(include)”、“有(having)”、“具有(has)”、“带有(with)”和/或者其变体的范围,这样的术语旨在以术语“包括(comprising)”类似的方式而是包含性的。
同样,尽管本公开已经关于一个或多个实现方式而加以示出并描述,但是本领域的技术人员基于对本说明书和附图的参阅和理解可以想到等效的变更和变型。本公开包括所有这样的变型和变更,并且只受限于以下权利要求的范围。特别地,关于由上文所描述的组件(例如,元件、资源,等等)执行的各种功能,用来描述这样的组件的术语旨在对应于(除非专门指定)执行所描述的组件(例如,功能上等同)的所指定的功能的任何组件,即使结构上不等同于执行本公开的本文中所图示的示例性实现方式中的功能的所公开的结构。另外,虽然可能已经关于若干个实现方式中的仅一个对本公开的具体特征进行了公开,但是根据期望并且有利于任何给定的或特定的应用,这样的特征可以与其它实现方式中的一个或多个其它特征进行组合。
Claims (10)
1.一种用于在客户端设备上索引应用的资源的方法,包括:
在客户端设备上标识第一资源包和第二资源包,所述第一资源包包括用来提供用于应用的第一可选的用户体验功能性的第一补充数据,所述第二资源包包括用于提供用于所述应用的第二可选的用户体验功能性的第二补充数据;
将用于所述第一资源包的第一资源索引与用于所述第二资源包的第二资源索引合并来创建合并资源索引,所述第一资源索引描述用于所述第一资源包的第一资源数据和第一资源适用性数据,所述第二资源索引描述用于所述第二资源包的第二资源数据和第二资源适用性数据;和
利用所述合并资源索引以选择性地利用一个或多个资源用于执行所述应用。
2.根据权利要求1所述的方法,包括:
在用于所述应用的应用包内创建对所述合并资源索引的引用,所述应用包包括用于执行所述应用的应用代码。
3.根据权利要求2所述的方法,包括
响应于利用所述应用包在运行时间状态下执行所述应用,评估所述合并资源索引以标识用于提供用于所述应用的可选的用户体验功能性的资源集合;和
调用所述应用以利用所述资源集合。
4.根据权利要求1所述的方法,包括
将用于应用包的资源索引合并成所述合并索引,所述应用包包括被配置成用于执行所述应用的应用代码;和
利用所述合并资源索引以选择性地利用所述应用包内的一个或多个资源来执行所述应用。
5.根据权利要求1所述的方法,所述利用所述合并资源索引包括:
标识由所述客户端设备支持的显示品质用户体验;和
基于所述合并资源索引选择所述第一资源包内的第一资源,而非所述第二资源包内的第二资源,以供所述应用基于包括第一多媒体数据的所述第一资源使用,该第一多媒体数据比包括在所述第二资源之内的第二多媒体数据更类似于所述显示品质用户体验。
6.一种用于在客户端设备上索引应用的资源的系统,包括索引组件,其被配置成:
在客户端设备上标识第一资源包和第二资源包,所述第一资源包包括用来提供用于应用的第一可选的用户体验功能性的第一补充数据,所述第二资源包包括用于提供用于所述应用的第二可选的用户体验功能性的第二补充数据;
将用于所述第一资源包的第一资源索引与用于所述第二资源包的第二资源索引合并来创建合并资源索引,所述第一资源索引描述用于所述第一资源包的第一资源数据和第一资源适用性数据,所述第二资源索引描述用于所述第二资源包的第二资源数据和第二资源适用性数据;和
利用所述合并资源索引以选择性地利用一个或多个资源用于执行所述应用。
7.根据权利要求6所述的系统,所述索引组件被配置成:
在用于所述应用的应用包内创建对所述合并资源索引的引用,所述应用包包括用于执行所述应用的应用代码。
8.根据权利要求7所述的系统,包括
资源利用组件,其被配置成:
响应于利用所述应用包在运行时间状态下执行所述应用,评估所述合并资源索引以标识用于提供用于所述应用的可选的用户体验功能性的资源集合;和
调用所述应用以利用所述资源集合。
9.根据权利要求6所述的系统,包括:
资源利用组件,其被配置成:
标识由用户使用的语言以与所述客户端设备交互;和
基于所述合并资源索引选择所述第一资源包内的第一资源,而非所述第二资源包内的第二资源,以供所述应用基于提供第一语言的所述第一资源使用,该第一语言比由所述第二资源提供的第二语言更类似于所述语言。
10.根据权利要求6所述的系统,包括:
资源利用组件,其被配置成:
标识由所述客户端设备支持的显示品质用户体验;和
基于所述合并资源索引选择所述第一资源包内的第一资源,而非所述第二资源包内的第二资源,以供所述应用基于包括第一多媒体数据的所述第一资源使用,该第一多媒体数据比包括在所述第二资源内的第二多媒体数据更类似于所述显示品质用户体验。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/905574 | 2013-05-30 | ||
US13/905,574 US9323514B2 (en) | 2013-05-30 | 2013-05-30 | Resource package indexing |
PCT/US2013/060946 WO2014193448A1 (en) | 2013-05-30 | 2013-09-20 | Resource package indexing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105378661A true CN105378661A (zh) | 2016-03-02 |
CN105378661B CN105378661B (zh) | 2019-03-29 |
Family
ID=49304356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380077092.7A Active CN105378661B (zh) | 2013-05-30 | 2013-09-20 | 资源包索引 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9323514B2 (zh) |
EP (1) | EP3005097A1 (zh) |
CN (1) | CN105378661B (zh) |
WO (1) | WO2014193448A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471643A (zh) * | 2018-11-19 | 2019-03-15 | 苏州好玩友网络科技有限公司 | 一种手机游戏安装包配置方法及应用其的游戏安装运行方法 |
CN110896538A (zh) * | 2018-09-13 | 2020-03-20 | 苹果公司 | 无线设备中使用多个安全证书的模式切换 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495570B2 (en) * | 2010-12-23 | 2013-07-23 | Microsoft Corporation | Resource deployment based on conditions |
US9766870B2 (en) * | 2013-05-30 | 2017-09-19 | Microsoft Technology Licensing, Llc | Bundle package generation |
CN104050409B (zh) | 2014-06-30 | 2016-10-05 | 安一恒通(北京)科技有限公司 | 一种识别被捆绑软件的方法及其装置 |
US9338071B2 (en) | 2014-10-08 | 2016-05-10 | Google Inc. | Locale profile for a fabric network |
RU2632141C2 (ru) | 2015-06-30 | 2017-10-02 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и компьютерное устройство для динамической индексации и загрузки кодов модулей |
GB2542355B (en) | 2015-09-15 | 2019-07-17 | Samsung Electronics Co Ltd | Methods and apparatus for distributing and installing trusted applications |
US9733927B2 (en) * | 2015-11-11 | 2017-08-15 | International Business Machines Corporation | Detection of software or hardware incompatibilities in software packages |
US10083029B2 (en) * | 2016-11-09 | 2018-09-25 | Red Hat, Inc. | Detect application defects by correlating contracts in application dependencies |
JP6855348B2 (ja) * | 2017-07-31 | 2021-04-07 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびダウンロード処理方法 |
KR102424280B1 (ko) * | 2018-01-25 | 2022-07-25 | 삼성전자주식회사 | 코드 설정이 가능한 어플리케이션 프로그램을 실행하는 디스플레이 장치 및 그 디스플레이 장치의 제어 방법 |
WO2019184156A1 (zh) * | 2018-03-28 | 2019-10-03 | 华为技术有限公司 | 一种免安装应用程序下载方法及装置 |
CN108519886A (zh) * | 2018-03-28 | 2018-09-11 | 努比亚技术有限公司 | 一种apk应用安装包配置方法、服务器、系统及存储介质 |
CN108647032B (zh) * | 2018-03-29 | 2022-03-01 | 珠海市魅族科技有限公司 | 应用加载方法及装置、计算机装置和计算机可读存储介质 |
US20210103651A1 (en) * | 2019-10-03 | 2021-04-08 | Microsoft Technology Licensing, Llc | Registration of dynamically created packaged applications |
CN112947947A (zh) * | 2019-12-11 | 2021-06-11 | 华为终端有限公司 | 安装包的下载方法、分发方法、终端设备、服务器及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542428A (zh) * | 2005-03-08 | 2009-09-23 | 微软公司 | 资源创作合并本体论 |
US20100088695A1 (en) * | 2008-10-03 | 2010-04-08 | Takashi Kakinari | System and method for localizing a server application using a client-side translator |
US20100262970A1 (en) * | 2009-04-10 | 2010-10-14 | Open Invention Network Llc | System and Method for Application Isolation |
CN102567094A (zh) * | 2010-12-21 | 2012-07-11 | 微软公司 | 标识多个资源实例的资源索引 |
CN103368851A (zh) * | 2013-07-22 | 2013-10-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
CN103593243A (zh) * | 2013-11-01 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种动态可扩展的增加虚拟机资源的方法 |
Family Cites Families (117)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
ATE441897T1 (de) | 1995-02-13 | 2009-09-15 | Intertrust Tech Corp | Systeme und verfahren zur verwaltung von gesicherten transaktionen und zum schutz von elektronischen rechten |
US6021491A (en) | 1996-11-27 | 2000-02-01 | Sun Microsystems, Inc. | Digital signatures for data streams and data archives |
US6093215A (en) * | 1997-08-12 | 2000-07-25 | International Business Machines Corporation | Method and apparatus for building templates in a component system |
US6195794B1 (en) * | 1997-08-12 | 2001-02-27 | International Business Machines Corporation | Method and apparatus for distributing templates in a component system |
AUPP149998A0 (en) | 1998-01-27 | 1998-02-19 | Aristocrat Leisure Industries Pty Ltd | Multi-platform gaming architecture |
US6952823B2 (en) | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
US6397381B1 (en) | 1998-09-21 | 2002-05-28 | Microsoft Corporation | System and method for repairing a damaged application program |
US7073063B2 (en) | 1999-03-27 | 2006-07-04 | Microsoft Corporation | Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like |
US6675382B1 (en) | 1999-06-14 | 2004-01-06 | Sun Microsystems, Inc. | Software packaging and distribution system |
US6535911B1 (en) * | 1999-08-06 | 2003-03-18 | International Business Machines Corporation | Viewing an information set originated from a distribution media and updating using a remote server |
US6982733B1 (en) * | 1999-09-21 | 2006-01-03 | Ameranth Wireless, Inc. | Information management and synchronous communications system with menu generation, and handwriting and voice modification of orders |
US6983315B1 (en) | 2000-01-18 | 2006-01-03 | Wrq, Inc. | Applet embedded cross-platform caching |
US8230482B2 (en) | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US6879988B2 (en) | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
US6874143B1 (en) | 2000-06-21 | 2005-03-29 | Microsoft Corporation | Architectures for and methods of providing network-based software extensions |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
JP2004506262A (ja) | 2000-08-04 | 2004-02-26 | イントリンジック グラフィックス, インコーポレイテッド | グラフィックハードウェアおよびソフトウェアの開発 |
US7752214B2 (en) * | 2000-09-01 | 2010-07-06 | Op40, Inc. | Extended environment data structure for distributed digital assets over a multi-tier computer network |
US7120675B1 (en) * | 2000-09-26 | 2006-10-10 | Microsoft Corporation | Information location service |
EP1202168A3 (en) * | 2000-10-30 | 2006-08-23 | Microsoft Corporation | System and method for dynamically veryfying the compatibility of a user interface resource |
US7124289B1 (en) | 2000-10-31 | 2006-10-17 | Opsware Inc. | Automated provisioning framework for internet site servers |
US20030078960A1 (en) | 2001-04-30 | 2003-04-24 | Murren Brian T. | Architecture and process for creating software applications for multiple domains |
US20020165026A1 (en) | 2001-05-01 | 2002-11-07 | Perkins James Harold | Method and system for delivering and securing computer game content via the internet |
US7155710B2 (en) * | 2001-06-08 | 2006-12-26 | Igt | Method and apparatus for gaming device software configuration |
US20030037327A1 (en) | 2001-08-15 | 2003-02-20 | International Business Machines Corporation | Run-time rule-based topological installation suite |
AU2003218549A1 (en) | 2002-03-20 | 2003-09-29 | Research In Motion Limited | System and method of secure garbage collection on a mobile device |
US20030200168A1 (en) | 2002-04-10 | 2003-10-23 | Cullen Andrew A. | Computer system and method for facilitating and managing the project bid and requisition process |
CA2481712C (en) | 2002-04-11 | 2011-07-12 | International Business Machines Corporation | A software distribution method and system |
US7856631B2 (en) | 2002-05-08 | 2010-12-21 | Sap Aktiengesellschaft | Software delivery manager |
US20040060035A1 (en) | 2002-09-24 | 2004-03-25 | Eric Ustaris | Automated method and system for building, deploying and installing software resources across multiple computer systems |
US7814476B2 (en) * | 2002-10-31 | 2010-10-12 | Oracle America, Inc. | Systems and methods for updating software |
AU2003291022A1 (en) | 2002-11-18 | 2004-06-15 | Internal Machine Industries, Inc. | Method and system for facilitating interactive multimedia experiences |
JP4593078B2 (ja) * | 2003-02-28 | 2010-12-08 | 株式会社日立製作所 | 異なる計算機環境におけるジョブ実行方法及びそのプログラム |
US20040194059A1 (en) | 2003-03-27 | 2004-09-30 | International Business Machines Corporation | Method to deploy software using an open service gateway initiative (OSGi) framework |
US7486294B2 (en) | 2003-03-27 | 2009-02-03 | Microsoft Corporation | Vector graphics element-based model, application programming interface, and markup language |
US20040261060A1 (en) * | 2003-06-20 | 2004-12-23 | Haselden J. Kirk | Dependency based package deployment |
US7624394B1 (en) * | 2003-11-18 | 2009-11-24 | Adobe Systems Incorporation | Software installation verification |
US8458691B2 (en) * | 2004-04-15 | 2013-06-04 | International Business Machines Corporation | System and method for dynamically building application environments in a computational grid |
US7065650B2 (en) | 2004-05-10 | 2006-06-20 | Aladdin Knowledge Systems Ltd. | Method for indicating the integrity of a collection of digital objects |
WO2005121950A2 (en) * | 2004-06-08 | 2005-12-22 | Dartdevices Corporation | Architecture apparatus and method for seamless universal device interoperability platform |
US7478361B2 (en) | 2004-06-17 | 2009-01-13 | International Business Machines Corporation | Method and system for managing application deployment |
US7530065B1 (en) | 2004-08-13 | 2009-05-05 | Apple Inc. | Mechanism for determining applicability of software packages for installation |
FR2875319B1 (fr) * | 2004-09-16 | 2008-04-11 | Renault Sas | Systeme et calculateur embarque permettant la mise en suspens du dechargement de donnees en cas d'arret du calculateur |
US7680758B2 (en) | 2004-09-30 | 2010-03-16 | Citrix Systems, Inc. | Method and apparatus for isolating execution of software applications |
US7966485B2 (en) | 2004-12-01 | 2011-06-21 | Igt | Universal operating system to hardware platform interface for gaming machines |
EP1820143B1 (en) | 2004-12-09 | 2010-02-10 | Cellomics, Inc | Automated method and system for setting image analysis parameters to control image analysis operations |
US20060136907A1 (en) | 2004-12-20 | 2006-06-22 | Microsoft Corporation | Language-neutral and language-specific installation packages for software setup |
WO2006102331A1 (en) | 2005-03-18 | 2006-09-28 | Displaymate Technologies Corporation | A method for the fully automatic and/or semi-automatic interactive configuration, set up, adjustment, calibration, and control of a video system for improving image quality and ease of use |
US7966612B2 (en) | 2005-04-28 | 2011-06-21 | International Business Machines Corporation | Method, system and computer program for installing shared software components |
US8495619B2 (en) * | 2005-06-29 | 2013-07-23 | Flexera Software Llc | Method and system for pre-deployment conflict checking |
US20070074031A1 (en) | 2005-09-29 | 2007-03-29 | Research In Motion Limited | System and method for providing code signing services |
CN103197936B (zh) | 2005-10-07 | 2016-04-06 | 茨特里克斯系统公司 | 用于在应用程序的预定数量的执行方法之间选择的方法 |
EP1955151B1 (en) | 2005-12-01 | 2018-10-17 | CA, Inc. | Automated deployment and configuration of applications in an autonomically controlled distributed computing system |
EP1796000A1 (en) | 2005-12-06 | 2007-06-13 | International Business Machines Corporation | Method, system and computer program for distributing software products in trial mode |
US20070143379A1 (en) | 2005-12-09 | 2007-06-21 | Microsoft Corporation | Metadata driven deployment of applications |
US7472140B2 (en) | 2005-12-20 | 2008-12-30 | Oracle International Corporation | Label-aware index for efficient queries in a versioning system |
US20070143851A1 (en) * | 2005-12-21 | 2007-06-21 | Fiberlink | Method and systems for controlling access to computing resources based on known security vulnerabilities |
US7676513B2 (en) | 2006-01-06 | 2010-03-09 | Microsoft Corporation | Scheduling of index merges |
US20070201655A1 (en) | 2006-02-03 | 2007-08-30 | Michael Shenfield | System and method for installing custom services on a component-based application platform |
US20070250711A1 (en) | 2006-04-25 | 2007-10-25 | Phonified Llc | System and method for presenting and inputting information on a mobile device |
CN100534047C (zh) | 2006-04-28 | 2009-08-26 | 国际商业机器公司 | 对Web服务资源的基于属性的索引和/或查询方法及系统 |
KR100785078B1 (ko) | 2006-09-07 | 2007-12-12 | 삼성전자주식회사 | 설정환경 알림 기능을 구비한 호스트장치 및 그 방법 |
US20080127179A1 (en) | 2006-09-25 | 2008-05-29 | Barrie Jon Moss | System and apparatus for deployment of application and content to different platforms |
GB0622738D0 (en) * | 2006-11-15 | 2006-12-27 | Ibm | Methods and apparatus for assisted migration in a data processing environment |
US8185872B2 (en) | 2006-11-27 | 2012-05-22 | Red Hat, Inc. | Cross-platform software package generation |
US20080134012A1 (en) | 2006-11-30 | 2008-06-05 | Sony Ericsson Mobile Communications Ab | Bundling of multimedia content and decoding means |
US20080163191A1 (en) * | 2006-12-27 | 2008-07-03 | International Business Machines Corporation | System and method for file transfer management |
US8365165B2 (en) * | 2006-12-30 | 2013-01-29 | Sap Ag | Dynamic addition of products and removal of software products on a distribution server |
US8069433B2 (en) | 2007-04-18 | 2011-11-29 | Microsoft Corporation | Multi-format centralized distribution of localized resources for multiple products |
JP5006388B2 (ja) | 2007-04-19 | 2012-08-22 | パナソニック株式会社 | データ管理装置 |
US20080301672A1 (en) | 2007-05-30 | 2008-12-04 | Google Inc. | Installation of a Software Product on a Device with Minimal User Interaction |
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 |
KR100927442B1 (ko) * | 2007-08-16 | 2009-11-19 | 주식회사 마크애니 | 가상 응용프로그램 생성 시스템, 가상 응용프로그램 설치방법, 네이티브 api 호출 처리 방법 및 가상응용프로그램 수행 방법 |
US20090083732A1 (en) | 2007-09-26 | 2009-03-26 | Microsoft Corporation | Creation and deployment of distributed, extensible applications |
US8312445B2 (en) * | 2007-10-01 | 2012-11-13 | International Business Machines Corporation | User-specified install locations |
US8434077B2 (en) | 2007-10-18 | 2013-04-30 | International Business Machines Corporation | Upgrading virtual resources |
US8732692B2 (en) * | 2007-11-07 | 2014-05-20 | Bayerische Motoren Werke Aktiengesellschaft | Deployment and management framework |
US8365164B1 (en) * | 2008-02-21 | 2013-01-29 | T-APP Ltd. | Portable software applications |
US8484634B2 (en) | 2008-03-28 | 2013-07-09 | Time Warner Cable, Inc. | System for signaling an application to a host device and method therefor |
US8214646B2 (en) | 2008-05-06 | 2012-07-03 | Research In Motion Limited | Bundle verification |
US8418168B2 (en) | 2008-05-29 | 2013-04-09 | Research In Motion Limited | Method and system for performing a software upgrade on an electronic device connected to a computer |
US20090328028A1 (en) | 2008-06-25 | 2009-12-31 | O'rourke Connor | Electronic documents and methods for updating resource files for an application |
US8572580B2 (en) | 2008-07-28 | 2013-10-29 | Microsoft Corporation | Computer application packages with customizations |
US9317274B2 (en) | 2008-08-06 | 2016-04-19 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system and method for integrated customization of multiple disk images independent of operating system type, version or state |
US20100082974A1 (en) | 2008-09-26 | 2010-04-01 | Microsoft Corporation | Parallel document processing |
US8725745B2 (en) | 2009-04-13 | 2014-05-13 | Microsoft Corporation | Provision of applications to mobile devices |
CN106445608A (zh) | 2010-01-27 | 2017-02-22 | 中兴通讯股份有限公司 | 一种软件安装包的安装方法及安装装置 |
US8396759B2 (en) | 2010-06-18 | 2013-03-12 | Google Inc. | Context-influenced application recommendations |
US8370830B2 (en) | 2010-06-23 | 2013-02-05 | Microsoft Corporation | Data only solution package |
CA2807473C (en) | 2010-08-06 | 2016-08-23 | Tapjoy, Inc. | System and method for rewarding application installs |
US8267793B2 (en) | 2010-08-17 | 2012-09-18 | Samsung Electronics Co., Ltd. | Multiplatform gaming system |
GB201019618D0 (en) * | 2010-10-19 | 2010-12-29 | Data Encryption Systems Ltd | Method of and appartus for distributing software objects |
US8694981B2 (en) | 2010-11-17 | 2014-04-08 | Apple Inc. | Shared resource dependencies |
US8495570B2 (en) | 2010-12-23 | 2013-07-23 | Microsoft Corporation | Resource deployment based on conditions |
US9495371B2 (en) | 2010-12-28 | 2016-11-15 | Microsoft Technology Licensing, Llc | Unified access to resources |
US9911167B2 (en) | 2011-02-21 | 2018-03-06 | General Electric Company | Clinical content-driven architecture systems and methods of use |
US9544396B2 (en) | 2011-02-23 | 2017-01-10 | Lookout, Inc. | Remote application installation and control for a mobile device |
US10303526B2 (en) | 2011-03-08 | 2019-05-28 | Facebook, Inc. | Device specific handling of user interface components |
US8813060B2 (en) | 2011-06-17 | 2014-08-19 | Microsoft Corporation | Context aware application model for connected devices |
US8756595B2 (en) | 2011-07-28 | 2014-06-17 | Yahoo! Inc. | Method and system for distributed application stack deployment |
KR101573469B1 (ko) | 2011-08-02 | 2015-12-03 | 주식회사 케이티 | 지도 기반의 앱 유통 시스템 및 그 방법 |
US8839446B2 (en) | 2011-09-12 | 2014-09-16 | Microsoft Corporation | Protecting archive structure with directory verifiers |
US8819361B2 (en) | 2011-09-12 | 2014-08-26 | Microsoft Corporation | Retaining verifiability of extracted data from signed archives |
US8726263B2 (en) | 2011-09-28 | 2014-05-13 | Microsoft Corporation | Detection and installation of software on a per-user basis |
CA2756102A1 (en) | 2011-11-01 | 2012-01-03 | Cit Global Mobile Division | Method and system for localizing an application on a computing device |
US8667486B2 (en) | 2012-06-26 | 2014-03-04 | Google Inc. | Automatic provisioning of a software platform to a device ecosystem |
US20140325502A1 (en) | 2012-06-29 | 2014-10-30 | Giannis Zarifis | Packaging, distribution and de-packaging of device-independent software applications |
US20140109072A1 (en) | 2012-10-16 | 2014-04-17 | Citrix Systems, Inc. | Application wrapping for application management framework |
RU2523113C1 (ru) | 2012-12-25 | 2014-07-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ целевой установки сконфигурированного программного обеспечения |
KR101489199B1 (ko) | 2013-03-29 | 2015-02-03 | 주식회사 엘지씨엔에스 | 컴퓨터에서 실행 가능한 어플리케이션 패키지를 생성하는 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체 |
US20140359598A1 (en) * | 2013-05-29 | 2014-12-04 | Microsoft Corporation | Application installation from search results |
US9766870B2 (en) | 2013-05-30 | 2017-09-19 | Microsoft Technology Licensing, Llc | Bundle package generation |
US20140359605A1 (en) | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Bundle package signing |
US20140357357A1 (en) | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Game bundle package |
US20140359606A1 (en) | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Bundle package retrieving |
US20140366015A1 (en) * | 2013-05-31 | 2014-12-11 | Openpeak Inc. | Method and system for combining multiple applications into a single binary file while maintaining per process sandboxing |
-
2013
- 2013-05-30 US US13/905,574 patent/US9323514B2/en active Active
- 2013-09-20 EP EP13773494.3A patent/EP3005097A1/en not_active Ceased
- 2013-09-20 CN CN201380077092.7A patent/CN105378661B/zh active Active
- 2013-09-20 WO PCT/US2013/060946 patent/WO2014193448A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542428A (zh) * | 2005-03-08 | 2009-09-23 | 微软公司 | 资源创作合并本体论 |
US20100088695A1 (en) * | 2008-10-03 | 2010-04-08 | Takashi Kakinari | System and method for localizing a server application using a client-side translator |
US20100262970A1 (en) * | 2009-04-10 | 2010-10-14 | Open Invention Network Llc | System and Method for Application Isolation |
CN102567094A (zh) * | 2010-12-21 | 2012-07-11 | 微软公司 | 标识多个资源实例的资源索引 |
CN103368851A (zh) * | 2013-07-22 | 2013-10-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
CN103593243A (zh) * | 2013-11-01 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种动态可扩展的增加虚拟机资源的方法 |
Non-Patent Citations (1)
Title |
---|
ANONYMOUS: "Resource Files", 《HTTP://MSDN.MICROSOFT.COM/EN-US/LIBRARY/CC296240(VS.95).ASPX》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110896538A (zh) * | 2018-09-13 | 2020-03-20 | 苹果公司 | 无线设备中使用多个安全证书的模式切换 |
CN110896538B (zh) * | 2018-09-13 | 2023-08-25 | 苹果公司 | 无线设备中使用多个安全证书的模式切换 |
CN109471643A (zh) * | 2018-11-19 | 2019-03-15 | 苏州好玩友网络科技有限公司 | 一种手机游戏安装包配置方法及应用其的游戏安装运行方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140359601A1 (en) | 2014-12-04 |
WO2014193448A1 (en) | 2014-12-04 |
EP3005097A1 (en) | 2016-04-13 |
CN105378661B (zh) | 2019-03-29 |
US9323514B2 (en) | 2016-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105378661A (zh) | 资源包索引 | |
US10015282B2 (en) | Context-based selective downloading of application resources | |
CN105378662A (zh) | 捆绑包生成 | |
EP3005160B1 (en) | Bundle package retrieving | |
US9665841B2 (en) | Cross-platform application framework | |
CN104598257B (zh) | 远程应用程序运行的方法和装置 | |
US10194288B2 (en) | Sticker distribution system for messaging apps | |
CN105378740A (zh) | 捆绑包签名 | |
US9892141B2 (en) | Extensibility of collectable data structures | |
US9258355B2 (en) | Decentralized cloud workflows | |
CN104704468A (zh) | Web应用程序的跨系统安装 | |
US20170169248A1 (en) | Enhanced management capabilities for collectable data structures | |
JP2022531339A (ja) | リソース構成方法、リソース構成装置、コンピューター機器、及びコンピュータープログラム | |
WO2014046694A1 (en) | Decentralized cloud workflows | |
CN113051336A (zh) | 可视化的数据操作方法、系统、设备和介质 | |
KR20230135333A (ko) | 아바타토큰정보를 이용한 오픈소스기반 메타버스 플랫폼 접속방법 | |
KR20230141057A (ko) | 창작 플랫폼 제공 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |