CN105378662B - 生成用于应用的捆绑包的方法以及相关联的计算机系统 - Google Patents

生成用于应用的捆绑包的方法以及相关联的计算机系统 Download PDF

Info

Publication number
CN105378662B
CN105378662B CN201380077106.5A CN201380077106A CN105378662B CN 105378662 B CN105378662 B CN 105378662B CN 201380077106 A CN201380077106 A CN 201380077106A CN 105378662 B CN105378662 B CN 105378662B
Authority
CN
China
Prior art keywords
packet
resource
bundle
app
application
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.)
Active
Application number
CN201380077106.5A
Other languages
English (en)
Other versions
CN105378662A (zh
Inventor
J.萨拉梅
E.富图恩
P.史密斯
J.M.希汉
S.利特
L.王
S.舍思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105378662A publication Critical patent/CN105378662A/zh
Application granted granted Critical
Publication of CN105378662B publication Critical patent/CN105378662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供一个或多个技术和/或系统用于生成捆绑包、对捆绑包进行数字签名、选择性分布捆绑包和/或标引从捆绑包取得的一个或多个资源包。即,捆绑包(例如应用或游戏捆绑包)包括一个或多个app包,其包括被配置为在各种计算环境(例如操作系统、处理器等)上执行的应用代码。捆绑包可包括一个或多个资源包,其包括用于提供应用的可选用户体验功能的补充数据(例如法语支持、高分辨率纹理、游戏手柄支持等)。以该方式,客户端设备可选择性下载捆绑包中可能相关的部分,这可减轻否则用于获取捆绑包的非必要部分的下载带宽、存储空间或资源(例如平板设备可仅仅下载低分辨率纹理)。

Description

生成用于应用的捆绑包的方法以及相关联的计算机系统
技术领域
本公开涉及计算技术,并且更具体地,涉及生成用于应用的捆绑包的方法以及相关联的计算机系统。
背景技术
很多用户利用应用来执行各种行为,例如检查电子邮件,播放视频游戏,共享照片,经由社交网络交互,银行业务和/或繁多的其它行为。因为用户可通过各种设备和/或计算环境执行这样的应用,应用开发者可创建支持多个处理器、操作系统、语言、显示比例、分辨率、图形卡等的应用部署包。因此,应用部署包可包括相对大量的数据,所有这些数据可能不被特定设备或计算环境使用。例如,用户可从app商店下载绘图应用到平板设备上。绘图应用可能包括可以与平板设备一起工作良好的中等分辨率纹理,但是还可包括打算用于较小智能电话的低分辨率纹理和打算用于个人计算机的高分辨率纹理。绘图应用可包括对10个语言的支持。平板设备可利用中等分辨率纹理以及由用户使用的语言,但是可能不利用低分辨率纹理、高分辨率纹理和其它9个语言。绘图应用的这样的未使用特征可能在绘图应用在平板设备上的下载、部署和执行期间不必要地消耗下载带宽、存储空间和计算资源。
发明内容
该发明内容被提供来介绍简化形式的一系列概念,其在下文在具体实施方式中被进一步描述。该发明内容非打算识别所主张的主题的关键因素或必要特征,其也不打算用于限制所主张的主题的范围。
除了别的之外,本文提供了用于生成用于应用的捆绑包、对捆绑包进行数字化签名;选择性取得捆绑包的部分;为与应用相关联的资源包标引;以及分布和安装用于游戏的游戏捆绑包的一个或多个系统和/或技术。
在生成用于应用的捆绑包的一些实施例中,一个或多个app包可被识别为包括在用于应用的捆绑包中。第一app包可包括第一应用代码(例如可执行二进制文件),其配置为在第一计算环境上执行,第一计算环境例如是特殊计算机架构(例如第一处理器架构、第二不同处理器架构等)和/或特殊操作系统(例如平板操作系统、桌面操作系统、基于云的操作系统等)。一个或多个资源包可被识别为包括在捆绑包内。资源包可包括用于应用的可选用户体验功能(例如分辨率纹理数据,语言数据,多媒体应用程序接口(API)版本数据,如可由现代资源技术(MRT)下载的区域相关数据和/或可被用于促进修改用户的体验等的任何其他资源、数据等)。例如,第一资源包可包括用于提供用于应用的第一用户体验功能的第一补充数据。捆绑包可被生成以包括一个或多个app包和一个或多个资源包。以该方式,app包和/或一个或多个资源包可被选择性下载用于应用的安装(例如平板设备可下载第一处理器架构app包和中等分辨率纹理资源包)。
在对捆绑包进行数字签名的一些实施例中,针对与应用相关联的捆绑包执行第一数字签名操作。捆绑包包括第一app包和第一资源包。在示例中,捆绑包包括一个或多个app包和/或一个或多个资源包。可执行数字签名操作(例如被执行为使用单个数字签名证书的单个签名操作)以将第一app包、第一资源包和捆绑包进行数字签名。例如,利用数字签名证书以第一app包签名对第一app包进行签名,利用数字签名证书以第一资源包签名对第一资源包进行签名,并且利用数字签名证书以捆绑包签名对捆绑包进行签名。因为数字签名操作使用相同数字签名证书(例如和/或通过单个签名操作)对第一app包、第一资源包和捆绑包进行数字操作签名,可通过第一app包签名、第一资源包签名和/或捆绑包签名(例如数字签名证书拥有者、授权链证明、密钥使用、签名有效日期、加密强度和/或时间戳)来共享一组签名特性。以该方式,捆绑包和/或其部分可由客户端设备选择性地和/或单独地下载,并且由客户端设备基于共享的签名属性以有效方式认证。
在与应用相关联的捆绑包的选择性取得部分的一些实施例中,可识别与用于安装的应用相关联的捆绑包。例如,捆绑包可以与可用于经由app商店下载的照片共享应用相关联。可确定用于在客户端设备上执行的应用的适用性上下文。例如,适用性上下文可指定分辨率、屏幕比例、一组感兴趣语言、多媒体API特征集、图形处理单元(GPU)或客户端设备的其它用户体验上下文(例如讲德语的用户的智能手机的适用性上下文可基于语言、硬件能力、显示能力等不同于讲英语的用户的桌面计算机的适用性上下文)。可基于第一app包包括对应于由适用性上下文指定的计算环境上下文(例如处理器架构、操作系统类型等)的应用代码来从捆绑包选择性取得第一app包。响应于适用性上下文对应于在捆绑包的一组资源包内的第一资源包,可从捆绑包选择性取得第一资源包(例如可针对智能电话取得德语资源包)。以该方式,可选择性取得对应于适用性上下文的一个或多个资源包,同时不取得不对应于适用性上下文的资源包(例如可针对智能电话不取得高分辨率游戏纹理,其如果被取得,可能不必要地消费下载带宽和/或要求由智能电话不可使用的应用的部分/特征的存储)。
在客户端设备上对用于应用的资源包标引的一些实施例中,在客户端设备上识别第一资源包和第二资源包。在示例中,第一资源包和第二资源包可已被选择性和/或单独下载用于应用,并且因此可被最初存储在客户端设备上,而不具有指定第一资源包和第二资源包可如何用于提供应用的定制用户体验的逻辑关系。第一资源包包括用于提供应用的第一可选用户体验功能的第一补充数据(例如用于提供社交网络app的德语用户界面体验的一个或多个德语文本串)。第二资源包包括用于提供应用的第二可选用户体验功能的第二补充数据(例如用于提供社交网络app的法语用户界面体验的一个或多个法语文本串)。
第一资源包的第一资源索引可描述第一资源包的第一资源数据(例如一个或多个德语串)和/或第一资源适用性数据(例如使用德语数据来显示用于讲德语用户的文本)。第二资源包的第二资源索引可描述第二资源包的第二资源数据(例如一个或多个法语串)和/或第二资源适用性数据(例如使用法语数据来显示用于讲法语用户的文本)。第一资源索引和第二资源索引可被合并到合并资源索引中。合并资源索引可描述在第一资源包和/或第二资源包内的个体资源,例如德语文本串和/或法语文本串。合并资源索引可被评估以选择性利用一个或多个资源用于应用的执行。在示例中,可在用于社交网络app的app包内建立对合并索引的引用。在使用app包的社交网络app的执行时,可使用该引用来查阅合并索引以识别哪些资源是可用的和/或是相关的以执行社交网络app(例如在第一资源包内的德语的欢迎消息文本串可以对于讲德语的当前用户的欢迎消息窗来说是相关的;当当前显示设定被设定为高对比度模式时,高对比度显示资源包内的高对比度用户界面元件可以是相关的;等等)。
在经由游戏捆绑包分布游戏的一些实施例中,可生成用于游戏的游戏捆绑包。游戏捆绑包可包括一个或多个核心游戏包。第一核心游戏包包括被配置为在第一计算环境(例如x86处理器)上执行的游戏代码(例如可执行二进制文件)。游戏捆绑包可包括一个或多个资源游戏包。第一资源游戏包可包括用于提供游戏的第一可选用户体验功能的第一补充硬件感知数据(例如纹理图像、地形数据、角色几何形状、和/或在特定显示质量下的其它游戏可视化数据)。一个或多个核心游戏包和/或一个或多个资源游戏包可以被暴露用于游戏的选择性下载和/或安装。以该方式,客户端设备可选择性下载某些资源游戏包,其可提供在客户端设备上的期望游戏体验(例如平板设备可下载中等质量纹理以保存下载带宽和/或存储空间,而PC可下载高质量纹理)。
为了上述和相关目的的完成,以下描述和附图陈述了某些说明性方面和实施方式。这些是指示其中可采用一个或多个方面的各个方式中的仅一些。根据当结合附图考虑的以下详细描述,本公开的其它方面、优点和新颖特性将变得清楚。
附图说明
图1是图示生成用于应用的捆绑包的示例性方法的流程图。
图2是图示用于生成捆绑包的示例性系统的部件框图。
图3是促进资源包建立交易的示例的图示。
图4是图示用于选择性分布捆绑包的部分的示例性系统的部件框图。
图5是图示对捆绑包进行数字签名的示例性方法的流程图。
图6是图示利用提取技术对捆绑包进行签名的示例性系统的部件框图。
图7是图示用于从新捆绑包建立签名捆绑包的示例性系统的部件框图。
图8是图示用于对原位捆绑包内的包进行数字签名的示例性系统的部件框图。
图9是图示用于分布签名的捆绑包和/或其内的签名包的示例性系统的部件框图。
图10是图示选择性取得与应用相关联的捆绑包的部分的示例性方法的流程图。
图11是图示用于选择性取得与应用相关联的捆绑包的部分的示例性系统的部件框图。
图12是图示用于选择性取得与应用相关联的捆绑包的部分的示例性系统的部件框图。
图13是图示对用于客户端设备上的应用的资源包进行标引的示例性方法的流程图。
图14是图示对用于客户端设备上的应用的资源包进行标引的示例性系统的部件框图。
图15是图示在应用的执行期间利用合并索引的示例性系统的部件框图。
图16是图示经由游戏捆绑包分布游戏的示例性方法的流程图。
图17是图示经由游戏捆绑包安装游戏的示例性方法的流程图。
图18是图示用于经由游戏捆绑包分布游戏的示例性系统的部件框图。
图19是示例性计算机可读介质的图示,其中可包括被配置为体现本文陈述的提议中的一个或多个的处理器可执行指令。
图20图示示例性计算环境,其中可实施一个或多个本文陈述的提议。
具体实施方式
现在参考附图描述所主张的主题,其中相同参考数字一般用于自始至终指代相同元件。在下面描述中,为了解释的目的,陈述若干具体细节,以便提供对所主张的主题的理解。然而,可能明显的是,所主张的主题可以在不具有这些具体细节的情况下实践。在其它实例中,以框图形式图示结构和设备,以便促进描述所主张的主题。
如本文提供的,可以选择性提供软件部件,例如资源包、app包等给(具有少量至不重复)最终用户机器,使得最终用户机器仅被提供有由最终用户机器使用的软件部件,而最终用户机器不必下载、存储和/或安装非必要软件部件。例如,最终用户机器,例如客户端设备,可包括宽泛的各种各样的软件和/或硬件特性(例如平板可包括不同于桌面游戏设备的处理器、操作系统、图像处理单元和/或各种特性)。为了提供在这样的客户端设备上的期望体验,很多app可定制用于相应客户端设备的应用资产(例如纹理、串、图像、用户界面元素和/或特定app的其它软件部件)。遗憾的是,这可能对于开发者和/或用户是成问题的,因为开发者可能花费大量时间和/或资源,建立用于这样的大量的各种客户端设备的独立安装包。替代地,开发者可建立包括所有应用资产的单个安装包,这可将负担放在用户和/或客户端设备上以下载和/或存储丰富的应用资产,其中仅一(例如小)部分应用资产被客户端设备利用。
相应地,如本文提供的,对于app的相应应用资产(例如在资源包和/或app包内的资产),开发者可识别可用于选择用于下载到客户端设备的软件部件(例如选择性下载的资源包和/或app包)的客户端设备的特性。在示例中,app包可包括可取决于客户端设备中的CPU的架构(例如x86、x64等)的app二进制和/或可执行文件。在另一示例中,图形资源包可包括可取决于客户端设备中的图形处理单元的级别或代(例如DX9、DX10或DX11)的纹理和/或着色器应用资产。在另一示例中,用户界面资源包可包括可取决于客户端设备的显示分辨率(例如监视器DPI,如96*1.0、*1.4或*1.8)的对话框和/或其它用户界面元件资产。在另一示例中,纹理资源包可包括可取决于客户端设备的语言的指令资产。
开发者可提交应用资产,并且可通过客户端设备的特性标注应用资产。软件分布系统可上载来自开发者的如此信息以由客户端设备取得。当安装发生在客户端设备上时,识别客户端设备的设备特性。安装者可安装匹配客户端设备的设备特性的一组应用资产(例如包括在一个或多个资源包内),并且可抑制安装不匹配的应用资产。以该方式,开发者可仅提供应用资产一次用于由客户端设备安装,并且用户可仅下载和/或安装将由客户端设备使用的在客户端设备上的应用资产。
图1的示例性方法100图示了生成用于应用的捆绑包的实施例。在102,方法开始。在104,可识别一个或多个app包,用于包括在用于应用的捆绑包内。例如第一app包可包括被配置为在第一计算环境(例如第一处理器类型、平板操作系统等)上执行的第一应用代码。第二app包可包括被配置为在第二计算环境(例如第二处理器类型、桌面操作系统等)上执行的第二应用代码等。以该方式,应用可基于一个或多个app包支持各种计算环境,例如计算机架构或操作系统。在示例中,app包可包括可被执行以在客户端设备上运行应用的核心版本的可执行二进制文件。因为,应用可支持应用的宽泛的各种各样可选用户体验功能,这样的功能可以与一个或多个app包分离,并且可以被暴露用于与应用代码分离的选择性和/或可选下载。以该方式,客户端设备可仅下载可与客户端设备或客户端设备的用户相关的可选功能(例如对用户的特殊语言的支持,用于游戏设备的高分辨率纹理,用于平板设备的低分辨率纹理等)。相应地,这样的可选用户体验功能可以通过资源包来提供。
在106,可识别一个或多个资源包,用于包括在捆绑包中。例如,第一资源包可包括用于提供应用的第一可选用户体验功能的第一补充数据(例如纹理数据、图标数据、以特定语言的串、多媒体API功能、处于特定分辨率的图像等);第二资源包可包括用于提供应用的第二可选用户体验功能的第二补充数据等。可认识到,资源包不限于本文提供的示例,并且资源包可包括宽泛的各种各样任一个或多个资源,例如可以与语言、显示功能、硬件功能、软件功能、用户界面功能和/或可用于定制用户体验的任何其他功能相关(例如可由现代资源技术加载的任何数据等)。在示例中,资源包可包括应用的可选语言用户体验功能。在另一示例中,资源包可包括可针对用户(例如优选用户输入模式、高对比度设置、用户的位置等)定制的可选用户体验功能。在另一示例中,资源包可包括应用的可选显示质量用户体验功能(例如分辨率数据、屏幕比例数据、多媒体API数据等)。在另一示例中,资源包可包括可取决于客户端设备的硬件能力的可选硬件感知功能(例如包括相机的客户端设备的图像拍摄功能,包括麦克风或耳机的客户端设备的音频功能,包括无线外设的客户端设备的无线功能等)。在另一示例中,资源包包括与多个用户体验功能相关联的内容(例如高分辨率德语图像;利用DX9功能集的高对比度交互用户界面元件;等)。
在一些实施例中,资源包可以针对应用被自动生成。例如,app包可被剖析以从第一app包识别第一组可选数据(例如应用可以原生提供英语字符串,但还可包括法语字符串作为可选语言支持)。第一组可选数据可从第一app包提取。可基于第一组可选数据生成资源包,例如法语资源包。在示例中,资源包(例如自动生成的或不是)可包括一种类型的多个实例(例如英语资源包,美国英语资源包和/或英国英语资源包等)。
在108,可生成捆绑包以包括一个或多个app包和/或一个或多个资源包。在示例中,捆绑包、一个或多个app包和/或一个或多个资源包可被利用数字签名证书进行数字签名(例如在单个数字签名操作期间),使得包可共享一组签名属性(例如数字签名证书拥有者、授权的链证明、密钥使用、签名验证数据、签名加密强度、签名时间戳等),这可允许客户端设备有效验证包,而不管包是否是选择性和/或单独下载的。在示例中,可生成包含在捆绑包内的捆绑清单。捆绑清单可包括对一个或多个app包的一个或多个app描述和/或对一个或多个资源包的一个或多个资源描述。在示例中,捆绑包可被更新以添加、移除和/或修改其中的app包和/或资源包。例如,捆绑更新可以被接收用于捆绑包。捆绑更新可包括用于包括在捆绑包内的新资源包。捆绑包可被更新以包括新资源包,并且捆绑清单可被更新以指定新资源包可用于可选取得。在其中捆绑包通过app商店证明过程(例如自动和/或手动测试过程以验证正确功能和/或与app商店兼容)证明的示例中,与重新证明捆绑包相反,可仅证明新资源包。
捆绑包可被暴露用于经由app商店选择性下载。例如,一个或多个资源包可被暴露作为用于应用的可选下载。即,app包可被下载用于在客户端设备上的应用的安装,并且一个或多个资源包可被可选下载或部署以提供应用的可选用户体验功能(例如对法语的支持)。相应地,可从客户端设备接收捆绑获取请求。在示例中,捆绑获取请求可指定第一app包。第一app包可被选择性提供到客户端设备用于安装。在示例中,捆绑获取请求可指定捆绑包内的第二资源包。第二资源包(而非第一资源包)可被选择性地从捆绑包提供到客户端设备用于应用的安装。在另一示例中,捆绑获取请求指定包括在捆绑包内的资源包的子集。资源包的子集可以指定捆绑包内的一个或多个资源包中的至少一些但是少于所有。以该方式,可从捆绑包选择性提供资源包的子集给客户端设备用于应用的安装。在110,方法结束。
图2图示生成捆绑包208的系统200的示例。系统200可包括捆绑生成部件206。捆绑生成部件206可配置为识别用于应用的一个或多个app包(例如由绘图应用的app开发者提供的app包数据202)。捆绑生成部件206可配置为识别用于应用的一个或多个资源包(例如由app开发者或另一来源,例如资源包开发者提供的资源包数据204)。在示例中,捆绑生成部件206可剖析app包以识别可被提取和/或用于生成资源包的可选数据。例如,app包可被剖析以识别可提供绘图应用的可选显示功能的多媒体API版本2.2的特征集,并且因此可针对该特征集建立资源包。
捆绑生成部件206可生成用于绘图应用的捆绑包208以包括一个或多个app包和/或一个或多个资源包。例如捆绑包208可包括第一app包210(其包括被配置为在第一处理器架构上执行的应用代码)、第二app包212(其包括被配置为在第二处理器架构上执行的应用代码)、第三app包214(其包括被配置为在云操作系统上执行的应用代码)、和/或被配置为在例如各种计算机架构和/或操作系统上执行的其它app包。捆绑包208可包括包含德语字符串的第一资源包216,包含法语字符串的第二资源包218、包含处于1440×900(例如或中等质量像素密度)的中等质量分辨率图像的第三资源包220、包含处于1920×1080(高质量像素密度)的高质量分辨率图像的第四资源包222、包含多媒体API版本2.2的特征集的第五资源包224(例如第五资源包224可基于从app包提取的可选显示功能自动生成)、和/或包含用于提供绘图应用的可选用户体验功能的补充数据的其它资源包。捆绑生成部件206可生成捆绑清单226,其描述可经由捆绑包208获得的一个或多个app包和/或一个或多个资源包。以该方式,捆绑包208可被暴露用于捆绑包208或其中部分的选择性下载,用于绘图应用的安装(例如图4)。
图3图示了促进资源包建立交易的示例300。即,应用的app开发者(例如绘图应用的绘图应用开发者302)可建立app包,其包括被配置为执行以英语的绘图应用的应用代码。App包可通过app商店证明过程来证明,并且因此可被捆绑到捆绑包中并且通过app商店被暴露以便下载。在示例中,绘图应用开发者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可包括app分布部件402,其被配置为暴露一个或多个app包(例如第一app包210、第二app包212、第三app包214等)和/或一个或多个资源包(例如用于德语字符串的第一资源包216、用于法语字符串的第二资源包218、用于1440×900的中等分辨率纹理的第三资源包、用于1920×1080的高分辨率纹理的第四资源包,用于多媒体API版本2.2的第五资源包等),用于绘图应用在客户端设备406上的可选择下载和/或部署。例如,app分布部件402可暴露捆绑清单226给客户端设备,例如原生支持1440×900分辨率并且由讲德语用户使用的平板设备。捆绑清单226可描述捆绑包208,例如一个或多个app包和/或一个或多个资源包。
在示例中,从客户端设备406接收捆绑获取请求。捆绑获取请求可指定第二app包212,因为客户端设备406具有可使用第二app包212执行绘图应用的第二处理器架构。捆绑获取请求可指定第一资源包216,因为用户讲德语。在示例中,捆绑获取请求不指定第二资源包218,从而客户端设备406不消费下载带宽、存储空间和/或计算资源(其否则将被用于下载和部署用于用户不讲的法语的第二资源包218)。捆绑获取请求可指定第三资源包220,因为客户端设备406原生支持1440×900分辨率。在示例中,捆绑获取请求不指定第四资源包222,从而客户端设备406不消费下载带宽、存储空间和/或计算资源(其否则将被用于下载和部署用于客户端设备406不支持的分辨率的第四资源包222)。以该方式,app分布部件402从捆绑包208选择性提供404第二app包212、第一资源包216和/或第三资源包220给客户端设备406用于绘图应用的安装。
图5的示例性方法500图示了对捆绑包进行数字签名的实施例。在502,方法开始。用于应用的捆绑包可包括一个或多个app包和/或一个或多个资源包。App包可包括可被执行以在特定计算环境中运行应用的应用代码(例如第一app包可包括可由移动操作系统和/或第二处理器架构执行的可执行二进制文件)。资源包可包括被配置为提供应用的可选用户体验功能的补充代码。在示例中,第一资源包可包括德语的字符串。在另一示例中,显示资源包可包括分辨率数据、屏幕比例数据、多媒体API版本数据和/或可提供应用的定制视觉体验的其它数据。因为捆绑包、一个或多个app包和/或一个或多个资源包可由客户端设备选择性和/或独立下载以用于安装(例如客户端设备可下载第一app包和包含法语字符串的第二资源包,但是不下载第一资源包,因为客户端设备的用户不讲德语),可执行数字签名操作,其利用具有类似签名属性(例如数字签名证书拥有者、授权链证明、密钥使用、签名有效日期、签名加密强度和/或签名时间戳等)的数字签名来对捆绑包、一个或多个app包和/或一个或多个资源包进行签名。数字签名可由客户端设备用于验证捆绑包、app包和/或资源包的来源和/或其中的内容,以用于应用的安装。
相应地,在504,针对捆绑包执行第一数字签名操作。在示例中,利用数字签名证书经由单个签名操作执行第一数字签名操作,(例如可在单个签名操作期间使用相同数字签名证书来签名捆绑包、app包和/或资源包,从而这样的包包括类似签名属性,其可由客户端设备有效验证,而不管这样的包是否是分离或单独下载的)。第一数字签名操作可包括在506,利用数字签名证书以第一app包签名对第一app包进行数字签名,以建立签名的第一app包。第一数字签名操作可包括在508,利用数字签名证书以第一资源包签名对第一资源包进行数字签名,以建立签名的第一资源包。在510,建立被利用签名证书签名有捆绑包签名的签名捆绑包(例如可签名初始包括app包和/或资源包的捆绑包;可从签名app包和签名资源包建立新捆绑包并且可对新捆绑包进行签名;等)。可由第一app包签名、第一资源包签名和捆绑包签名共享一组签名属性。
在对第一app包和第一资源包进行签名的一些实施例中,可从捆绑包提取第一app包和第一资源包作为提取的第一app包和提取的第一资源包。提取的第一app包可被数字签名以建立签名的提取的第一app包。提取的第一资源包可被数字签名以建立签名的提取的第一资源包。在示例中,签名提取的第一app包被返回到捆绑包作为签名的第一app包,并且签名提取的第一资源包被返回到捆绑包作为签名的第一资源包。以该方式,可对捆绑包进行签名以建立签名的捆绑包。在另一方式中,利用签名的提取的第一app包作为签名的第一app包并且将签名的提取的第一资源包作为签名的第一资源包,来建立新捆绑包。可利用捆绑包签名对新捆绑包进行签名以建立签名的捆绑包。在另一示例中,第一app包和/或第一资源包被原位签名,而第一app包和/或第一资源包被包括在捆绑包中。
在对一个或多个app包和/或一个或多个资源包进行签名的一些实施例中,可使用数字签名证书对一个或多个app包和/或一个或多个资源包进行顺序签名。在对一个或多个app包和/或一个或多个资源包进行签名的一些实施例中,可对一个或多个app包和/或一个或多个资源包进行并行签名。在示例中,第一app包和第一资源包可被并行签名。在另一实施例中,第一app包和第二app包可被并行签名。在另一实施例中,第一资源包和第二资源包可被并行签名。
签名的捆绑包可被暴露用于经由app商店下载。一个或多个签名的资源包可被暴露作为用于应用的可选下载。在其中签名捆绑包包括签名的第一资源包和签名的第二资源包的示例中,可从客户端设备接收捆绑获取请求。捆绑获取请求可指定签名的第一app包和签名的第一资源包。签名的第一app包和签名的第一资源包(而不是签名的第二资源包)可被选择性提供给客户端设备用于应用的签名验证和安装。在512,方法结束。
图6图示用于利用提取技术对捆绑包进行签名的系统600的示例。系统600包括数字签名部件614。数字签名部件614可被配置为利用数字签名证书616执行数字签名操作(例如单个签名操作)以对捆绑包(例如在被数字签名之前的用于视频编辑器应用的捆绑包602a)和/或其中的包进行数字签名。例如,数字签名部件614可从捆绑包602a提取612第一app包604a、第二app包606a、第一资源包608a和第二资源包610a。数字签名部件614可利用数字签名证书616以第一app包签名620对第一app包604a进行数字签名,以建立签名的提取的第一app包。数字签名部件614可利用数字签名证书616以第二app包签名622对第二app包606a进行数字签名,以建立签名的提取的第二app包。数字签名部件614可利用数字签名证书616以第一资源包签名624对第一资源包608a进行数字签名,以建立签名的提取的第一资源包。数字签名部件614可利用数字签名证书616以第二资源包签名626对第二资源包610a进行数字签名,以建立签名的提取的第二资源包。在示例中,包可被顺序或并行签名。
在示例中,数字签名部件614可返回628签名的提取的包到捆绑包602a,并且可利用数字签名证书616以捆绑包签名对捆绑包602a进行签名以建立包括签名的第一app包604b、签名的第二app包606b、签名的第一资源包608b和签名的第二资源包610b的签名的捆绑包602b。一组签名属性(例如数字签名证书拥有者、授权链证明、密钥使用、签名有效日期、签名加密强度和/或签名时间戳等)可由捆绑包签名、第一app包签名620、第二app包签名622、第一资源包签名624和/或第二资源包签名626共享。以该方式,签名的捆绑包602b和/或其中的签名包由客户端设备以高效方式选择性和/或单独下载和验证,因为该组签名属性由包签名共享。
图7图示了用于从新捆绑包建立签名捆绑包704的系统700的示例。系统700包括数字签名部件614。数字签名部件614可被配置为利用数字签名证书616执行数字签名操作(例如单个签名操作)以对捆绑包(例如在被数字签名之前的用于视频编辑器应用的捆绑包602a)和/或其中的包进行数字签名。例如,数字签名部件614可从捆绑包602a提取612第一app包604a、第二app包606a、第一资源包608a和第二资源包610a。数字签名部件614可利用数字签名证书616以第一app包签名620对第一app包604a进行数字签名,以建立签名的提取的第一app包。数字签名部件614可利用数字签名证书616以第二app包签名622对第二app包606a进行数字签名,以建立签名的提取的第二app包。数字签名部件614可利用数字签名证书616以第一资源包签名624对第一资源包608a进行数字签名,以建立签名的提取的第一资源包。数字签名部件614可利用数字签名证书616以第二资源包签名626对第二资源包610a进行数字签名,以建立签名的提取的第二资源包。在示例中,包可被顺序或并行签名。
在示例中,数字签名部件614可利用签名的提取包建立702新捆绑包。新捆绑包可利用数字签名证书616以捆绑包签名进行签名,以建立签名的捆绑包704。以该方式,签名的捆绑包704可包括签名的第一app包604b(例如对应于被签名有第一app签名620的第一app包604a)、签名的第二app包606b(例如对应于被签名有第二app包签名622的第二app包606a)、签名的第一资源包608b(例如对应于被签名有第一资源包签名624的第一资源包608a)、和签名的第二资源包610b(例如对应于被签名有第二资源包签名626的第二资源包610a)。在示例中,签名的捆绑包704可替换捆绑包602a(例如可删除捆绑包602a)。一组签名属性(例如数字签名证书拥有者、授权链证明、密钥使用、签名有效日期、签名加密强度、签名时间戳等)可由捆绑包签名、第一app包签名620、第二app包签名622、第一资源包签名624和/或第二资源包签名626共享。以该方式,签名的捆绑包704和/或其中的签名包由客户端设备以高效方式选择性和/或单独下载和验证,因为该组签名属性由包签名共享。
图8图示了对原位捆绑包802(例如用于视频编辑器应用)中的包进行数字签名的系统800的示例。系统800可包括数字签名部件814。数字签名部件814可配置为利用数字签名证书816原位以第一app包签名对第一app包804进行签名,以第二app包签名对第二app包806进行签名,以第一资源包签名对第一资源包808进行签名,并且以第二资源包签名对第二资源包810进行签名,同时这样的包被包括在捆绑包802中。数字签名部件814可利用数字签名证书816以捆绑包签名对捆绑包802进行签名,以建立签名的捆绑包。因为数字签名部件814可使用数字签名证书816在数字签名操作812期间对包进行签名,可由包签名共享一组签名属性。
图9图示了用于分布签名的捆绑包924和/或其中的签名包的系统900的示例。签名的捆绑包924可包括签名的第一app包902、签名的第二app包904、签名的第一资源包906、和签名的第二资源包908。在数字签名操作期间,数字签名证书可已被用于以捆绑包签名对签名的捆绑包924进行签名,以第一app包签名910对签名的第一app包902进行签名,以第二app包签名912对签名的第二app包904进行签名,以第一资源包签名914对签名的第一资源包906进行签名,并且以第二资源包签名916对签名的第二资源包908进行签名。
系统900可包括app分布部件918。App分布部件918可被配置为暴露签名的捆绑包924和/或其中的签名包以用于由客户端设备(例如客户端设备922)选择性和/或单独下载。例如,可从客户端设备922接收捆绑获取请求。捆绑获取请求可指定签名的第一app包902和签名的第二资源包908。App分布部件918可发送920签名的第一app包902、签名的第二资源包908和签名926(例如捆绑包签名、第一app包签名910和/或第二资源包签名916)到客户端设备922,用于由签名捆绑包924表示的应用的验证和/或安装。
图10的示例性方法1000图示选择性取得与应用相关联的捆绑包的部分的实施例。在1002,方法开始。在1004,可识别与应用相关联的捆绑包用于安装(例如app商店可暴露捆绑包和/或其中的部分用于选择性和/或单独下载)。捆绑包可包括包含被配置为在各种计算环境例如操作系统或计算机架构上执行的应用代码的一个或多个app包(例如第一app包可包括用于可在移动操作系统上执行的绘图应用的可执行二进制文件)和/或包含用于提供可选用户体验功能的补充数据的一个或多个资源包。因为客户端设备可包括各种计算环境,一个或多个app包可被暴露用于选择性下载(例如游戏计算设备可下载包括基于游戏的操作系统的第二app包,与第一app包相反)。因为一个或多个资源包可包括用于提供可能或可能不与客户端设备或用户相关的可选用户体验功能的补充数据,一个或多个资源包可被暴露用于选择性和/或可选下载(例如游戏计算设备可下载高分辨率纹理资源包,但是可抑制下载低分辨率纹理资源包)。在示例中,捆绑包、一个或多个app包和/或一个或多个资源包可已利用数字签名证书进行数字签名(例如在单个数字签名操作期间),使得包可共享一组签名属性(例如数字签名证书拥有者、授权的链证明、密钥使用、签名验证数据、签名加密强度、签名时间戳等),其可允许客户端设备高效验证包,而不管包是否被选择性和/或单独下载。
在1006,可确定将在客户端设备上执行的应用的适用性上下文。适用性上下文可对应于与客户端设备和/或客户端设备的用户相关联的各种隐含和/或明确的信息。在示例中,适用性上下文可对应于客户端设备的分辨率、客户端设备的屏幕比例、客户端设备的用户体验上下文(例如用户可指定高对比度显示模式,用户可安装游戏手柄外设,用户可安装麦克风设备驱动器,用户的位置,和/或与用户相关联的各种其它偏好和/或上下文方面)、客户端设备上可用的多媒体API的特征集(例如特征集)、客户端设备的图形处理单元、客户端设备的视觉质量上下文、客户端设备的用户使用的语言、和/或可用于识别可与用户和/或客户端设备相关的用户体验功能的大量其他信息。在另一示例中,客户端设备可被评估为隐含识别适用性上下文(例如用户可能当前位于法国,因此可暗示法语上下文)。在另一示例中,可将客户端设备的用户指定设置确定为适用性上下文(例如由用户设定的高对比度显示模式)。在另一示例中,可应用模糊匹配逻辑到与客户端设备相关联的信息,以生成关于客户端设备或用户的假定作为适用性上下文(例如由用户安装的游戏图形卡和游戏外设可用于确定用户期望高分辨率纹理)。在多个用户可利用客户端设备的另一示例中,多个用户可被列举,并且可基于多个用户确定适用性上下文(例如第一用户的德语和第二用户的法语)。
在1008,可基于第一app包包括对应于由适用性上下文指定的计算环境上下文(例如操作系统、计算机架构等)的应用代码来选择性取得第一app包。在示例中,可验证第一app包的第一app包签名(例如app包的app开发者的标识和/或第一app包仍未被修改的验证)。在1010,响应于与包括在捆绑包内的一个或多个资源包中的第一资源包对应的适用性上下文,从捆绑包选择性取得第一资源包。在示例中,可验证第一资源包的第一资源包签名(例如第一资源包的开发者的标识和/或第一资源包仍未被修改的验证)。因为捆绑包可包括不对应于适用性上下文的资源包,所以不从捆绑包取得这样的资源包。例如,用于智能电话的适用性上下文可指定用于智能电话的相对低分辨率,因此可取得用于智能电话的低分辨率图像资源包而不是高分辨率图像资源包。
在示例中,适用性上下文可指定澳大利亚英语。响应于捆绑包不包括用于澳大利亚英语的语言资源包,可识别在语言类似性阈值之上对应于澳大利亚英语的第二语言的第二语言资源包(例如可将英国英语资源包识别为比美国英语资源包更类似于澳大利亚英语资源包)。可选择性取得第二语言资源包,例如英国英语资源包。以该方式,可选择性取得在类似性阈值(例如“次好”选择)之上与适用性上下文相关的资源包(例如在阈值之上对应于适用性上下文的视觉质量上下文的视觉资源包)。客户端设备可利用从捆绑包取得的第一app包、第一资源包和/或其它包以便安装应用。
在示例中,可识别对捆绑包的更新。更新可对应于将新资源包添加到捆绑包内的资源包组。响应于对应于新资源包(例如澳大利亚英语资源包)的适用性上下文,可从捆绑包选择性取得新资源包。以该方式,客户端设备可仅获得与客户端设备和/或用户相关的app包和/或资源包。在1012,方法结束。
图11图示选择性取得与应用相关联的捆绑包1110的部分的系统1100的示例。在示例中,捆绑包1110与绘图应用相关联。捆绑包1110包括一个或多个app包和/或一个或多个资源包。例如捆绑包1110包括用于第一处理器类型的第一app包1112和用于第二处理器类型的第二app包1114。捆绑包包括用于美国英语的第一资源包、用于英国英语的第二资源包1118、用于高分辨率图标的第三资源包1120和用于中等分辨率图标的第四资源包1122。一个或多个资源包可被暴露以用于绘图应用的选择性和/或可选下载。即,资源包可包括用于提供应用的可选用户体验功能的补充数据。
在示例中,客户端设备1102,例如平板设备可识别用于绘图应用的捆绑包1110。客户端设备1102可获得描述在捆绑包1110内的一个或多个app包和/或一个或多个资源包的捆绑清单1124。系统1100可包括被配置为确定客户端设备1102的适用性上下文1106的适用性部件1104。例如,适用性上下文1106可指定客户端设备1102具有第二处理器类型,客户端设备1102的用户讲澳大利亚英语,并且客户端设备1102支持中等到低分辨率图形。系统1100可包括被配置为取得1126对应于适用性上下文1106的app包和/或一个或多个资源包的取得部件1108。取得部件1108可抑制取得不对应于适用性上下文1106(即不对应超过类似性阈值)的app包和/或资源包。在示例中,取得部件1108可取得1126第二app包1114、第二资源包1118(例如,因为英国英语可对应于相似性阈值之上的澳大利亚英语上下文,而美国英语则不)、第四资源包1122(例如,因为中等分辨率图标可对应于相似性阈值之上的中等至低分辨率上下文,而高分辨率图标则不),因为这样的包对应于适用性上下文1106。这样,客户端设备1102可利用选择性下载的包安装绘图应用。
图12图示了用于选择性取得与应用相关联的捆绑包1110的部分的系统1200的示例。在示例中,捆绑包1110与绘图应用相关联。捆绑包1110包括一个或多个app包和/或一个或多个资源包。例如,捆绑包1100包括第一处理器类型的第一app包1112以及第二处理器类型的第二app包1114。捆绑包1110包括用于美国英语的第一资源包1116、用于英国英语的第二资源包1118、用于高分辨率图标的第三资源包1120、以及用于中等分辨率图标的第四资源包1122。所述一个或多个资源包可被暴露用于绘图应用的选择性和/或可选下载。即,资源包可包括用于提供应用的可选用户体验功能的补充数据。
在示例中,客户端设备1202(诸如游戏桌面电脑)可以识别绘图应用的捆绑包1110。客户端设备1202可获得描述捆绑包1110内所述一个或多个app包和/或一个或多个资源包的捆绑清单1124。系统1200可包括被配置成确定用于客户端设备1202的适用性上下文1206的适用性部件1204。例如,适用性上下文1206可指定客户端设备1202具有第一处理器类型、客户端设备1102的用户讲英语、以及客户端设备1202支持高分辨率图形。系统1200可包括被配置成取得1210对应于适用性上下文1206的app包和/或一个或多个资源包的取得部件1208。取得部件1208可抑制取得不对应于适用性上下文1206的app包和/或资源包。在示例中,取得部件1208可取得1210第一app包1112、第一资源包1116和第三资源包1120,因为这样的包对应于适用性上下文1206。以该方式,客户端设备1202可使用选择性下载的包安装绘图应用。
图13的示例性方法1300图示了对客户端设备上应用的包(例如资源包和/或app包)内的资源进行标引的实施例。在1302,方法开始。在示例中,客户端设备可已经选择性取得与应用相关联的app包和一个或多个资源包。在示例中,可验证app包的第一app包签名(例如app包的app开发者的标识和/或app包未被修改的验证)和/或可验证一个或多个资源包的资源签名(例如资源包的开发者的标识和/或资源包未被修改的验证)。因为一个或多个资源包可已被单独下载和/或存储在客户端设备上,可有利的是在运行时期间跟踪用于由应用利用的这样的资源包。相应地,在1304,可在客户端设备上识别例如第一资源包和第二资源包。第一资源包可包括用于提供应用的第一可选用户体验功能的第一补充数据(例如在高分辨率图标资源包内的一个或多个高分辨率图标)。第二资源包可包括用于提供应用的第二可选用户体验功能的第二补充数据(例如在多媒体API版本11的特征集内的一个或多个多媒体特征资源)。第一资源包可包括描述第一资源数据(例如第一资源包包括一个或多个高分辨率图标的标识)和/或第一资源适用性数据(例如高分辨率图标数据当在能够显示高分辨率图标数据的客户端设备上执行时应用到应用的标识)的第一资源索引。第二资源包可包括描述第二资源数据(例如一个或多个多媒体特征资源的描述)和/或第一资源适用性数据(例如当客户端设备具有安装的多媒体API版本11时特征集可被使用的标识)的第二资源索引。
在示例中,资源包可包括用于应用的资源的子集(例如加拿大英语资源包可包括一些加拿大文本串,例如颜色和偏爱,而中性或美国英语资源包包括多个用于其他文字的文本串)。在示例中,单个资源包可包括个体资源的几个变型(例如德语图像的高对比度版本,德语图像的低对比度版本,等)。
在1306,第一资源包的第一资源索引可与第二资源包的第二资源索引合并以建立合并的资源索引。将认识到,合并的资源索引通常而不是总是或排他地是客户端侧,而捆绑清单通常但不是总是或排他地是服务器或开发者侧。附加地,合并的资源索引通常但不是总是用于确定在可用(例如本地)资源包内的哪些个体资源可以在应用的执行期间使用,而捆绑清单通常但不是总是用于确定哪些app包和/或哪些资源包被下载到客户端设备。在示例中,可将与应用相关联的资源包的多个资源索引合并到合并的资源索引中,使得合并的资源索引可描述可当执行应用时装载的资源包内的个体资源(例如可在合并资源索引中执行多维查找以识别一组资源,例如文本串、图像、图标等用于应用的执行)。例如,第三资源包可从app商店取得。第三资源包可包括用于提供应用的第三可选用户体验功能的第三补充数据(例如在德语资源包内的一个或多个德语文本串)。在示例中,在将第三资源包部署到客户端设备期间,可将第三资源包的第三资源索引合并到合并的资源索引内。在另一示例中,第三资源索引可在应用的最初执行期间被合并到合并的资源索引内。在示例中,合并的资源索引可包括对资源包内的资源的一个或多个引用。在另一示例中,对合并的资源索引的引用可在用于应用的app包内建立。App包可包括用于应用的执行的应用代码,使得可使用该引用来在应用的执行期间访问合并的资源索引,从而可选择性使用来自一个或多个资源包的个体资源。
在示例中,可识别与应用相关联的app包。App包可包括被配置用于应用的执行的应用代码。App包的资源索引(例如描述由app包提供的一个或多个资源)可被合并到合并索引中。
在1308,可利用合并的资源索引来选择性使用来自一个或多个包(例如资源包和/或app包)的使用资源,用于应用的执行(例如高分辨率欢迎屏幕图像资源、德语欢迎文本串等)。在示例中,响应于利用app包在运行时状态执行应用,可评估合并的资源索引来识别用于提供应用的可选用户体验功能的一组资源。以该方式,应用可被调用以利用该组资源包和/或其中(例如和/或在app包内)的一个或多个资源。在利用合并资源索引的示例中,可在合并的资源索引内执行多维查找以识别适当组的资源,其可被包括在一个或多个资源包内。例如,合并的资源索引可包括语言维度、分辨率维度、屏幕比例维度、视觉质量维度、多媒体API维度、补充功能维度和/或可被评估以识别可与客户端设备上的应用执行相关的资源的各种其它维度(例如法语文本串资源和德语文本串资源可以是可用的并且法语文本串资源可以相对于德语文本串资源被优先选择,因为客户端设备的当前用户偏好法语和/或客户端设备当前位于法国)。在示例中,该组资源可跨越用于应用的所有或少于所有的可用资源包(例如基于该组资源与客户端设备和/或用户相关,该组资源可被包括在经由合并资源索引识别的资源包的子集中,例如在阈值对应性之上对应于客户端设备的显示质量用户体验和/或用户语言的资源)。在1310,方法结束。
在标引用于客户端设备上的应用的资源的一些实施例中,资源包和app包可在客户端设备上被识别。资源包可包括用于提供应用的可选用户体验功能的补充数据。App包可包括被配置用于应用的执行的应用代码(例如应用二进制文件)。用于资源包的第一资源索引(例如描述资源包内的个体资源)可与用于app包的第二资源包(例如描述app包内的个体资源)合并以建立合并资源索引。可利用合并资源索引来选择性利用在资源包和/或app包内的一个或多个资源用于应用的执行。
图14图示了标引用于在客户端设备1402上的应用的包(例如资源包和/或app包)内的资源的系统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可建立用于应用的app包1416内的引用。以该方式,在利用app包1416的应用的执行期间,可使用引用来访问合并资源索引1418,以便识别(例如利用其中维度对应于各种用户体验功能(例如语言或显示质量)的多维查找)一个或多个资源以由应用使用。
图15图示了用于在应用1506的执行期间利用合并索引1418的系统1500的示例。系统1500可包括资源利用部件1502。资源利用部件1502可配置为检测利用app包在运行时状态中执行的应用1506。响应于应用1506被执行,资源利用部件1502可评估合并资源索引1418(例如图14的合并资源索引1418)以识别可用于提供应用的可选用户体验功能的一组资源。例如,可在合并资源索引1418内执行对应于语言维度、分辨率维度、图标分辨率维度和/或其它维度的多维查找。例如,该组资源可包括在用于德语的第一资源包内的德语文本串资源(例如基于由当前用户讲的语言)、用于高分辨率的第四资源包内的高分辨率图像资源(例如基于客户端设备1420的屏幕类型)和用于高分辨率图标的第六资源包内的高分辨率图标资源(例如基于客户端设备1420的图形卡)。以该方式,可取得1504德语文本串资源、高分辨率图像资源和高分辨率图标资源以便由应用1506使用。
由图16的示例性方法1600图示经由游戏捆绑包分布游戏的实施例。在1602,方法开始。在1604,可生成用于游戏的游戏捆绑包。游戏捆绑包可包括一个或多个核心游戏包(例如可被执行以玩游戏的核心体验的可执行二进制文件)。在示例中,游戏捆绑包可包括第一核心游戏包,其包括被配置为在第一计算环境(例如第一处理器类型、特定操作系统等)上执行的游戏代码。在另一示例中,游戏捆绑包可包括第二核心游戏包,其包括被配置为在第二计算环境(例如第二处理器类型、移动操作系统等)上执行的游戏代码。
游戏捆绑包可包括一个或多个资源游戏包,其提供游戏的可选用户体验功能。在示例中,游戏捆绑包可包括第一资源游戏包,其包括用于提供游戏的第一可选用户体验功能的第一补充硬件感知数据。例如,第一补充硬件感知数据可对应于第一显示质量用户体验(例如第一补充硬件感知数据可包括纹理图像、地形数据、角色几何形状和/或游戏可视化数据,其处于可由诸如游戏图形处理单元或多媒体API(如)的游戏特征集之类的有图形能力硬件支持的相对高显示质量下)。在另一示例中,游戏捆绑包可包括第二资源游戏包,其包括用于提供游戏的第二可选用户体验功能的第二补充硬件感知数据。例如,第二补充硬件感知数据可对应于第二显示质量用户体验(例如第二补充硬件感知数据可包括纹理图像、地形数据、角色几何形状和/或游戏可视化数据,其处于可由诸如平板图形处理单元或多媒体API(如)的移动特征集之类的移动设备硬件支持的相对低显示质量下)。在示例中,可利用数字签名证书对游戏捆绑包、一个或多个核心游戏包和/或一个或多个资源游戏包进行数字签名(例如在单个数字签名操作期间),使得包可共享一组签名属性(例如数字签名证书拥有者、授权的链证明、密钥使用、签名验证数据、签名加密强度、签名时间戳等),这可允许客户端设备有效地对包进行验证,而不管包是否是选择性和/或独立下载的。
在示例中,可接收游戏捆绑包的游戏捆绑更新(例如资源包的添加、移除或修改)。游戏捆绑更新可包括新资源游戏包以便包括在游戏捆绑包内。游戏捆绑包可被更新以包括新资源游戏包。在游戏捆绑包通过app商店证明过程证明的示例中,可证明仅新的资源游戏包,而不是必须重新证明整个游戏捆绑包。
在1606,一个或多个核心游戏包和/或一个或多个资源游戏包可被暴露用于游戏的选择性下载。在示例中,可从客户端设备接收游戏捆绑获取请求。游戏捆绑获取请求可指定第一核心游戏包和资源游戏包的子集(例如游戏捆绑包内的一个或多个资源游戏包的至少一些而少于所有)。以该方式,第一核心游戏包和资源游戏包的子集可被选择性提供到客户端设备用于游戏安装。在1608,方法结束。
图17的示例性方法1700图示经由游戏捆绑包安装游戏的实施例。在1702,方法开始。在1704,可识别经由app商店提供的游戏的游戏捆绑包。游戏捆绑包可包括一个或多个核心游戏包和/或一个或多个资源游戏包。一个或多个资源游戏包可被暴露作为提供游戏的可选用户体验功能的可选下载(例如支持游戏手柄、支持多媒体API版本、高分辨率纹理、支持聊天客户端、支持游戏耳机或其它外设等)。在1706,可发送捆绑获取请求到app商店以访问游戏捆绑包。捆绑获取请求可指定第一核心游戏包和资源游戏包的子集(例如资源游戏包的子集可包括游戏捆绑包内的一个或多个资源游戏包的至少一些而少于所有)。在示例中,资源游戏包的子集可基于例如客户端设备的硬件资源和/或多媒体功能来识别。在1708,第一app包和资源游戏包的子集可被获得用于在客户端设备上的游戏安装。在1710,方法结束。
图18图示了用于经由游戏捆绑包1804分布游戏的系统1800的示例。在示例中,游戏捆绑包1804与驱动游戏应用相关联。游戏捆绑部件1802可被配置为生成游戏捆绑包以包括一个或多个核心游戏包和/或一个或多个资源游戏包。游戏捆绑包1804可包括包含被配置为在第一处理器类型上执行的游戏代码的第一核心游戏包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可提供1824第二核心游戏包1808、第二资源游戏包1812和/或第三资源游戏包1814到客户端设备1826用于游戏的安装。
再另一实施例涉及包括被配置为实施本文呈现的一个或多个技术的处理器可执行指令的计算机可读介质。图19中图示以这些方式设想的计算机可读介质或计算机可读设备的示例实施例,其中实施方式1900包括计算机可读介质1908,例如CD-R、DVD-R、闪存驱动器、硬盘驱动器的盘片等,在其上编码了计算机可读数据1906。该计算机可读数据1906(例如包括零或一中的至少一个的二进制数据)转而包括被配置为根据本文提出的一个或多个原理操作的一组计算机指令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被配置为实施本文提供的一个或多个实施例。在一个配置中,计算设备2012包括至少一个处理单元2016和存储器2018。取决于计算设备的精确配置和类型,存储器2018可以是易失的(例如RAM)、非易失的(例如ROM、闪存等)或两者的一定组合。该配置在图20中通过虚线2014图示。
在其它实施例中,设备2012可包括附加特征和/或功能。例如,设备2012还可包括附加储存器(例如可移除和/或不可移除),其包括但不限于,磁储存器、光储存器等。这样的附加储存器在图20中通过储存器2020图示。在一个实施例中,用于实施本文提供的一个或多个实施例的计算机可读指令可在储存器2020中。储存器2020还可存储其它计算机可读指令以实施操作系统、应用程序等。计算机可读指令可被加载到存储器2018中以用于由例如处理单元2016执行。
如本文使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于信息(例如计算机可读指令或其它数据)的存储的任何方法或技术实施的易失和非易失、可移除和不可移除介质。存储器2018和储存器2020是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术,CR-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),火线(IEEE1394),光学总线结构等。在另一实施例中,计算设备2012的部件可通过网络互连。例如,存储器2018可包括位于通过网络互连的不同物理位置中的多个物理存储器单元。
本领域技术人员将认识到用于存储计算机可读指令的存储设备可以在网络上分布。例如,经由网络2028可访问的计算设备2030可存储计算机可读指令以实施本文提供的一个或多个实施例。计算设备2012可访问计算设备2030并且下载计算机可读指令中的部分或所有用于执行。替代地,计算设备2012可根据需要下载多条计算机可读指令,或一些指令可以在计算设备2012处执行并且一些在计算设备2030处执行。
本文提供了实施例的各种操作。在一实施例中,所描述的操作中的一个或多个可构成存储在一个或多个计算机可读介质上的计算机可读指令,其如果被计算设备执行将引起计算设备执行所描述的操作。描述操作的一些或所有的顺序不应被认为隐含这些操作一定是顺序相关的。具有本说明书的益处的本领域技术人员将认识到替代的排序。此外,将理解的是,不是所有操作都一定存在于本文提供的每个实施例中。
此外,除非另有所指,“第一”、“第二”等非旨在隐含时间方面、空间方面、排序等。相反,这样的术语仅用作用于特征、元件、项等的标识符、名称等。例如,第一对象和第二对象一般对应于对象A和对象B或两个不同或两个相同对象或同一对象。
而且,“示例性”在本文中被用于表示用作示例、实例或例示等,并且不一定用作有利的。如本文使用的,“或”旨在表示包括性“或”而不是排他性“或”。此外,如在本申请使用的“一”或“一个”可一般被解释为表示“一个或多个”,除非另有所指,或者从上下文可清楚以指向单数形式。而且,A和B和/或类似物中的至少一个一般表示A或B或A和B。而且,就在详细描述或权利要求中使用“包括”、“具有”、“带有”和/或其变型而言,这样的术语旨在以类似于术语“包括”的方式是包括性的。
而且,尽管已经关于一个或多个实施方式示出和描述了本公开,但是其他本领域技术人员将基于对该说明书和附图的阅读和理解将想到等同的替代和修改。本公开包括所有这样的修改和替代并且仅由以下权利要求的范围限制。特别关于由上述部件(例如元件、资源等)执行的各个功能,除非特别指出,用于描述这样的部件的术语旨在对应于执行所描述的部件的指定功能(例如功能上等同)的任何部件,即使结构上未等同于执行在本文图示的本公开的示例性实施方式中的功能的公开的结构。此外,尽管可关于多个实施方式中的仅一个公开了公开文本的特殊特征,如针对任何给定或特殊应用来说是期望和有利的,这样的特征可以与其他实施方式的一个或多个其他特征组合。

