CN107924305A - 软件开发和分发平台 - Google Patents

软件开发和分发平台 Download PDF

Info

Publication number
CN107924305A
CN107924305A CN201680028505.6A CN201680028505A CN107924305A CN 107924305 A CN107924305 A CN 107924305A CN 201680028505 A CN201680028505 A CN 201680028505A CN 107924305 A CN107924305 A CN 107924305A
Authority
CN
China
Prior art keywords
sdk
party
application
sddp
party sdk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201680028505.6A
Other languages
English (en)
Inventor
小杰弗里·H·塞伯特
韦恩·常
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN107924305A publication Critical patent/CN107924305A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

用于开发和发布软件的***和方法。由软件开发和分发平台(SDDP)接收第三方软件开发工具包(SDK),每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK。SDDP接受来自应用开发者机器的安装请求,并且SDDP响应于对在正在开发的应用中进行安装的安装请求而发送第一第三方SDK。

Description

软件开发和分发平台
背景技术
应用开发者正在使用数目越来越多的第三方服务来在其应用中提供附加的特征和能力,包括能在智能电话、平板、相机、物联网(“Iot”)设备以及其他联网设备上执行的移动应用。例如,应用开发者可将来自不同来源的软件开发工具包(“SDK”)下载到集成开发环境(“IDE”)中,以将功能性集成到正在构建的应用中。这样的方法消除了重新创造轮子(wheel)的需要,因为开发者无需从头开始将她想要应用具有的功能或功能调用实现到应用的源代码中。这样的方法简化并加速了应用开发,并且简化了应用向着不同平台的迁移。
发明内容
总体上,在本发明的一方面,软件开发和分发平台(“SDDP”)提供了可在IDE中选择的特征、功能或其他计算资源的列表,以动态和实时地构建定制且可下载的SDK,该SDK包含将所选择的计算资源在正在IDE中构建的应用中实现所必需的代码。有利地,向在IDE中工作的开发者提供的计算资源是高度模块化的,并且自定义SDK实行比在开发者要针对所选择计算资源中的每个计算资源下载单独的SDK时将强加于IDE的存储器负荷小得多的计算存储器负荷。此外,SDDP提供SDK管理功能。例如,SDDP跟踪对第三方SDK的更新,并且在适当且不需要来自开发者的手动查询时,通知开发者应用需要更新。有利地,使开发者从不得不监视更新用于构建应用的SDK的各个资源的管理负担中解脱。另一个管理功能包括供开发者和第三方提供和使用SDK的市场,这有利地为开发者和SDK提供者提供了一站式服务。
在一个示例中,设计应用的***和方法包括将多个第三方软件开发工具包(SDK)存储在软件开发和分发平台(SDDP)上,每个第三方SDK由第三方服务提供者发布并且每个第三方SDK访问由第三方服务提供者提供的一个或多个服务;接收来自应用开发者的对第三方SDK的请求,该请求包括SDK类型;在SDDP中搜索与SDK类型匹配的第三方SDK;以及传送指示与SDK类型匹配的一个或多个第三方SDK的响应。
在另一个示例中,一种操作软件开发和分发平台(SDDP)的方法包括:由所述SDDP接收多个第三方软件开发工具包(SDK),每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;由所述SDDP存储所述多个第三方SDK;由所述SDDP从应用开发者机器接收对第一第三方SDK的安装请求;以及由SDDP响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
在另一个示例中,一种软件开发和分发平台(SDDP)包括:软件开发工具包(SDK)储存库,所述SDK储存库存储多个第三方SDK,每个SDK由第三方服务提供者发布;至少一个处理器;以及存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:针对每个第三方SDK生成SDK简档;接收对将安装在应用开发者机器上的正在开发的应用中的第三方SDK的推荐请求;以及基于所述多个SDK简档和所述推荐请求来生成标识用于安装在正在开发的所述应用中的第三方SDK的推荐。
在另一个示例中,一种***包括:集成开发环境(IDE),其存储正在开发的应用的代码,其中,正在开发的所述应用包括第一第三方软件开发工具包(SDK);至少一个处理器;以及存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:向软件开发和分发平台(SDDP)发送包括第三方软件开发者工具包(SDK)的类型和正在开发的所述应用的目标操作***的推荐请求;从所述SDDP接收标识第二第三方SDK的推荐;向所述SDDP发送对所推荐的所述第三方SDK的安装请求;从所述SDDP接收所述第二第三方SDK;以及修改所述代码以包括所述第二第三方SDK。
在另一个示例中,一种软件开发和分发平台(SDDP)包括:至少一个处理器;以及存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:接收多个第三方软件开发工具包(SDK),每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;存储所述多个第三方SDK;从应用开发者机器接收对所述第一第三方SDK的安装请求;以及响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
在另一个示例中,一种存储指令的计算机可读存储介质,所述指令在由软件开发和分发平台(SDDP)中的至少一个处理器执行时,致使所述至少一个处理器:接收多个第三方软件开发工具包(SDK),每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;存储所述多个第三方SDK;从应用开发者机器接收对第一第三方SDK的安装请求;以及响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
所描述的软件开发和分发平台(SDDP)提供了用于简化向正在开发的应用中添加服务的机制。第三方SDK被存储在SDDP中,其中,每个第三方SDK是由第三方服务提供者发布的,并且其中,每个第三方SDK都访问由发布SDK的第三方服务提供者提供的一个或多个服务。SDDP接收应用开发者对第三方SDK的请求——该请求包括SDK类型,在SDDP中搜索与该SDK类型匹配的第三方SDK并且传送指示与该SDK类型匹配的一个或多个第三方SDK的响应。在一些示例中,将SDDP插件安装在应用开发者机器中的集成设计环境中,以简化将SDK添加至正在开发的应用中。在一些示例中,SDDP基于随SDK请求传递的参数来推荐SDK,并且应用开发者通过选择所推荐的SDK来安装所推荐的SDK。结果是一个简洁的、模块化设计***,该***可容易地在正在开发的应用和待部署的应用中进行服务的添加和更新。
当SDK在被接受到SDDP中之前被检验和批准时,***和方法会变得甚至更加强大。应用开发者不一定必须独立地调查可能的服务提供者及其SDK。作为替代,他们可依赖于SDDP中可信的SDK。
在附图和以下描述中阐述了本公开的一个或多个示例的细节。本公开的其他特征、目的和优点根据说明书和附图和权利要求书将清楚。
附图说明
图1示出了根据本发明的一个或多个方面的***框图。
图2示出了根据本发明的一个或多个方面的应用开发者机器。
图3示出了根据本发明的一个或多个方面的软件开发和分发平台。
图4至图6示出了根据本发明的一个或多个方面的流程图。
图7示出了根据本发明的一个或多个方面的计算机***。
具体实施方式
现在,将参照附图来详细地描述本发明的特定方面。为了一致性,各附图中用相似的附图标记来表示相似的元素。
在下面的具体实施方式中,阐述了众多具体细节,以便对本公开提供更全面的理解。然而,对于本领域的普通技术人员而言将显而易见的是,可在没有这些具体细节的情况下实践本发明。在其他实例下,并未详细描述熟知的特征,以避免使描述不必要地复杂。
第三方服务提供者越来越多地提供可被***正在开发的应用中的软件,以便提供对服务提供者的一个或多个服务的访问。这样的方法简化并加速了应用开发,并且简化了应用向着不同平台的迁移。在一个示例方法中,SDK本质上是模块化的,提供了有限数目的服务。这是因为,将大量服务置于单个SDK中可能不会是有效率的。例如,单个SDK可能变得臃肿,应用可能承担他们不需要的服务,并且应用的下载会变得缓慢且繁重。
通常,难以确定用于特定服务的最佳SDK。应用开发者在确定最适合其应用的SDK之前可能不得不检查提供相同或相似服务的许多SDK。并且,可能难以跟踪SDK代码的更改和更新并且确定底层服务的功效。
为了应对这些需求,本文中描述了接收SDK并且使它们可由应用开发者获取的软件开发和分发平台(SDDP)。在一个示例方法中,SDDP提供了中央平台,应用开发者可通过该平台访问来自多个第三方服务提供者的各式各样SDK。第三方服务提供者将其SDK发布到SDDP以供各式各样应用开发者——包括移动应用的开发者——下载。在一个示例方法中,SDDP为SDK提供标准化界面;SDK是模块化的并且被设计成***SDDP的基础库中。
在一个示例方法中,SDDP充当开发第三方SDK的第三方服务提供者和移动应用开发者之间的中介。换言之,SDDP将发布一个或多个第三方SDK的第三方服务提供者和下载第三方SDK以供在其移动应用中进行安装的应用开发者链接起来。SDDP还将应用开发者和最终用户及在其上部署和执行应用的最终用户的移动设备链接起来。SDDP可收集度量(metric)和反馈消息以生成SDK、应用、和最终用户的简档。SDDP可基于度量和反馈消息来生成通知和其他消息,并且可协调应用开发者、第三方服务提供者和最终用户之间的通信。SDDP还可生成推荐,所述推荐标识用于安装在正在开发的移动应用中的一个或多个第三方SDK。在一个示例方法中,SDDP用作开发者工具包,从而简化了多个平台和操作***的应用开发。
图1示出了根据本发明的一个或多个方面的***(100)。如图1中所示,***(100)具有多个组件,包括SDDP(102)、多个第三方服务提供者(例如,第三方服务提供者A(199A)、第三方服务提供者B(199B))、一个或多个应用开发者机器(例如,应用开发者机器X(106X)、应用开发者机器(106Y))、和一个或多个移动设备(例如,移动设备M(108M)、移动设备N(108N)))。另外如图1中所示,第三方服务提供者(199A、199B)、应用开发者机器(106X、106Y)和移动设备(108M、108N)使用具有有线和/或无线分段的一个或多个网络与SDDP(102)连接。尽管在图1中未示出,但是移动设备(108M、108N)也可使用具有有线和/或无线分段的一个或多个网络与第三方服务提供者(199A、199B)直接连接。换言之,移动设备(108M、108N)可独立于SDDP(102)与第三方服务提供者(199A、199B)进行通信。
在本发明的一个或多个方面,***(100)包括第三方服务提供者(199A、199B)。每个第三方服务提供者(199A、199B)可在一个或多个计算设备(例如,服务器、个人计算机(PC)、膝上型计算机、平板PC、智能电话、信息亭等)上执行。每个第三方服务提供者(199A、199B)开发并且发布一个或多个第三方SDK。每个第三方SDK提供安装了第三方SDK的软件应用(例如,移动应用(110))可请求的一个或多个服务、功能、内容、或能力。这些服务、功能、内容、或能力可在第三方SDK的内部。另外,或替选地,这些服务、功能、内容、或能力可由第三方API(未示出)提供,并且第三方SDK是软件应用向第三方API发出API调用并且访问服务、功能等的机制。
在本发明的一个或多个方面,***(100)包括一个或多个应用开发者机器(106X、106Y)。每个应用开发者机器(106X、106Y)可对应于服务器、个人计算机(PC)、膝上型计算机、平板PC、智能电话、信息亭等。应用开发者机器(106X、106Y)提供接口(例如,GUI),应用开发者或应用开发者的团队可利用该接口对移动应用(例如,移动应用(110))进行设计、编程、编码、调试等。在本发明的一个或多个方面,这些移动应用包括一个或多个第三方SDK。应用开发者机器(106X、106Y)可从SDDP(102)获得(例如,付费)第三方SDK。以下,讨论关于应用开发者机器(106X、106Y)的附加详细信息。
在本发明的一个或多个方面,***(100)包括多个移动设备(即,移动设备M(108M)、移动设备N(108N))。这些移动设备(108M、108N)可对应于智能电话、PC平板、膝上型计算机、个人数字助理(PDA)、手表等。这些移动设备(108M、108N)可执行在应用开发者机器(106X、106Y)上开发的移动应用(例如,移动应用(110))。可从SDDP(102)获得移动应用(例如,付费)。移动应用(110)可在执行期间访问安装在移动应用(110)中的第三方SDK。
在本发明的一个或多个方面,***(100)包括SDDP(102)。SDDP(102)充当第三方服务提供者(199A、199B)、移动设备(108M、108N)、和应用开发者机器(106X、106Y)之间的中介(即,可信仲裁方)。SDDP(102)可对应于一个或多个服务器、大型机、PC、或任何其他类型的硬件计算设备。SDDP(102)可被视为SDK市场。SDDP(102)可被配置成执行许多功能,包括例如生成第三方SDK和/或第三方服务提供者(199A、199B)的简档;生成移动应用(例如,移动应用(110))的简档;生成最终用户的简档;向应用开发者机器(106X、106Y)推荐和发送第三方SDK,以供安装在正在开发的移动应用中;促使第三方服务提供者(199A、199B)和应用开发者机器(106X、106Y)之间的消息交换;生成和/或注册移动应用(110)的句柄;在移动设备(108M、108N)上部署移动应用(110)以供执行;等等。以下讨论关于SDDP(102)的附加细节。
在一个示例方法中,SDDP(102)包括基础库,并且SDK被编写成使用该基础库。在一个示例方法中,评估新的SDK,以确定它们是否可信任;只有可信的SDK才被添加到SDDP(102)。
尽管图1示出了仅两个第三方服务提供者(199A、199B)、仅两个移动设备(108M、108N)、和仅两个应用开发者机器(106X、106Y),但是受益于此具体实施方式的本领域技术人员应当理解,可以存在任何数目的第三方服务提供者、移动设备、和应用开发者机器。类似地,每个移动设备(108M、108N)可执行任何数目的移动应用。
尽管图1示出了在移动设备(108N)上执行的移动应用(110),但是在本发明的一个或多个方面,该具体实施方式中公开的所有***和过程也适用于在非移动设备(例如,桌面个人计算机(PC)、信息亭、服务器、大型机等)上执行的应用。在这些实施例中,应用开发者机器(106X、106Y)可开发用于部署在非移动设备上的应用。此外,在非移动设备上执行的这些应用也将具有第三方SDK。
图2示出了根据本发明的一个或多个方面的应用开发者机器(206)。应用开发者机器(206)可与以上参照图1讨论的应用开发者机器(106X、106Y)基本相同。在本发明的一个或多个方面,应用开发者机器(206)包括集成开发环境(IDE)(208)。IDE(208)是为应用开发者提供综合设施以供开发移动应用的软件应用。IDE(208)可包括用于为移动应用编写代码(210)的源代码编辑器、构建自动化工具、代码导入工具、和调试器。在一个示例方法中,IDE(208)被集成在SDDP中并且在初始化期间被下载到应用开发者机器(206)。在另一个示例方法中,从SDDP(102)下载SDDP插件并且将其安装在应用开发者机器(206)中安装的IDE(208)中。
如图2中所示,IDE(208)包括客户端应用(218)。在本发明的一个或多个方面,客户端应用(218)是IDE(208)的插件。另外地,或替选地,客户端应用(218)可以是与IDE(208)交互但是在IDE(208)外部的软件应用(即,不是插件,而是独立应用)。客户端应用(218)促进开发移动应用并且与SDDP(102)进行通信。
如以上讨论的,一个或多个第三方SDK可被包括(即,安装,并入等)在移动应用中。具体地,可向应用开发者展示可被选择以供包括在正在开发的移动应用中的第三方SDK的目录。另外,如以上讨论的,当移动应用正在执行时,一个或多个第三方SDK可向第三方API发出API调用以增加移动应用的功能和能力。
在本发明的一个或多个方面,客户端应用(218)被配置成向SDDP(102)发送对第三方SDK的推荐请求。所述推荐请求可包括移动应用的目标移动操作***和应用开发者期望用于安装在移动应用中的SDK的类型(例如,游戏SDK、地图绘制SDK、货币化SDK等)。推荐请求还可包括已经安装在移动应用中的其他第三方SDK(例如,第三方SDK A(212A)、第三方SDK B(212B))的标识。客户端应用(218)可从SDDP(102)接收标识要安装的第三方SDK的一个或多个推荐。在一个示例方法中,SDDP中安装的SDK包括专有服务SDK和第三方服务SDK二者;客户端应用(218)可从SDDP(102)接收标识要安装的所推荐的专有SDK和第三方SDK。
在本发明的一个或多个方面,客户端应用(218)被配置成向SDDP(102)发送对第三方SDK的推荐请求。可在客户端应用(218)已经接收到建议之后和/或在应用开发者已经查看了可用的第三方SDK之后发送安装请求。客户应用(218)可从SDDP(120)接收第三方SDK,并且可修改正在开发的移动应用的代码(210)以包括第三方SDK。可在来自应用开发者的最小输入(例如,单击)或应用开发者没有输入的情况下发生该修改。
如图2中所示,已将两个第三方SDK(即,212A、212B)添加到移动应用的代码(210)。在本发明的一个或多个方面,应用开发者使用客户端应用(218)来接收和查看来自发布第三方SDK(212A、212B)的第三方服务提供者的消息。也可使用客户端应用(218)撰写反馈消息并且将其发送到第三方服务提供者。
仍然参照图2,在一些示例方法中,代码(210)被适配来包括基础SDK(216)。当在移动设备上部署并执行移动应用时,基础SDK(216)被配置成收集关于移动设备上的部署的移动应用的使用和操作的数据(例如,度量)。所收集的数据可包括在移动设备上执行移动应用的频繁程度(即,频率);每次执行的持续时间;移动应用的代码(210)和第三方SDK(212A、212B)之间的交互(例如,函数调用);移动应用崩溃之后的崩溃转储;移动应用由于货币化SDK而产生的钱款等。可由应用开发者自定义被暴露以供收集的数据的量和类型。所收集的数据还可对应于移动设备本身,包括移动设备的功耗、移动设备通电的频繁程度、安装在移动设备上的其他应用等。此外,所收集的数据可被发送到SDDP(102)(下面讨论)。虽然只示出了单个基础SDK(216),但是可在代码(210)中安装任何数目的基础SDK(216),其中每个基础SDK负责收集特定类型的数据和/或向SDDP(102)发送该特定类型的数据。
在其他示例方法中,不需要基础SDK(216)。作为替代,在一个示例方法中,服务SDK中的一个或多个被配置成收集关于在移动设备上的部署的移动应用的使用和操作的数据(例如,度量)。所收集的数据可包括在移动设备上执行移动应用的频繁程度(即,频率);每次执行的持续时间;移动应用的代码(210)和其他第三方SDK(212A、212B)之间的交互(例如,函数调用);移动应用崩溃之后的崩溃转储;移动应用由于货币化SDK而产生的钱款等。可由应用开发者自定义被暴露以供收集的数据的量和类型。所收集的数据还可对应于移动设备本身,包括移动设备的功耗、移动设备通电的频繁程度、安装在移动设备上的其他应用等。此外,所收集的数据可被发送到SDDP(102)(下面讨论)。这样的功能可分布在安装在代码(210)中的服务SDK中的两个或更多个之间,其中每个服务负责收集特定类型的数据和/或向SDDP(102)发送该特定类型的数据。
虽然移动应用的代码(210)被示为只具有两个第三方SDK(212A、212B),但是受益于该具体实施方式的本领域技术人员应当理解,任何数目的第三方SDK可被添加到代码(210)中,并且因此被包括在正在开发的移动应用中。
图3示出了根据本发明的一个或多个方面的SDDP(302)。SDDP(302)可与以上参照图1讨论的SDDP(102)基本相同。如图3中所示,SDDP(302)具有多个组件,包括例如SDK储存库(304)、应用注册表(306)、应用储存库(308)、简档引擎(312)、消息引擎(316)、和推荐引擎(318)。这些组件(304、306、308、312、316、318)中的每一个可位于同一计算设备(例如,服务器、大型机等)上,或者可位于通过具有有线和/或无线分段的网络连接的不同计算设备上或跨其分散。
在本发明的一个或多个方面,SDDP(102)包括消息引擎(316)。消息引擎(316)促进与SDDP(302)连接的应用开发者机器和第三方服务提供者之间的消息的交换(例如,发送、接收)。消息可以是电子邮件、文本消息、传真,小应用等的形式。消息收发引擎(316)可实现点到点消息收发(例如,消息从一个第三方服务提供者到一个应用开发者机器)和/或广播消息(例如,消息从一个第三方服务提供者到许多应用开发者机器)。消息引擎(316)可提供与SDDP(302)连接的应用开发者机器和所有第三方服务提供者的目录,以便发送者定位接收者。消息引擎(316)可归档所有交换的消息,以供将来进行搜索和检索。
消息的内容可包括关于可经由第三方SDK从第三方服务提供者获得的所有能力和功能以及如何访问这些能力/功能的细节。另外地,或替选地,消息的内容可包括关于对可用能力和功能和/或第三方SDK的所提出和/或最终确定的改变(例如,升级、新版本等)的情况。另外地,或替选地,消息的内容可包括能力和功能和/或第三方SDK中的一个或多个的已知技术问题或漏洞。
消息的内容可包括来自应用开发者的关于对第三方SDK的所提出和/或最终确定的改变的反馈。另外地,或替选地,消息的内容可包括应用开发者发现的第三方SDK的技术问题的报告。在本发明的一个或多个方面,来自应用开发者或应用开发者机器的消息可被称为反馈消息。
在本发明的一个或多个方面,消息引擎(316)被配置成向第三方服务提供者发送通知。每个通知可标识下载了第三方服务提供者发布的第三方SDK的应用开发者机器。通知还可指示在应用开发者机器上执行的IDE和/或安装在应用开发者机器上的正在开发的移动应用中的其他第三方SDK。
在本发明的一个或多个方面,SDDP(302)包括SDK储存库(304)。SDK储存库(304)可对应于数据库或任何其他可搜索的数据结构。SDK储存库(304)存储第三方服务提供者所发布的第三方SDK。另外地,或替选地,SDK储存库(304)可存储来自任何来源的第三方SDK。SDK储存库(304)中的第三方SDK可用于免费地或付费地下载到应用开发者机器。SDK储存库(304)可以是应用开发者可查看和可搜索的(例如,经由客户端应用(218))。可基于应用开发者的地理位置来从视图中排除某些第三方SDK。
在本发明的一个或多个方面,SDDP(302)包括应用储存库(308)。应用储存库(308)可对应于数据库或任何其他可搜索的数据结构。应用储存库(308)存储已经在应用开发者机器上开发的移动应用。另外地,或替选地,应用储存库(308)存储来自任何来源的移动应用。应用储存库(308)中的应用可被免费地或付费地下载到由最终用户操作的移动设备。应用储存库(308)可以是最终用户可查看和可搜索的。可基于最终用户的地理位置来从视图中排除某些应用。
在本发明的一个或多个方面,SDDP(302)包括简档引擎(312)。简档引擎(312)被配置成为每个第三方SDK生成一个或多个简档。简档可包括以下中的一个或多个:第三方SDK的特征;第三方SDK的屏幕截图;已经安装第三方SDK的移动应用的数目;这些应用已经被最终用户下载的次数;移动应用使用第三方SDK产生的钱款;使用第三方SDK的移动应用的类型(例如,硬件和/或操作***);已经安装第三方SDK的每个移动应用的标识;第三方SDK的稳定性/可靠性(例如,由SDK引起的崩溃次数);应用开发者和/或最终用户对第三方SDK的评级(例如,5分满分中的4分、3星等);关于第三方SDK的反馈消息;在第三方SDK中的检测到的漏洞的数目;下载具有第三方SDK的移动应用的每个最终用户的标识;第三方SDK的发行日期(release date);经由深度链接在具有第三方SDK的同一移动设备上的应用之间的面包屑(bread crumb);等。受益于该具体实施方式的本领域的技术人员应当理解,以上列表并不是排他性的,并且理解到简档可包括涉及第三方SDK的所有种类的内容和分析。第三方SDK可以是通过任何分析可搜索和/或可分类的。
在本发明的一个或多个方面,简档引擎(312)被配置成从任何来源获得简档的数据(例如,度量),该来源包括发布第三方SDK的第三方服务提供者和以上参照图2讨论的与第三方SDK安装在同一应用中的其他SDK和基础SDK——如果存在。简档引擎(312)可对所获得的数据执行一个或多个计算或统计分析以生成简档。在一些示例方法中,如果例如服务崩溃、发现新的漏洞或者如果简档引擎(312)进行的计算或分析中的一个或多个超过预定义或自适应阈值,则警示应用开发者。
在本发明的一个或多个方面,简档的不同部分与不同的访问权限相关联。换言之,并不是每一方都被授权完全访问(即,可见到)简档。在最终用户、应用开发者、其他第三方服务提供者(即,没有发布第三方SDK的第三方服务提供者)和发布第三方SDK的第三方服务提供者当中和之间,访问级别会可以所不同。另外地,或替选地,简档可被部分复制并且跨多个简档分散,其中每个简档独有地可用于供以上提到的各方(即,应用开发者、其他第三方服务提供者等)中的一方查看/访问。
在本发明的一个或多个方面,简档引擎(312)被配置成为每个移动应用生成一个或多个简档。简档可包括以下中的一个或多个:应用的特征;应用的屏幕截图;已经下载应用的移动设备的数目;移动应用使用第三方SDK产生的钱款;下载应用的移动应用的类型(例如,硬件和/或操作***);安装在应用中的每个第三方SDK的标识;应用的稳定性/可靠性(例如,崩溃次数);最终用户对应用的评级(例如,5分满分中的4分、3星等);关于应用的反馈消息;在应用中的检测到的漏洞的数目;下载应用的每个最终用户的标识;应用的发行日期等。受益于该具体实施方式的本领域的技术人员应当理解,以上列表并不是排他性的,并且简档可包括涉及应用的各种内容和分析。应用可以是通过任何分析可搜索和/或可分类的。
在本发明的一个或多个方面,简档引擎(312)被配置成从任何来源获得简档的数据(例如,度量),该来源包括应用开发者和以上参照图2讨论的安装在应用中的其他SDK和基础SDK——如果存在。也可从发布安装在应用中的第三方SDK的第三方服务提供者获得应用的数据(例如,关于API调用的度量)。在这样的情景下,数据可以是基于第三方服务提供者维护的关于应用和/或应用的最终用户的记录。简档引擎(312)可对所获得的数据执行一个或多个计算或统计分析以生成简档。
在一个示例方法中,移动用户可从应用商店下载应用并且将该应用安装在其移动设备中。安装在应用中的SDK与SDDP(302)通信(例如,打电话回家)以报告其状态。简档引擎(312)将该信息添加到应用和SDK简档中。在一些示例方法中,该信息也被实时转发给应用开发者和/或关联的第三方服务提供者。
在本发明的一个或多个方面,简档的不同部分与不同的访问权限相关联。换言之,并不是每一方都被授权完全访问(即,可见到)应用的简档。在最终用户、第三方服务提供者、应用的开发者和其他应用的开发者当中和之间,访问级别会有所不同。另外地,或替选地,简档可被部分复制并且跨多个简档分散,其中每个简档独有地可用于供以上提到的各方(即,其他应用开发者、第三方服务提供者)中的一方查看/访问。
在本发明的一个或多个方面,推荐引擎(318)被配置成生成标识用于在正在开发的移动应用中安装的第三方SDK的推荐。可响应于推荐请求(以上讨论的)来生成该推荐并且将其发送到应用开发者机器。推荐引擎(318)可解析该推荐请求,以提取用于生成推荐的一个或多个参数(例如,所期望类型的第三方SDK、移动应用的目标操作***、已经安装在正在开发的移动应用中的其他第三方SDK等)。这些参数可被用作对可用第三方SDK的简档的搜索中的关键字。可在推荐中识别与推荐请求兼容的一个或多个第三方SDK。在本发明的一个或多个方面,在推荐中只标识具有至少最低评级(例如,满分五星中的四星)的第三方SDK。
在本发明的一个或多个方面,推荐引擎(318)基于移动应用的较早版本(即,先前部署的移动应用的版本)来生成推荐。具体地,推荐引擎(318)可将与先前部署的版本相关联的度量转发给多个货币化SDK。每个货币化SDK可基于该度量来估计在先前版本的应用已经安装了该货币化SDK的情况下将归因于该先前版本的应用的收入流。具有最大估计的收入流(或第二大收入流等)的货币化SDK的标识可被包括在发送给应用开发者机器的推荐中。
在本发明的一个或多个方面,SDDP(302)包括应用注册表(306)。应用注册表被配置成生成和/或存储应用句柄。所述句柄可以是可搜索的。在生成正在开发的应用的句柄之后,可将其发送到对应的应用开发者机器。
图4示出了根据本发明的一个或多个方面的流程图。流程图描绘了用于操作SDDP的过程。图4中的一个或多个步骤可由以上参照图1讨论的***(100)的组件以及以上参照图3讨论的SDDP(302)的组件来执行。在本发明的一个或多个方面中,图4中示出的步骤中的一个或多个可按与图4中示出的次序不同的次序被省略、重复、和/或执行。因此,本公开的范围不应被视为限于图4中示出的步骤的具体布置。图4中描绘的过程可在该具体实施方式中公开的任何其他流程图中描绘的处理之前、期间、或之后执行。
最初,由SDDP接收一个或多个第三方SDK(405)。第三方SDK是由第三方服务提供者发布的。第三方SDK为已经安装了第三方SDK的移动应用提供附加内容和功能。例如,第三方SDK可代表移动应用向第三方API发出API调用,以访问附加的内容和功能。接收到的第三方SDK可以是任何类型(例如,导航SDK、货币化SDK、游戏SDK等)。第三方服务提供者可提供详述了第三方SDK的功能的附加数据、第三方SDK的用户界面的屏幕截图、示例代码段等。
在410中,由SDDP接收针对第三方SDK的度量和反馈消息。410可以是在第三方SDK中的一个或多个已经安装在应用中并且已经部署该应用之后发生的。反馈消息可来自已经安装并测试了移动应用中的第三方SDK中的一个的应用开发者。反馈消息可以来自已经下载具有第三方SDK之一的移动应用的最终用户。反馈消息可标识第三方SDK中的一个或多个中的漏洞。度量可从各种来源(例如,以上参照图2讨论的基础SDK或其他安装的SDK)获得,并且可包括已经安装了第三方SDK的移动应用的数目;这些应用被最终用户下载的次数;使用第三方SDK的移动应用产生的钱款;使用第三方SDK的移动应用的类型(例如,硬件和/或操作***);等等。
在415中,针对第三方SDK生成简档。可基于反馈消息、度量、和第三方服务提供者所提供的内容来生成简档。简档可与访问权限关联。换言之,并不是每一方都被授权完全访问(即,可见到)简档。对于给定的第三方SDK,在最终用户、应用开发者、其他第三方服务提供者(即,没有发布第三方SDK的第三方服务提供者)和发布第三方SDK的第三方服务提供者当中和之间,访问级别可以有所不同。
在420中,接收对第三方SDK的安装请求。该安装请求是从具有正在开发的移动应用的应用开发者机器接收的。可在应用开发者已经浏览了第三方SDK的简档之后接收该安装请求。可在向标识第三方SDK的应用开发者发送推荐之后接收该安装请求。
在425中,第三方SDK被发送到应用开发者机器。在一个示例方法中,发送第三方SDK包括将代码传送到应用开发者机器。在另一个示例方法中,发送第三方SDK包括:向应用开发者机器传送标识第三方SDK的标识符,从应用开发者机器接收请求安装所标识的第三方SDK的安装命令并且将第三方SDK传送到应用开发者机器以供安装在正在开发的应用中。
在一个示例方法中,通知也可被发送到发布应用的第三方服务提供者。通知可标识在应用开发者机器上执行的IDE和/或安装在正在开发的移动应用中的其他第三方SDK。
在430中,第三方SDK被安装在正在开发的移动应用中。具体地,在应用开发者机器上执行的客户端应用修改正在开发的应用的代码,以将第三方SDK包括在内。这种修改可以需要很少的用户输入甚至不需要用户输入。
图5示出了根据本发明的一个或多个方面的流程图。该流程图描绘了用于操作SDDP的过程。图5中的一个或多个步骤可由以上参照图1讨论的***(100)的组件以及以上参照图3讨论的SDDP(302)的组件来执行。在本发明的一个或多个方面中,图5中示出的步骤中的一个或多个可按与图5中示出的次序不同的次序被省略、重复、和/或执行。因此,本公开的范围不应被视为限于图5中示出的步骤的具体布置。图5中描绘的过程可在该具体实施方式中公开的任何其他流程图中描绘的处理之前、期间或之后执行。
最初,SDDP接收推荐请求(505)。可从上面正在开发移动应用的应用开发者机器接收该推荐请求。该推荐请求可具有多个参数,包括例如正在开发的移动应用的目标操作***、应用开发者所期望的SDK的类型、已经安装在正在开发的应用中的一个或多个第三方SDK的标识等。
在510中,获得与推荐请求兼容的第三方SDK。具体地,解析推荐请求并且提取参数。该参数可被用作对第三方SDK简档的搜索中的关键字。在一个或多个实施例中,从搜索中排除评级小于阈值(例如,小于5分满分中的3.5分)的第三方SDK。
在515中,推荐被发送到应用开发者机器。推荐至少标识兼容的第三方SDK中的至少一个。在一个或多个实施例中,在推荐中仅标识具有最高评级的兼容的第三方SDK。
图6示出了根据本发明的一个或多个方面的流程图。流程图描绘了用于操作SDDP的过程。图6中的一个或多个步骤可由以上参照图1讨论的***(100)的组件以及以上参照图3讨论的SDDP(302)的组件来执行。在本发明的一个或多个方面中,图6中示出的步骤中的一个或多个可按与图6中示出的次序不同的次序被省略、重复、和/或执行。因此,本公开的范围不应被视为限于图6中示出的步骤的具体布置。图6中描绘的过程可在该具体实施方式中公开的任何其他流程图中描绘的处理之前、期间、或之后执行。
最初,SDDP接收应用开发者已经开发出的移动应用(610)。该移动应用可包括多个第三方SDK、专有SDK、和/或一个或多个基础SDK,包括用于收集和报告数据的SDK。第三方SDK中的一个或多个先前可以以及从SDDP下载到上面正在开发应用的应用开发者机器。该应用可被存储在储存库中并且可用于供最终用户付费下载。换言之,SDDP可将移动应用部署在最终用户的移动设备上。
在615中,由SDDP接收针对移动应用的度量和反馈消息。该反馈消息可来自已经下载了该移动应用的最终用户。反馈消息可标识第三方SDK中的一个或多个中的漏洞。度量可从各种来源(例如,以上参照图2讨论的基础SDK)获得,并且可包括已经下载应用的移动设备的数目;移动应用使用第三方SDK产生的钱款;下载了应用的移动应用的类型(例如,硬件和/或操作***);安装在应用中的每个第三方SDK的标识;应用的稳定性/可靠性(例如,崩溃次数);最终用户对应用的评级(例如,5分满分中的4分、3星等)等。可从发布了安装在移动应用中的第三方SDK的第三方服务提供者接收所述度量中的一些。在这样的情景下,数据可以是基于第三方服务提供者所维护的关于应用和/或应用的最终用户的记录。
在620中,更新或生成用于应用的简档。可基于反馈消息、度量和应用开发者提供的内容来生成/更新简档。简档可与访问权限关联。换言之,并不是每一方都被授权完全访问(即,可见到)简档。对于给定的应用,在最终用户、移动应用的开发者、和/或其他应用开发者(即,没有开发移动应用的开发者、第三方服务提供者等)当中和之间,访问级别可以有所不同。简档可以是根据任何度量可搜索和可分类的。
本发明的方面实际上可在任何类型的计算***上实现,而不管所使用的平台如何。例如,计算***可以是用于执行本发明的一个或多个方面的一个或多个移动设备(例如,膝上型计算机、智能电话、个人数字助理、平板计算机、或其他移动设备)、台式计算机、服务器、服务器底架中的刀片、或至少包括最小处理能力的任何其他类型的一个或多个计算设备、以及输入和输出设备。例如,如图7中所示,计算***(700)可包括一个或多个计算机处理器(702)、关联的存储器(704)(例如,随机存取存储器(RAM)、高速缓存存储器、闪速存储器等)、一个或多个存储设备(706)(例如,硬盘、诸如光盘(CD)驱动器或数字多功能盘(DVD)驱动器的光学驱动器、闪存记忆棒等)、以及许多其他元件和功能。计算机处理器(702)可以是用于处理指令的集成电路。例如,计算机处理器可以是处理器的一个或多个内核或微内核。计算***(700)还可包括诸如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔、或任何其他类型的输入设备的一个或多个输入设备(710)。另外,计算***(700)可包括一个或多个输出设备(708),诸如屏幕(例如,液晶显示器(LCD)、等离子体显示器、触摸屏、阴极射线管(CRT)监视器、投影仪、或其他显示设备)、打印机、外部存储、或任何其他输出设备。输出设备中的一个或多个可与输入设备相同或不同。计算***(700)可经由网络接口连接(未示出)与网络(712)(例如,局域网(LAN)、诸如互联网的广域网(WAN)、移动网络或任何其他类型的网络)连接。输入和输出设备可与计算机处理器(702)、存储器(704)、和存储设备(706)本地或远程(例如,经由网络(712))连接。存在许多不同类型的计算***,并且以上提到的输入和输出设备可采取其他形式。
用于执行本发明的方面的计算机可读程序代码形式的软件指令可全部或部分地、暂时或持久性地存储在诸如CD、DVD、存储设备、软盘、磁带、闪速存储器、物理存储器、或任何其他计算机可读存储介质的非暂态计算机可读介质上。具体地,软件指令可对应于计算机可读程序代码,该计算机可读程序代码在由处理器执行时被配置成执行本发明的方面。
另外,以上提到的计算***(700)中的一个或多个元素可位于远程位置并且通过网络(712)连接到其他元素。另外,可以在具有多个节点的分布式***上实现本发明的一个或多个方面,其中,***(700)的每个部分可位于分布式***内的不同节点上。在一个示例方法中,节点对应于不同的计算设备。替选地,节点可对应于具有关联的物理存储器的计算机处理器。节点可替选地对应于计算机处理器或具有共享存储器和/或资源的计算机处理器的微内核。
所描述的软件开发和分发平台(SDDP)提供了用于简化向正在开发的应用中添加服务的机制。第三方SDK被存储在SDDP中,每个第三方SDK是由第三方服务提供者发布的,并且每个第三方SDK都访问由发布SDK的第三方服务提供者提供的一个或多个服务。SDDP接收应用开发者对第三方SDK的请求——该请求包括SDK类型,在SDDP中搜索与该SDK类型匹配的第三方SDK并且传送指示与该SDK类型匹配的一个或多个第三方SDK的响应。在一些示例中,将SDDP插件安装在应用开发者机器中的集成设计环境中,以简化将SDK添加至正在开发的应用中。在一些示例中,SDDP基于随SDK请求传递的参数来推荐SDK,并且应用开发者通过选择所推荐的SDK来安装所推荐的SDK。结果是一个简洁的、模块化设计***,该***可容易地在正在开发和部署的应用中添加和更新服务。
当SDK在被接受到SDDP中之前被检验和批准时,***和方法变得甚至更加强大。应用开发者不必独立地调查可能的服务提供者及其SDK。作为替代他们可依赖于SDDP中可信的SDK。
在一个或多个示例中,上述的功能可用硬件、软件、固件、或其任何组合来实现。如果用软件来实现,则功能可被作为一个或多个指令或代码存储在计算机可读介质上或通过其来传送,或者由基于硬件的处理单元来执行。计算机可读介质可包括:与诸如数据存储介质的有形介质相对应的计算机可读存储介质,或包括促进例如根据通信协议将计算机程序从一个地方传递到另一个地方的任何介质的通信介质。以这样的方式,计算机可读介质通常可对应于(1)非暂态的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问的检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
作为示例而非限制性地,这样的计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)或其他光盘存储器、磁盘存储器、或其他磁存储设备、闪速存储器、或可用于以指令或数据结构形式存储所期望的程序代码并且可由计算机访问的任何其他介质。另外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术——诸如红外线、无线电和微波——从网站、服务器、或其他远程源传送指令,则同轴电缆、光纤电缆、双绞线、DSL、或无线技术——诸如红外线、无线电和微波——被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号、或其他暂态介质,而是作为替代涉及非暂态有形存储介质。如所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘,其中,磁盘通常以磁性方式复制数据,而光盘利用激光来以光学方式复制数据。以上的组合也应当被包括在计算机可读介质的范围内。
指令可由诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其他等效的集成或分立逻辑电路的一个或多个处理器执行。因此,所使用的术语“处理器”可以指代适于实现所描述技术的前述结构或任何其他结构中的任一个。另外,在一些方面,所描述的功能可设置在专用硬件和/或软件模块内。另外,所述技术可在一个或多个电路或逻辑元件中完全实现。
本公开的技术可在各种各样的设备或装置中实现,这些设备或装置包括无线电话、集成电路(IC)或IC集(例如,芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置成执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元实现。相反,如上所述,各个单元可被组合在硬件单元中,或者由包括如上所述的一个或多个处理器的协作的硬件单元的集合结合适当的软件和/或固件来提供。
要认识到,根据实施例,本文中描述的任何方法的某些动作或事件可按不同顺序执行,可以被添加、合并、或完全省略(例如,并非所有描述的动作或事件都是实践该方法所必需的)。此外,在某些实施例中,可例如通过多线程处理、中断处理、或多个处理器同时地而非顺序地执行动作或事件。
在一些示例中,计算机可读存储介质包括非暂态介质。在一些示例中,术语“非暂态”指示存储介质没有体现在载波或传播信号中。在某些示例中,非暂态存储介质可存储可随时间推移而变化(例如,在RAM或高速缓存中)的数据。虽然某些示例被描述为输出用于显示的各种信息,但是本公开的技术可以以其他形式——诸如音频、全息、或触觉形式——输出这样的信息,仅举几个例子。
虽然已经相对于有限数目的实施例描述了本发明,但是受益于本公开的本领域的技术人员应当理解,可设想到没有脱离本文中公开的范围的其他实施例。

Claims (31)

1.一种操作软件开发和分发平台SDDP的方法,包括:
由所述SDDP接收多个第三方软件开发工具包SDK,每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;
由所述SDDP存储所述多个第三方SDK;
由所述SDDP从应用开发者机器接收对所述第一第三方SDK的安装请求;以及
由所述SDDP响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
2.根据权利要求1所述的方法,进一步包括:
由所述SDDP接收包括所述第一第三方SDK的应用;以及
由所述SDDP将所述应用分发至多个移动设备以供在所述多个移动设备上执行。
3.根据权利要求1所述的方法,进一步包括:
由所述SDDP获得针对所述第一第三方SDK的多个度量;
由所述SDDP从多个应用开发者接收针对所述第一第三方SDK的多个反馈消息;
由所述SDDP基于从由所述多个度量中的一个或多个和所述多个反馈消息中的一个或多个组成的参数组中选择的至少一个参数来生成所述第一第三方SDK的简档;以及
由所述SDDP接收查看所述简档的请求。
4.根据权利要求1所述的方法,进一步包括:
在包括所述第一第三方SDK的应用被部署在多个移动设备上之后,由所述SDDP从发布所述第一第三方SDK的第三方服务提供者接收多个度量,其中所述度量是基于所述第一第三方服务提供者所维护的、关于从由所述应用和所述应用的最终用户组成的参数组中选择的至少一个参数的记录;
由所述SDDP基于所述多个度量来生成所述应用的简档;以及
由所述SDDP从所述应用的开发者接收查看所述简档的请求。
5.根据权利要求1所述的方法,其中,接收所述安全请求包括:
由所述SDDP从所述应用开发者机器接收包括所述应用的目标操作***和SDK类型的推荐请求;以及
由所述SDDP基于所述目标操作***和所述SDK类型向所述应用开发者机器发送推荐,所述推荐标识所述第一第三方SDK。
6.根据权利要求5所述的方法,其中,所述推荐请求标识正在开发的所述应用中安装的至少一个第三方SDK。
7.根据权利要求5所述的方法,其中,所述推荐是基于所述应用开发者机器的地理区域。
8.根据权利要求1所述的方法,进一步包括:
由所述SDDP获得针对在多个移动设备上执行的所述应用的先前版本的多个度量;
将所述多个度量发送到货币化SDK的发布者,包括所述第一第三方SDK的发布者;
由所述SDDP从所述货币化SDK的发布者中的每个发布者接收在相应发布者的货币化SDK被安装在所述应用的先前版本中的情况下所述相应发布者的货币化SDK的估计的收入流;
分析所述SDDP中的估计的收入流;以及
基于对估计的收入流的分析来推荐所述第一第三方SDK作为推荐的SDK。
9.根据权利要求1所述的方法,进一步包括:
由所述SDDP从所述应用开发者机器接收注册所述应用的请求;以及
由所述SDDP响应于所述请求而将所述应用的句柄添加到注册表中。
10.根据权利要求9所述的方法,进一步包括:
由所述SDDP生成所述应用的所述句柄;以及
由所述SDDP将所述句柄发送到所述应用开发者机器。
11.根据权利要求1所述的方法,进一步包括:
由所述SDDP响应于发送所述第一第三方SDK而向发布所述第一第三方SDK的第三方服务提供者发送通知,所述通知标识在所述应用开发者机器上执行的集成开发环境IDE以及已经被安装在正在开发的所述应用中的至少一个第三方SDK。
12.一种软件开发和分发平台SDDP,包括:
软件开发工具包SDK储存库,所述SDK储存库存储多个第三方SDK,每个SDK由第三方服务提供者发布;
至少一个处理器;以及
存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:
针对每个第三方SDK生成SDK简档;
接收对将安装在应用开发者机器上的正在开发的应用中的第三方SDK的推荐请求;以及
基于所述多个SDK简档和所述推荐请求来生成标识用于安装在正在开发的所述应用中的第三方SDK的推荐。
13.根据权利要求12所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
生成多个句柄,每个句柄与应用相关联;以及
存储所述多个句柄。
14.根据权利要求12所述的SDDP,进一步包括:
存储多个应用的应用储存库,每个应用均包括所述多个第三方SDK中的至少一个。
15.根据权利要求12所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
获得与包括所述第三方SDK并且被部署在多个移动设备上的应用相关联的多个度量,其中所述多个度量中的至少一个是从发布所述第三方SDK的第三方服务提供者获得的;以及
基于所述多个度量来生成所述应用的简档。
16.根据权利要求12所述的SDDP,其中,所述第三方SDK是由第一第三方服务提供者发布的,其中,所述多个简档包括所述第三方SDK的简档,并且其中,所述第三方SDK的所述简档能够由第二第三方服务提供者访问。
17.根据权利要求12所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
将来自发布所述第三方SDK的第三方服务提供者的消息中继至下载所述第一第三方SDK的应用开发者机器。
18.一种***,包括:
集成开发环境IDE,所述集成开发环境存储正在开发的应用的代码,其中所述正在开发的应用包括第一第三方软件开发工具包SDK;
至少一个处理器;以及
存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:
向软件开发和分发平台SDDP发送包括第三方软件开发工具包SDK的类型和所述正在开发的应用的目标操作***的推荐请求;
从所述SDDP接收标识第二第三方SDK的推荐;
向所述SDDP发送对所推荐的第三方SDK的安装请求;
从所述SDDP接收所述第二第三方SDK;以及
修改所述代码以包括所述第二第三方SDK。
19.根据权利要求18所述的***,其中,所述推荐请求进一步包括所述第一第三方SDK的标识。
20.根据权利要求18所述的***,其中,所述***进一步包括作为所述IDE的插件的客户端应用。
21.根据权利要求20所述的***,其中,所述客户端应用显示来自发布所述第二第三方SDK的第三方服务提供者的消息。
22.一种软件开发和分发平台SDDP,包括:
至少一个处理器;以及
存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:
接收多个第三方软件开发工具包SDK,每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;
存储所述多个第三方SDK;
从应用开发者机器接收对所述第一第三方SDK的安装请求;以及
响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
23.根据权利要求22所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
从所述应用开发者机器接收包括所述应用的目标操作***和SDK类型的推荐请求;以及
基于所述目标操作***和所述SDK类型向所述应用开发者机器发送推荐,所述推荐标识所述第一第三方SDK。
24.根据权利要求22所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
从所述应用开发者机器接收注册所述应用的请求;以及
响应于所述请求而将所述应用的句柄添加到注册表中。
25.根据权利要求22所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
响应于发送所述第一第三方SDK而向发布所述第一第三方SDK的第三方服务提供者发送通知,所述通知标识在所述应用开发者机器上执行的集成开发环境IDE以及已经被安装在所述正在开发的应用中的至少一个第三方SDK。
26.一种存储指令的计算机可读存储介质,所述指令在由软件开发和分发平台SDDP中的至少一个处理器执行时使所述至少一个处理器:
接收多个第三方软件开发工具包SDK,每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;
存储所述多个第三方SDK;
从应用开发者机器接收对所述第一第三方SDK的安装请求;以及
响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
27.根据权利要求26所述的计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
接收包括所述第一第三方SDK的应用;以及
将所述应用分发至多个移动设备以供在所述多个移动设备上执行。
28.根据权利要求26所述的计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
获得针对所述第一第三方SDK的多个度量;
从多个应用开发者接收针对所述第一第三方SDK的多个反馈消息;
基于从由所述多个度量中的一个或多个和所述多个反馈消息中的一个或多个组成的参数组中选择的至少一个参数来生成所述第一第三方SDK的简档;以及
接收查看所述简档的请求。
29.根据权利要求26所述的计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
在包括所述第一第三方SDK的应用被部署在多个移动设备上之后,从发布所述第一第三方SDK的第三方服务提供者接收多个度量,其中所述度量是基于所述第一第三方服务提供者所维护的、关于从由所述应用和所述应用的最终用户组成的参数组中选择的至少一个参数的记录;
基于所述多个度量来生成所述应用的简档;以及
从所述应用的开发者接收查看所述简档的请求。
30.根据权利要求26所述的计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
从所述应用开发者机器接收包括所述应用的目标操作***和SDK类型的推荐请求;以及
基于所述目标操作***和所述SDK类型向所述应用开发者机器发送推荐,所述推荐标识所述第一第三方SDK。
31.根据权利要求26所述计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
获得针对在多个移动设备上执行的所述应用的先前版本的多个度量;
将所述多个度量发送到货币化SDK的发布者,包括所述第一第三方SDK的发布者;
从所述货币化SDK的发布者中的每个发布者接收在相应发布者的货币化SDK被安装在所述应用的先前版本中的情况下所述相应发布者的货币化SDK的估计的收入流;
分析所述SDDP中的估计的收入流;以及
基于对估计的收入流的分析来推荐所述第一第三方SDK作为推荐的SDK。
CN201680028505.6A 2015-09-02 2016-09-02 软件开发和分发平台 Pending CN107924305A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562213481P 2015-09-02 2015-09-02
US62/213,481 2015-09-02
PCT/US2016/050240 WO2017041021A1 (en) 2015-09-02 2016-09-02 Software development and distribution platform

Publications (1)

Publication Number Publication Date
CN107924305A true CN107924305A (zh) 2018-04-17

Family

ID=58095483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680028505.6A Pending CN107924305A (zh) 2015-09-02 2016-09-02 软件开发和分发平台

Country Status (8)

Country Link
US (2) US9841969B2 (zh)
EP (1) EP3286643A1 (zh)
JP (1) JP2018522317A (zh)
KR (1) KR20170136560A (zh)
CN (1) CN107924305A (zh)
DE (1) DE112016002120T5 (zh)
GB (1) GB2555026A (zh)
WO (1) WO2017041021A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086038A (zh) * 2018-07-10 2018-12-25 千寻位置网络有限公司 基于Spark的大数据开发方法及装置、终端
CN109636504A (zh) * 2018-11-07 2019-04-16 北京慧流科技有限公司 信息处理方法及装置、电子设备及存储介质
CN111597101A (zh) * 2019-02-21 2020-08-28 上海哔哩哔哩科技有限公司 Sdk接入状态检测方法、计算机设备及计算机可读存储介质
CN112612472A (zh) * 2020-12-11 2021-04-06 北京旷视科技有限公司 一种嵌入式模型sdk开发方法和开发平台
CN116171423A (zh) * 2021-07-23 2023-05-26 奥迪股份公司 用于定制车辆功能的***和方法

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146512B1 (en) 2015-08-28 2018-12-04 Twitter, Inc. Feature switching kits
US10848944B2 (en) * 2015-11-24 2020-11-24 Verizon Patent And Licensing Inc. Internet of things communication unification and verification
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10909265B2 (en) * 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US12045266B2 (en) 2016-06-10 2024-07-23 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10073692B2 (en) * 2016-12-12 2018-09-11 Google Llc System and method of managing application updates
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US10282199B2 (en) * 2017-09-05 2019-05-07 Verizon Patent And Licensing Inc. Selecting a software development kit (SDK) of an application to be activated based on characteristics of the application
US20190102156A1 (en) * 2017-09-29 2019-04-04 Compuware Corporation Streamlined Technique For Deploying Application In Cloud Computing Environment
CN108366127B (zh) * 2018-03-07 2021-05-04 北京奇艺世纪科技有限公司 一种软件包的获取方法及装置
CN110392067B (zh) 2018-04-16 2021-07-20 比亚迪股份有限公司 第三方应用的开发***及方法
US10789058B2 (en) * 2018-05-30 2020-09-29 Microsoft Technology Licensing, Llc Extensibility of unified platform
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11063946B2 (en) 2018-10-24 2021-07-13 Servicenow, Inc. Feedback framework
US11176224B2 (en) * 2018-11-13 2021-11-16 Bank Of America Corporation Security tool
US11562136B2 (en) 2019-06-11 2023-01-24 International Business Machines Corporation Detecting programming language deficiencies cognitively
EP4018305A4 (en) * 2019-08-23 2023-04-26 Telefonaktiebolaget Lm Ericsson (Publ) METHODS AND DEVICES FOR PROVIDING A FUNCTION AS A SERVICE PLATFORM
CN111338959B (zh) * 2020-02-27 2021-06-15 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
US11455237B2 (en) * 2020-06-01 2022-09-27 Agora Lab, Inc. Highly scalable system and method for automated SDK testing
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
US11444976B2 (en) 2020-07-28 2022-09-13 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
WO2022032072A1 (en) 2020-08-06 2022-02-10 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
WO2022061270A1 (en) 2020-09-21 2022-03-24 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
EP4241173A1 (en) 2020-11-06 2023-09-13 OneTrust LLC Systems and methods for identifying data processing activities based on data discovery results
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
WO2022170254A1 (en) 2021-02-08 2022-08-11 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US20240098109A1 (en) 2021-02-10 2024-03-21 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
WO2022192269A1 (en) 2021-03-08 2022-09-15 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US20230102816A1 (en) * 2021-09-30 2023-03-30 Vmware, Inc. Automatic updating of application functionality
KR20230077152A (ko) * 2021-11-25 2023-06-01 조용래 모듈화 방식의 게임 제작 방법 및 시스템
CN114637525A (zh) * 2022-03-10 2022-06-17 ***股份有限公司 Sdk与接入应用的兼容方法、装置、设备及介质
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090171484A1 (en) * 2007-12-29 2009-07-02 Amx, Llc Self-describing device module and system and computer-readable medium for the production thereof
CN101697125A (zh) * 2009-11-04 2010-04-21 中兴通讯股份有限公司 一种开发环境转换的方法及装置
US20100287525A1 (en) * 2009-05-07 2010-11-11 Microsoft Corporation Extension through visual reflection
US20110161912A1 (en) * 2009-12-30 2011-06-30 Qualzoom, Inc. System for creation and distribution of software applications usable on multiple mobile device platforms
US20120291022A1 (en) * 2011-05-09 2012-11-15 Google Inc. Generating application recommendations based on user installed applications
US20140123115A1 (en) * 2012-10-26 2014-05-01 Jsmapreduce Corporation Hybrid local/remote infrastructure for data processing with lightweight setup, powerful debuggability, controllability, integration, and productivity features
CN104503780A (zh) * 2014-12-09 2015-04-08 北京奇虎科技有限公司 一种提供应用渠道包的方法和装置

Family Cites Families (69)

* Cited by examiner, † Cited by third party
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
US5845077A (en) 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US6009274A (en) * 1996-12-13 1999-12-28 3Com Corporation Method and apparatus for automatically updating software components on end systems over a network
US7310801B2 (en) * 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
US7191439B2 (en) 2001-02-28 2007-03-13 Palmsource, Inc. Verification of software application attributes for optimal compatibility with a software system
JP2002278754A (ja) * 2001-03-15 2002-09-27 Toshiba Corp ソフトウェア部品ライブラリ管理システム、その方法およびソフトウェア部品ライブラリ管理プログラム
US7134122B1 (en) * 2001-05-31 2006-11-07 Oracle International Corporation One click deployment
SE0102199D0 (sv) * 2001-06-20 2001-06-20 Ericsson Telefon Ab L M Upgrading field programmable gate arrays over datacommunication networks
US7761870B2 (en) * 2003-03-06 2010-07-20 Sap Ag Methods and systems for generating an application consistent with a profile
US7334225B2 (en) * 2003-04-28 2008-02-19 International Business Machines Corporation Method, system, and computer program product for on demand enablement of dormant computing resources
US7185231B2 (en) * 2003-05-14 2007-02-27 Microsoft Corporation Methods and systems for collecting, analyzing, and reporting software reliability and availability
US6976253B1 (en) * 2003-07-30 2005-12-13 Microsoft Corporation Method and apparatus for configuring a mobile device
US7987459B2 (en) 2005-03-16 2011-07-26 Microsoft Corporation Application programming interface for identifying, downloading and installing applicable software updates
CN101040552B (zh) * 2005-04-18 2010-12-01 捷讯研究有限公司 控制软件版本更新的方法和***
US7802197B2 (en) * 2005-04-22 2010-09-21 Microsoft Corporation Adaptive systems and methods for making software easy to use via software usage mining
US8352935B2 (en) * 2005-05-19 2013-01-08 Novell, Inc. System for creating a customized software distribution based on user requirements
US7672875B2 (en) * 2005-06-06 2010-03-02 International Business Machines Corporation Presenting an alternative product package offer from a web vendor
US20070233782A1 (en) 2006-03-28 2007-10-04 Silentclick, Inc. Method & system for acquiring, storing, & managing software applications via a communications network
US8015547B2 (en) 2006-06-29 2011-09-06 Augusta Systems, Inc. Reconfigurable, hierarchical component-based architecture and framework and methods for rapidly developing sensor device-enabling software applications
US9544196B2 (en) * 2006-09-20 2017-01-10 At&T Intellectual Property I, L.P. Methods, systems and computer program products for determining installation status of SMS packages
US20080127037A1 (en) * 2006-10-16 2008-05-29 Prashanth Kadur System and method for detecting software on a computing device
US20080163199A1 (en) * 2006-12-30 2008-07-03 Rao Siddhartha Ashok Multi-product package creation and editing
US20080301669A1 (en) 2007-05-30 2008-12-04 Google Inc. Dynamically Self-Updating by a Software Application on a Device
US7890814B2 (en) * 2007-06-27 2011-02-15 Microsoft Corporation Software error report analysis
US8972865B2 (en) * 2007-10-19 2015-03-03 Opera Software Asa Method and device for providing easy access to pre-selected data resources
US20090144728A1 (en) * 2007-12-04 2009-06-04 Bea Systems, Inc. Module based software system linking runtime to install time
US8566891B2 (en) * 2008-03-31 2013-10-22 Verizon Patent And Licensing Inc. Systems and methods for monitoring, troubleshooting and/or controlling a digital television
US8813066B2 (en) * 2008-05-06 2014-08-19 International Business Machines Corporation Multi-component software application installation facility
US8539478B2 (en) * 2008-06-20 2013-09-17 International Business Machines Corporation Dynamic web installer
US20100037204A1 (en) * 2008-08-07 2010-02-11 Google Inc. Content Distribution for Mobile Device
US8413259B2 (en) * 2009-02-26 2013-04-02 Red Hat, Inc. Methods and systems for secure gated file deployment associated with provisioning
US20100287529A1 (en) * 2009-05-06 2010-11-11 YDreams - Informatica, S.A. Joint Stock Company Systems and Methods for Generating Multimedia Applications
US9886696B2 (en) * 2009-07-29 2018-02-06 Shopkick, Inc. Method and system for presence detection
US9383970B2 (en) * 2009-08-13 2016-07-05 Microsoft Technology Licensing, Llc Distributed analytics platform
US8874694B2 (en) * 2009-08-18 2014-10-28 Facebook, Inc. Adaptive packaging of network resources
US9639347B2 (en) * 2009-12-21 2017-05-02 International Business Machines Corporation Updating a firmware package
US8245082B2 (en) * 2010-02-25 2012-08-14 Red Hat, Inc. Application reporting library
CA2793401C (en) * 2010-03-17 2019-05-07 Siamak Farah A cloud-based desktop and subscription application platform apparatuses, methods and systems
CN103038752B (zh) * 2010-05-19 2016-04-13 谷歌公司 一种用于管理软件问题报告的方法、***和设备
CN102457504B (zh) * 2010-10-28 2015-06-10 中兴通讯股份有限公司 应用商店***及使用该应用商店***进行应用开发的方法
US8433620B2 (en) * 2010-11-04 2013-04-30 Microsoft Corporation Application store tastemaker recommendations
US8863114B2 (en) * 2010-12-06 2014-10-14 Red Hat, Inc. Managing software packages using a version control system
US8762197B2 (en) * 2011-03-21 2014-06-24 P4Rc, Inc. Social enablement of mobile casual games enabling mobile users to connect within and outside games with other mobile users, brands, game developers, and others online, on mobile devices, and in social networks
US8261231B1 (en) * 2011-04-06 2012-09-04 Media Direct, Inc. Systems and methods for a mobile application development and development platform
US9058612B2 (en) * 2011-05-27 2015-06-16 AVG Netherlands B.V. Systems and methods for recommending software applications
US20150242470A1 (en) * 2011-05-27 2015-08-27 AVG Netherlands B.V. Systems and methods for recommending software applications
CA2744165A1 (en) * 2011-06-23 2012-12-23 Ibm Canada Limited - Ibm Canada Limitee Centrally controlled proximity based software installation
US8898676B2 (en) * 2011-08-26 2014-11-25 Vmware, Inc. Management of software updates for software components in a virtualized environment of a datacenter using dependency relationships
US9934027B2 (en) * 2011-09-21 2018-04-03 Actian Corporation Method and apparatus for the development, delivery and deployment of action-oriented business applications supported by a cloud based action server platform
US9430206B2 (en) * 2011-12-16 2016-08-30 Hsiu-Ping Lin Systems for downloading location-based application and methods using the same
US20130205277A1 (en) * 2012-02-07 2013-08-08 Telerik, AD Environment and method for cross-platform development of software applications
US20140053126A1 (en) * 2012-02-13 2014-02-20 Mark A. Watson Integrated mobile application development platform
US8739249B1 (en) * 2012-03-08 2014-05-27 Google Inc. Push notifications for web applications and browser extensions
US9332381B2 (en) * 2012-03-24 2016-05-03 Intel Corporation Location-based application recommendation
US9407443B2 (en) * 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US8806434B2 (en) * 2012-06-28 2014-08-12 International Business Machines Corporation Dynamically configuring an integrated development environment
US10339560B2 (en) * 2012-08-01 2019-07-02 Oath Inc. Mobile application usage-based revenue targeting systems and methods
US20140123157A1 (en) * 2012-10-31 2014-05-01 Nokia Corporation Method and apparatus for providing application notifications
GB2507994A (en) * 2012-11-16 2014-05-21 Vodafone Ip Licensing Ltd Mobile Device Application Analysis
US20140172557A1 (en) * 2012-12-19 2014-06-19 FootTrafficeker LLC Interactive display system
US8886769B2 (en) * 2013-01-18 2014-11-11 Limelight Networks, Inc. Selective content pre-warming in content delivery networks based on user actions and content categorizations
IL272582B2 (en) 2013-02-10 2024-05-01 Wix Com Ltd Communication interface for third party applications
US9158518B2 (en) * 2013-03-11 2015-10-13 Blackberry Limited Collaborative application development environment using a connected device
US20140365311A1 (en) * 2013-06-11 2014-12-11 Facebook, Inc Associating Advertisements with Events
DK3011442T3 (da) * 2013-06-18 2021-01-04 Ciambella Ltd Fremgangsmåde og anordning til generering af et brugerdefineret softwareudviklingskit (sdk)
EP2889813B1 (en) * 2013-12-27 2017-11-15 Buongiorno S.P.A. Method and system for implementing in-app software development kits
US9485615B2 (en) * 2014-09-26 2016-11-01 At&T Intellectual Property I, L.P. Local peer-to-peer network for providing recommendations and enforcing security policies
US9430905B2 (en) * 2014-12-17 2016-08-30 Jackpot Rising Inc. Method and system for gaming revenue
US20160299977A1 (en) * 2015-04-13 2016-10-13 Quixey, Inc. Action-Based App Recommendation Engine

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090171484A1 (en) * 2007-12-29 2009-07-02 Amx, Llc Self-describing device module and system and computer-readable medium for the production thereof
US20100287525A1 (en) * 2009-05-07 2010-11-11 Microsoft Corporation Extension through visual reflection
CN101697125A (zh) * 2009-11-04 2010-04-21 中兴通讯股份有限公司 一种开发环境转换的方法及装置
US20110161912A1 (en) * 2009-12-30 2011-06-30 Qualzoom, Inc. System for creation and distribution of software applications usable on multiple mobile device platforms
US20120291022A1 (en) * 2011-05-09 2012-11-15 Google Inc. Generating application recommendations based on user installed applications
US20140123115A1 (en) * 2012-10-26 2014-05-01 Jsmapreduce Corporation Hybrid local/remote infrastructure for data processing with lightweight setup, powerful debuggability, controllability, integration, and productivity features
CN104503780A (zh) * 2014-12-09 2015-04-08 北京奇虎科技有限公司 一种提供应用渠道包的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TUHIN BORGOHAIN: "Survey of Operating Systems for the IoT Environment", 《ADVANCED NETWORK AND APPLICATIONS》 *
孟晓龙: "Win7***下Android开发平台的搭建", 《计算机技术与信息发展》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086038A (zh) * 2018-07-10 2018-12-25 千寻位置网络有限公司 基于Spark的大数据开发方法及装置、终端
CN109086038B (zh) * 2018-07-10 2022-05-31 千寻位置网络有限公司 基于Spark的大数据开发方法及装置、终端
CN109636504A (zh) * 2018-11-07 2019-04-16 北京慧流科技有限公司 信息处理方法及装置、电子设备及存储介质
CN109636504B (zh) * 2018-11-07 2021-11-05 北京慧流科技有限公司 信息处理方法及装置、电子设备及存储介质
CN111597101A (zh) * 2019-02-21 2020-08-28 上海哔哩哔哩科技有限公司 Sdk接入状态检测方法、计算机设备及计算机可读存储介质
CN111597101B (zh) * 2019-02-21 2023-09-08 上海哔哩哔哩科技有限公司 Sdk接入状态检测方法、计算机设备及计算机可读存储介质
CN112612472A (zh) * 2020-12-11 2021-04-06 北京旷视科技有限公司 一种嵌入式模型sdk开发方法和开发平台
CN112612472B (zh) * 2020-12-11 2022-08-23 北京旷视科技有限公司 一种嵌入式模型sdk开发方法和开发平台
CN116171423A (zh) * 2021-07-23 2023-05-26 奥迪股份公司 用于定制车辆功能的***和方法

Also Published As

Publication number Publication date
JP2018522317A (ja) 2018-08-09
GB201717662D0 (en) 2017-12-13
US20170249139A1 (en) 2017-08-31
EP3286643A1 (en) 2018-02-28
US9841969B2 (en) 2017-12-12
KR20170136560A (ko) 2017-12-11
WO2017041021A1 (en) 2017-03-09
DE112016002120T5 (de) 2018-03-22
GB2555026A (en) 2018-04-18
US20170060568A1 (en) 2017-03-02

Similar Documents

Publication Publication Date Title
CN107924305A (zh) 软件开发和分发平台
US20210397541A1 (en) System and method of handling complex experiments in a distributed system
US11574063B2 (en) Automatic detection of an incomplete static analysis security assessment
US10310969B2 (en) Systems and methods for test prediction in continuous integration environments
EP2950207B1 (en) Aggregating source code metric values
US10505826B2 (en) Statistical pattern correlation of events in cloud deployments using codebook approach
CN110546606A (zh) 租户升级分析
US11687335B2 (en) Software defect prediction model
US10678926B2 (en) Identifying security risks in code using security metric comparison
US11263267B1 (en) Apparatuses, methods, and computer program products for generating interaction vectors within a multi-component system
Preuveneers et al. Systematic scalability assessment for feature oriented multi-tenant services
US11138221B1 (en) Data aggregation and reporting environment for data center infrastructure management
CN111654495A (zh) 用于确定流量产生来源的方法、装置、设备及存储介质
US20240007521A1 (en) Systems and methods for decentralized detection of software platforms operating on website pages
US11262990B2 (en) Application topology discovery
US10216747B2 (en) Customized synthetic data creation
US20170171030A1 (en) System and method for digital optimization of electronic discovery
US20240036962A1 (en) Product lifecycle management
Marques Multiplatform Application for Monitoring Services in a Hospital Environment
Misner ON MODELING Building support for use-based design into hardware products
CN113392076A (zh) 获取元数据质量信息的方法、装置、电子设备和介质
WO2022212379A1 (en) Apparatuses, methods, and computer program products for generating interaction vectors within a multi-component system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180417