Claims (10)

1.一种生成用于应用的捆绑包的方法,所述方法由计算机系统的一个或多个处理器执行,所述方法包括:在接收到下载所述应用的所述捆绑包的捆绑获取请求之前,
识别所述应用的资产,所述应用的资产均包括已指派的资产标注,其中资产标注指派至少部分基于以下两者之间被识别出的关系:1)所述应用的资产和2)先前已知的客户端设备的特性,其中所述应用的资产通过使用客户端设备特性信息对所述资产标注执行搜索而可获取;
识别一个或多个app包,用于包括在所述捆绑包内;
识别一个或多个资源包,用于包括在所述捆绑包中,所述一个或多个资源包与所述应用的资产相关联,从而所述一个或多个资源包通过对所述资产标注执行不同的搜索而可获取,其中所述一个或多个资源包独立于所述捆绑获取请求而被标识,并且其中所述一个或多个资源包中的每一个包括资源包索引,所述资源包索引描述一个对应的资源包的内容;以及
生成所述捆绑包以包括所述一个或多个app包和所述一个或多个资源包,所述捆绑包包括第一app包和第一资源包,所述第一app包包括被配置为在第一计算环境上执行的第一应用代码,所述第一资源包包括用于提供所述应用的第一可选用户体验功能的第一补充数据,所述第一资源包还包括描述所述第一补充内容的第一资源包索引。
2.如权利要求1所述的方法,其中所述方法还包括:
暴露所述捆绑包的部分用于经由app商店选择性下载,所述一个或多个资源包被暴露作为用于所述应用的可选下载。
3.如权利要求1所述的方法,其中生成所述捆绑包包括:
生成捆绑清单,用于包括在所述捆绑包中,所述捆绑清单包括用于所述一个或多个app包的一个或多个app描述和用于所述一个或多个资源包的一个或多个资源描述。
4.如权利要求1所述的方法,其中识别所述一个或多个资源包包括:
剖析所述第一app包以识别在所述第一app包内的第一组可选数据;
从所述第一app包提取所述第一组可选数据;以及
基于所述第一组可选数据生成所述第一资源包。
5.如权利要求1所述的方法,其中所述一个或多个app包由应用开发者提供,并且其中所述方法还包括:
暴露资源包外包界面给应用开发者;
从所述应用开发者接收资源包建立请求;
经由所述资源包外包界面暴露所述资源包建立请求给多个资源包开发者;
经由所述资源包外包界面接收一个或多个资源包建立出价;以及
响应于从所述应用开发者接收对第一资源包建立出价的选择,促进在所述应用开发者和第一资源包开发者之间的第一资源包建立交易。
6.如权利要求1所述的方法,其中所述方法还包括:
从客户端设备接收所述捆绑获取请求,所述捆绑获取请求指定所述第一app包;以及
选择性提供来自所述捆绑包的所述第一app包而不是所述第一资源包给所述客户端设备,用于所述应用的安装。
7.如权利要求1所述的方法,其中所述方法还包括:
从客户端设备接收所述捆绑获取请求,所述捆绑获取请求指定包括在所述捆绑包内的资源包的子集和所述第一app包,所述资源包的子集指定所述捆绑包内的所述一个或多个资源包中的至少一些而少于所有;以及
选择性提供来自所述捆绑包的所述第一app包和所述资源包的子集给所述客户端设备,用于所述应用的安装。
8.如权利要求1所述的方法,其中所述方法还包括:
接收对捆绑包的捆绑更新,所述捆绑更新包括用于包括在所述捆绑包内的新资源包;
更新所述捆绑包以包括所述新资源包;以及
在所述捆绑包内更新捆绑清单,以指定所述新资源包可用于可选取得。
9.一种计算机系统,包括:
一个或多个处理器;以及
一个或多个计算机可读硬件存储设备,具有存储在其上的计算机可执行指令,所述计算机可执行指令由所述一个或多个处理器可执行,以通过使所述计算机系统执行以下动作而使所述计算机系统生成应用的可下载的捆绑包:
在接收到下载所述应用的所述捆绑包的捆绑获取请求之前:
识别所述应用的资产,所述应用的资产均包括已指派的资产标注,其中资产标注指派至少部分基于以下两者之间被识别出的关系:1)所述应用的资产和2)先前已知的客户端设备的特性,其中所述应用的资产通过使用客户端设备特性信息对所述资产标注执行搜索而可获取,
识别一个或多个app包用于包括在所述捆绑包内;
识别一个或多个资源包,用于包括在所述捆绑包中,所述一个或多个资源包与所述应用的资产相关联,从而所述一个或多个资源包通过对所述资产标注执行不同的搜索而可获取,其中所述一个或多个资源包独立于所述捆绑获取请求而被识别,并且其中所述一个或多个资源包中的每一个包括资源包索引,所述资源包索引描述一个对应的资源包的内容;以及
生成所述捆绑包以包括所述一个或多个app包和所述一个或多个资源包,所述捆绑包包括第一app包和第一资源包,所述第一app包包括被配置为在第一计算环境上执行的第一应用代码,所述第一资源包包括用于提供所述应用的第一可选用户体验功能的第一补充数据,所述第一资源包还包括描述所述第一补充数据的第一资源包索引。
10.如权利要求9所述的系统,其中所述计算机可执行指令的执行进一步使所述计算机设备:
从客户端设备接收所述捆绑获取请求,所述捆绑获取请求指定包括在所述捆绑包内的资源包的子集和所述第一app包,所述资源包的子集指定所述捆绑包内的所述一个或多个资源包中的至少一些而少于所有;以及
选择性提供来自所述捆绑包的所述第一app包和所述资源包的子集给所述客户端设备,用于所述应用的安装。
CN201380077106.5A 2013-05-30 2013-09-18 生成用于应用的捆绑包的方法以及相关联的计算机系统 Active CN105378662B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/906154 2013-05-30
US13/906,154 US9766870B2 (en) 2013-05-30 2013-05-30 Bundle package generation
PCT/US2013/060251 WO2014193433A1 (en) 2013-05-30 2013-09-18 Bundle package generation

Publications (2)

Publication Number Publication Date
CN105378662A CN105378662A (zh) 2016-03-02
CN105378662B true CN105378662B (zh) 2019-07-05

Family

ID=49447796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380077106.5A Active CN105378662B (zh) 2013-05-30 2013-09-18 生成用于应用的捆绑包的方法以及相关联的计算机系统

Country Status (4)

Country Link
US (1) US9766870B2 (zh)
EP (1) EP3005100B1 (zh)
CN (1) CN105378662B (zh)
WO (1) WO2014193433A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495570B2 (en) * 2010-12-23 2013-07-23 Microsoft Corporation Resource deployment based on conditions
US9645809B2 (en) 2013-05-29 2017-05-09 Microsoft Technology Licensing, Llc Updating software components through online stores
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US9766870B2 (en) * 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
CN104050409B (zh) 2014-06-30 2016-10-05 安一恒通(北京)科技有限公司 一种识别被捆绑软件的方法及其装置
US10567302B2 (en) 2016-06-01 2020-02-18 At&T Intellectual Property I, L.P. Enterprise business mobile dashboard
US10353882B2 (en) * 2016-06-30 2019-07-16 Adobe Inc. Packaging data science operations
US10133452B2 (en) 2016-06-30 2018-11-20 Adobe Systems Incorporated Facilitating data science operations
WO2018083622A1 (en) * 2016-11-02 2018-05-11 Gamesys Ltd Loader and method for processing a resource bundle
CN109144533B (zh) * 2017-06-28 2021-05-04 北京嘀嘀无限科技发展有限公司 一种应用程序的更新及加载的方法、系统及计算机装置
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
CN107608684B (zh) * 2017-10-10 2023-09-05 深圳市土星网络有限公司 三维游戏模型数据处理方法及网络游戏系统
CN107809672A (zh) * 2017-10-10 2018-03-16 武汉斗鱼网络科技有限公司 检测应用安装包二次打包的方法、存储介质、设备及系统
KR102657876B1 (ko) * 2018-09-07 2024-04-17 삼성전자주식회사 Ssp 단말과 서버가 디지털 인증서를 협의하는 방법 및 장치
CN113553068B (zh) * 2020-04-17 2024-01-19 华为技术有限公司 一种下载应用包的方法、装置和电子设备
US11956232B2 (en) * 2021-03-19 2024-04-09 Okta, Inc. Integration packaging for a multi-tenant computing environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024124A (zh) * 2010-12-20 2011-04-20 中国联合网络通信集团有限公司 移动微件处理方法、装置、系统及客户端
CN102662703A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种应用程序插件加载方法及装置
CN102830997A (zh) * 2012-08-17 2012-12-19 北京金山软件有限公司 一种插件安装的控制方法、装置及设备

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2110732A3 (en) 1995-02-13 2009-12-09 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US6021491A (en) 1996-11-27 2000-02-01 Sun Microsystems, Inc. Digital signatures for data streams and data archives
AUPP149998A0 (en) 1998-01-27 1998-02-19 Aristocrat Leisure Industries Pty Ltd Multi-platform gaming architecture
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
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
JP2004506262A (ja) 2000-08-04 2004-02-26 イントリンジック グラフィックス, インコーポレイテッド グラフィックハードウェアおよびソフトウェアの開発
US7124289B1 (en) * 2000-10-31 2006-10-17 Opsware Inc. Automated provisioning framework for internet site servers
US20030037327A1 (en) * 2001-08-15 2003-02-20 International Business Machines Corporation Run-time rule-based topological installation suite
US7661140B2 (en) 2002-03-20 2010-02-09 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
EP1361509B1 (en) * 2002-05-08 2013-07-10 Sap Ag 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
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
US7065650B2 (en) 2004-05-10 2006-06-20 Aladdin Knowledge Systems Ltd. Method for indicating the integrity of a collection of digital objects
US7478361B2 (en) 2004-06-17 2009-01-13 International Business Machines Corporation Method and system for managing application deployment
US8379864B2 (en) * 2004-07-09 2013-02-19 Nokia Corporation Software plug-in framework to modify decryption methods in terminals
US7530065B1 (en) 2004-08-13 2009-05-05 Apple Inc. Mechanism for determining applicability of software packages for installation
US20060053169A1 (en) * 2004-09-09 2006-03-09 Straub Roland U System and method for management of data repositories
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
US20060136907A1 (en) * 2004-12-20 2006-06-22 Microsoft Corporation Language-neutral and language-specific installation packages for software setup
US7808554B2 (en) 2005-03-18 2010-10-05 Displaymate Technologies Corporation Automatic and interactive configuration and control of a video system
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
US7676513B2 (en) 2006-01-06 2010-03-09 Microsoft Corporation Scheduling of index merges
EP1818820A1 (en) * 2006-02-03 2007-08-15 Research In Motion Limited System and method for installing custom services on a component-based application platform
US7962125B2 (en) * 2006-03-27 2011-06-14 Research In Motion Limited Wireless email communications system providing resource updating features and related methods
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
US8185872B2 (en) * 2006-11-27 2012-05-22 Red Hat, Inc. Cross-platform software package generation
JP5006388B2 (ja) * 2007-04-19 2012-08-22 パナソニック株式会社 データ管理装置
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
US20090083732A1 (en) 2007-09-26 2009-03-26 Microsoft Corporation Creation and deployment of distributed, extensible applications
US8434077B2 (en) * 2007-10-18 2013-04-30 International Business Machines Corporation Upgrading virtual resources
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
US8707284B2 (en) * 2009-12-22 2014-04-22 Microsoft Corporation Dictionary-based dependency determination
CN101763269A (zh) * 2010-01-27 2010-06-30 中兴通讯股份有限公司 一种软件安装包的制作方法
US8667480B1 (en) * 2010-04-19 2014-03-04 Google Inc. Automatically updating browser extensions, and applications thereof
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
US8267793B2 (en) 2010-08-17 2012-09-18 Samsung Electronics Co., Ltd. Multiplatform gaming system
US8694981B2 (en) * 2010-11-17 2014-04-08 Apple Inc. Shared resource dependencies
US9047103B2 (en) * 2010-12-21 2015-06-02 Microsoft Technology Licensing, Llc Resource index identifying multiple resource instances and selecting most appropriate UI resource instance based on weighted resource request conditions
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
US20120239415A1 (en) 2011-02-21 2012-09-20 Nitin Agrawal Heuristically resolving content items in an extensible content management system
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
US20120272204A1 (en) * 2011-04-21 2012-10-25 Microsoft Corporation Uninterruptible upgrade for a build service engine
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
US8819361B2 (en) 2011-09-12 2014-08-26 Microsoft Corporation Retaining verifiability of extracted data from signed archives
US8839446B2 (en) 2011-09-12 2014-09-16 Microsoft Corporation Protecting archive structure with directory verifiers
CA2756102A1 (en) * 2011-11-01 2012-01-03 Cit Global Mobile Division Method and system for localizing an application on a computing device
US20140325502A1 (en) * 2012-06-29 2014-10-30 Giannis Zarifis Packaging, distribution and de-packaging of device-independent software applications
WO2014062804A1 (en) * 2012-10-16 2014-04-24 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 주식회사 엘지씨엔에스 컴퓨터에서 실행 가능한 어플리케이션 패키지를 생성하는 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체
US20140359606A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Bundle package retrieving
US20140357357A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
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
US9323514B2 (en) * 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US20140372998A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation App package deployment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024124A (zh) * 2010-12-20 2011-04-20 中国联合网络通信集团有限公司 移动微件处理方法、装置、系统及客户端
CN102662703A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种应用程序插件加载方法及装置
CN102830997A (zh) * 2012-08-17 2012-12-19 北京金山软件有限公司 一种插件安装的控制方法、装置及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Offloading Android Applications to the Cloud without Customizing Android;Eric Chen 等;《2012 IEEE INTERNATIONAL CONFERENCE》;20120319;正文第3页左栏末段至右栏末段、图3
Security Mechanism Analysis of Open-Source;Hou Rui 等;《2012 2ND INTERNATIONAL CONFERNECE》;20120421;全文

Also Published As

Publication number Publication date
US20140359604A1 (en) 2014-12-04
EP3005100B1 (en) 2018-04-25
WO2014193433A1 (en) 2014-12-04
US9766870B2 (en) 2017-09-19
EP3005100A1 (en) 2016-04-13
CN105378662A (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
CN105378662B (zh) 生成用于应用的捆绑包的方法以及相关联的计算机系统
CN105378661B (zh) 资源包索引
US10015282B2 (en) Context-based selective downloading of application resources
EP3005160B1 (en) Bundle package retrieving
US20140359605A1 (en) Bundle package signing
CN104798094B (zh) 确定内容项目显示环境的配置
CN106354873A (zh) 网页加载方法、装置及系统
CN103608802A (zh) 取回的文件和源文件之间的选择映射
CN109271160A (zh) 活动规则组建方法、装置和计算机系统、介质
US8510809B2 (en) Network authentication system and method
US9508078B1 (en) Link creation techniques
CN111127159A (zh) 彩票管理方法、彩票管理系统、计算设备及介质
Michalik et al. Towards a solution for change impact analysis of software product line products
CN112994900B (zh) 文件会签方法、装置、客户端、服务端和存储介质
CN113794930B (zh) 视频生成方法、装置、设备及存储介质
CN109460226A (zh) 测试证件图像生成方法、装置、设备及存储介质
Austin Spartangold: a blockchain for education, experimentation, and rapid prototyping
JP2022122740A (ja) 判定装置、判定方法および判定プログラム
CN110327626A (zh) 虚拟服务器创建方法及装置
US20240095721A1 (en) Automated interaction with blockchain applications
CN117556795A (zh) 商旅服务的上架方法和商旅服务系统
CN117034894A (zh) 一种凭证生成方法、装置、设备及可读存储介质
CN114528061A (zh) 一种基于ar的设备使用方法、设备及智能终端系统
CN116108298A (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
GR01 Patent grant
GR01 Patent grant