CN111562928A - 资源提供方法及装置、资源下载方法及装置 - Google Patents

资源提供方法及装置、资源下载方法及装置 Download PDF

Info

Publication number
CN111562928A
CN111562928A CN202010352402.3A CN202010352402A CN111562928A CN 111562928 A CN111562928 A CN 111562928A CN 202010352402 A CN202010352402 A CN 202010352402A CN 111562928 A CN111562928 A CN 111562928A
Authority
CN
China
Prior art keywords
party
function
depended
target
optional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010352402.3A
Other languages
English (en)
Other versions
CN111562928B (zh
Inventor
答奇
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.)
Douyin Vision Co Ltd
Douyin Vision Beijing Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202010352402.3A priority Critical patent/CN111562928B/zh
Publication of CN111562928A publication Critical patent/CN111562928A/zh
Application granted granted Critical
Publication of CN111562928B publication Critical patent/CN111562928B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种资源提供方法及装置、资源下载方法及装置,其中,本公开首先确定目标软件工具开发包SDK的基础功能和至少一个可选功能;之后,确定实现基础功能依赖的多个三方库和实现每个可选功能所依赖的多个三方库;基于每个可选功能所依赖的多个三方库,和基础功能所依赖的多个三方库,分别确定每个可选功能所依赖的多个目标三方库;最后,基于每个可选功能所依赖的多个目标三方库,分别生成每个可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。本公开实现了为业务接入端提供其所需要的子SDK,而并非包括所有功能的整个的SDK,从而能够有效减少业务接入端需要下载的SDK的体积。

Description

资源提供方法及装置、资源下载方法及装置
技术领域
本公开涉及计算机软件处理领域,具体而言,涉及一种资源提供方法及装置、资源下载方法及装置、电子设备、计算机可读存储介质。
背景技术
软件开发工具包SDK一般是为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。在具体应用中,资源提供端为业务接入端提供SDK,业务接入端下载SDK之后,利用下载的SDK接入技术中台。
由于技术中台能够提供的功能日益完善,SDK的体积也越来越大,那么业务接入端下载SDK之后,业务接入端中对应的APP也会占用业务接入端更大的体积。在实际应用中,业务接入端只需要使用SDK中的一部分功能,造成了业务接入端资源的占用和浪费。
发明内容
有鉴于此,本公开至少提供一种资源提供方法及装置、资源下载方法及装置。
第一方面,本公开提供了一种资源提供方法,包括:
确定目标软件工具开发包SDK的基础功能和至少一个可选功能;
确定实现所述基础功能依赖的多个三方库和实现每个所述可选功能所依赖的多个三方库;
基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库;多个所述目标三方库之间不重叠,并且各所述目标三方库与所述基础功能依赖的多个三方库之间不重叠;
基于每个所述可选功能所依赖的多个目标三方库,分别生成每个所述可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。
在一种可能的实施方式中,所述基于每个所述可选功能所依赖的多个三方库和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库,包括:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选不与所述基础功能所依赖的三方库重叠的三方库,并将筛选得到的三方库作为所述目标三方库。
在一种可能的实施方式中,所述基于每个所述可选功能所依赖的多个三方库和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库,还包括:
针对每个所述可选功能,从该可选功能所依赖的目标三方库中,筛选不与其他可选功能所依赖的三方库重叠的目标三方库,并将筛选得到的目标三方库作为最终的目标三方库。
在一种可能的实施方式中,上述资源提供方法还包括:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选与其他可选功能共同依赖的三方库,得到待处理三方库;
将所述待处理三方库与所述基础功能所依赖的三方库进行比对,将未包含在基础功能所依赖的三方库中的待处理三方库,加入到所述基础功能所依赖的三方库中,得到所述基础功能所依赖的目标三方库。
在一种可能的实施方式中,确定所述基础功能所依赖的目标三方库,还包括:
比较包含在基础功能所依赖的三方库中的待处理三方库与所述基础功能所依赖的对应的三方库的版本;
在该待处理三方库的版本高于所述基础功能所依赖的对应的三方库的版本时,将所述基础功能所依赖的对应的三方库的版本升级为该待处理三方库的版本;
在该待处理三方库的版本低于所述基础功能所依赖的对应的三方库的版本,或与所述基础功能所依赖的对应的三方库的版本相同时,保持所述基础功能所依赖的对应的三方库的版本不变。
在一种可能的实施方式中,上述资源提供方法还包括:
确定所述基础功能所依赖的多个目标三方库,生成基础SDK。
第二方面,本公开提供了一种资源下载方法,包括:
生成包括功能需求信息的资源下载请求;
将所述资源下载请求发送给资源提供端,以使所述资源提供端确定与所述功能需求信息对应的可选功能,并反馈与所述可选功能对应的目标子软件工具开发包SDK;
利用接收的所述目标子SDK实现对应的可选功能。
在一种可能的实施方式中,每个所述可选功能对应的子软件工具开发包SDK分别包括每个所述可选功能所依赖的多个目标三方库;其中,每个所述可选功能所依赖的多个目标三方库是所述资源提供端基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定的;
多个所述目标三方库之间不重叠,并且各所述目标三方库与基础功能依赖的多个三方库之间不重叠。
在一种可能的实施方式中,在所述利用接收的所述目标子SDK实现对应的可选功能之前,上述资源下载方法还包括:
接收所述资源提供端响应于所述资源下载请求,反馈的与所述基础功能对应的基础SDK;
所述利用接收的所述目标子SDK实现对应的可选功能,包括:
利用接收的所述目标子SDK和所述基础SDK实现对应的可选功能
第三方面,本公开提供了一种资源提供装置,包括:
功能拆分模块,用于确定目标软件工具开发包SDK的基础功能和至少一个可选功能;
三方库筛选模块,用于确定实现所述基础功能依赖的多个三方库和实现每个所述可选功能所依赖的多个三方库;
三方库处理模块,用于基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库;多个所述目标三方库之间不重叠,并且各所述目标三方库与所述基础功能依赖的多个三方库之间不重叠;
开发包生成模块,用于基于每个所述可选功能所依赖的多个目标三方库,分别生成每个所述可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。
在一种可能的实施方式中,所述三方库处理模块在基于每个所述可选功能所依赖的多个三方库和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库时,用于:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选不与所述基础功能所依赖的三方库重叠的三方库,并将筛选得到的三方库作为所述目标三方库。
在一种可能的实施方式中,所述三方库处理模块还用于:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选与其他可选功能共同依赖的三方库,得到待处理三方库;
将所述待处理三方库与所述基础功能所依赖的三方库进行比对,将未包含在基础功能所依赖的三方库中的待处理三方库,加入到所述基础功能所依赖的三方库中,得到所述基础功能所依赖的目标三方库。
第四方面,本公开提供了一种资源下载装置,包括:
请求生成模块,用于生成包括功能需求信息的资源下载请求;
开发包提供模块,用于将所述资源下载请求发送给资源提供端,以使所述资源提供端确定与所述功能需求信息对应的可选功能,并反馈与所述可选功能对应的目标子软件工具开发包SDK;
功能实现模块,用于利用接收的所述目标子SDK实现对应的可选功能。
第五方面,本公开提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述资源提供方法或资源下载方法的步骤。
第六方面,本公开还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述资源提供方法或资源下载方法的步骤。
本公开上述装置、电子设备、和计算机可读存储介质,至少包含与本公开上述方法的任一方面或任一方面的任一实施方式的技术特征实质相同或相似的技术特征。
本公开提供了一种资源提供方法及装置、资源下载方法及装置,其中,本公开首先确定目标软件工具开发包SDK的基础功能和至少一个可选功能;之后,确定实现基础功能依赖的多个三方库和实现每个可选功能所依赖的多个三方库;基于每个可选功能所依赖的多个三方库,和基础功能所依赖的多个三方库,分别确定每个可选功能所依赖的多个目标三方库;最后,基于每个可选功能所依赖的多个目标三方库,分别生成每个可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。本公开实现了为业务接入端提供其所需要的子SDK,而并非包括所有功能的整个的SDK,从而能够有效减少业务接入端需要下载的SDK的体积。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了现有技术中SDK的结构示意图;
图2示出了本公开实施例提供的一种资源提供方法的流程图;
图3示出了本公开实施例提供的一种资源下载方法的流程图;
图4示出了本公开实施例提供的一种资源提供装置的结构示意图;
图5示出了本公开实施例提供的一种资源下载装置的结构示意图;
图6示出了本公开实施例提供的一种电子设备的结构示意图;
图7示出了本公开实施例提供的另一种资源提供方法的流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,应当理解,本公开中附图仅起到说明和描述的目的,并不用于限定本公开的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本公开中使用的流程图示出了根据本公开的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本公开内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,本公开实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
随着模块化的发展,SDK开发不是独立的开发某个功能,而是会依赖很多外部的三方库,以实现SDK的快速开发。目前,SDK的结构如图1所示,SDK中用于实现各个功能依赖的三方库存在于SDK底层,各个功能存在于SDK上层。SDK中所有功能集成到maven仓库下的一个module中,之后再发布和输出。
所有业务接入端在使用SDK的功能时,均需接入这个唯一的包括所有功能的SDK,导致业务接入端接入的SDK体积无用增长,浪费业务接入端的资源。
针对上述问题,本公开提供了一种资源提供方法及装置、资源下载方法及装置。其中,本公开将SDK的功能进行分割,并为每个可选功能确定了其所需要依赖的三方库。之后基于每个可选功能依赖的三方库,为每个可选功能生成了对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。本公开实现了为业务接入端提供其所需要的子SDK,而并非包括所有功能的整个的SDK,从而能够有效减少业务接入端需要下载的SDK的体积。
下面通过具体的实施例对本申请的资源提供方法及装置、资源下载方法及装置进行详细的说明。
本公开实施例提供了一种资源提供方法,该方法应用于进生成SDK的资源提供端,具体地,如图2所示,可以包括如下步骤:
S210、确定目标软件工具开发包SDK的基础功能和至少一个可选功能。
这里,资源提供端首先基于技术中台能够提供的功能,将目标SDK本身按照功能粒度进行拆分,得到基础功能和至少一个可选功能。基础功能可以包括网络功能、日志功能、埋点功能等。可选功能是在基础功能的基础上,SDK能够实现的其它功能,例如计费功能等。
S220、确定实现所述基础功能依赖的多个三方库和实现每个所述可选功能所依赖的多个三方库。
上述基础功能和各个可选功能的实现需要依赖至少一个三方库,三方库是一种模块化的、第三方提供的库。基础功能和可选功能之间,以及不同可选功能之间依赖的三方库可能出现重叠,因此,如果直接利用各个可选功能依赖的三方库形成子SDK,可能会造成不同的子SDK重复引入相同的三方库,出现SDK调用失败。本步骤在解决上述问题之前,首先确定了基础功能依赖的三方库和各个可选功能依赖的三方库,以便对确定的三方库进行处理或筛选,生成各个子SDK。该各个SDK依赖的三方库之间不存在重叠,因此不会造成重复引入相同的三方库的问题。
S230、基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库;多个所述目标三方库之间不重叠,并且各所述目标三方库与所述基础功能依赖的多个三方库之间不重叠。
这里,基于基础功能所依赖的多个三方库和可选功能所依赖的多个三方库,对可选功能所依赖的多个三方库进行了筛选,得到可选功能所依赖的多个目标三方库。筛选的目标是,可选功能依赖的目标三方库中不存在与基础功能所依赖的三方库中相重叠的三方库,以及,各个可选功能依赖的目标三方库之间不存在重叠的三方库。在得到各个可选功能依赖的目标三方库之后,可以利用各个可选功能依赖的目标三方库形成各个可选功能对应的子SDK。
在具体实施时,可以首先基于基础功能依赖的一个或多个三方库,构建基础功能对应的基础SDK,并发布到maven module中。之后,可选功能基于基础SDK中包括的各个三方库和自身依赖的三方库,确定自身依赖的目标三方库。
例如,可以利用如下步骤筛选可选功能依赖的目标三方库:针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选不与所述基础功能所依赖的三方库以及各个其他可选功能所依赖的三方库相重叠的三方库,并将筛选得到的三方库作为所述目标三方库。
在筛选不与所述基础功能所依赖的三方库相重叠的三方库时,具体的可以将基础功能依赖的三方库作为一个集合,将可选功能依赖的三方库作为一个集合,计算两个集合的交集,得到的即为基础功能和可选功能重叠依赖的三方库。之后,将交集对应的三方库从可选功能依赖的集合中去除,剩余的三方库即为可选功能依赖的目标三方库。
S240、基于每个所述可选功能所依赖的多个目标三方库,分别生成每个所述可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。
在确定了实现可选功能所依赖的目标三方库之后,还需要获取实现可选功能的业务实现代码,之后对所述业务实现代码和所述目标三方库进行打包,得到能够实现所述可选功能的子SDK。
另外,本实施例中基础功能对应的基础SDK可以基于基础功能依赖的三方库和基础功能对应的业务实现代码生成。基础功能依赖的三方库可以是步骤220确定的基础功能依赖的多个三方库。
上述实施例实现了为业务接入端提供其所需要的子SDK,而并非包括所有功能的整个的SDK,从而能够有效减少业务接入端需要下载的SDK的体积。
在基础功能依赖的三方库中与某一可选功能依赖的三方库中存在重叠的三方库时,简单的将可选功能依赖的三方库中重叠的三方库去除是不够的,还需要检验两种功能依赖的该重叠的三方库的版本。如果基础功能依赖的该重叠的三方库的版本较低,则不仅要将可选功能依赖的该重叠的三方库删除,还需要将基础功能依赖的该重叠的三方库升级为可选功能依赖的三方库的版本。
在具体应用中,不仅基础功能依赖的三方库与可选功能依赖的三方库之间可能存在重叠的三方库,不同的可选功能依赖的三方库之间也可能存在重叠的三方库。不同的可选功能依赖的三方库之间存在的重叠三方库同样可能造成三方库的重复引入,以至于SDK调用失败。因此可以利用如下步骤对可选功能依赖的目标三方库进行进一步的筛选:
针对每个所述可选功能,从该可选功能所依赖的目标三方库中,筛选不与其他可选功能所依赖的三方库重叠的目标三方库,并将筛选得到的目标三方库作为最终的目标三方库。
上述步骤将不同可选功能依赖的目标三方库中重叠的三方库进行了去除,剩下的目标三方库为每个可选功能自身单独依赖的三方库,即,为每个可选功能确定的目标三方库之间不存在重叠的三方库,从而能够避免三方库的重复引入。
在对可选功能依赖的目标三方库进行了进一步的筛选之后,为了保证各个可选功能的实现,可以将不同的可选功能依赖的重叠的三方库加入基础功能依赖的三放库的集合中,作为基础功能依赖的目标三方库。具体可以利用如下步骤实现:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选与其他可选功能共同依赖的三方库,得到待处理三方库;将所述待处理三方库与所述基础功能所依赖的三方库进行比对,将未包含在基础功能所依赖的三方库中的待处理三方库,加入到所述基础功能所依赖的三方库中。
比较包含在基础功能所依赖的三方库中的待处理三方库与所述基础功能所依赖的对应的三方库的版本;在该待处理三方库的版本高于所述基础功能所依赖的对应的三方库的版本时,将所述基础功能所依赖的对应的三方库的版本升级为该待处理三方库的版本;在该待处理三方库的版本低于所述基础功能所依赖的对应的三方库的版本,或与所述基础功能所依赖的对应的三方库的版本相同时,保持所述基础功能所依赖的对应的三方库的版本不变。至此,得到所述基础功能所依赖的目标三方库。
在得到基础功能依赖的目标三方库之后,基于该确定的目标三方库,可以生成基础SDK。
由于基础功能对应的目标三方库中不仅包括实现基础功能所依赖的各个三方库,还包括不同的可选功能所依赖的三方库中重叠的三方库,因此,业务接入端在接入SDK时,不仅需要接入其需要的可选功能对应的子SDK,还需要接入上述基础SDK,以保证子SDK功能的顺利实现。
上述实施例的资源提供方法,各个可选功能单独依赖的三方库分别由各个可选功能对应的SDK单独引入,不在基础功能对应的SDK中引入。基础功能对应的基础SDK引入的三方库包括基础功能自身依赖的三方库和各个可选功能之间重叠的三方库。上述实施例去除了基础SDK和各个子SDK之间、不同子SDK之间重叠的三方库,避免了类冲突;并且能够有效减少业务接入端接入的SDK的体积;另外,还能够保持基础功能中的三方库为最高的版本,保证了业务接入端在接入或不接入相关子SDK时,基础SDK都能正常的运行。
下面再通过一个具体的实施例对本公开的资源提供方法进行说明。
如图7所示,该资源提供方法用于构建某一可选功能依赖的子SDK包括如下步骤:
步骤一、解析实现可选功能做需要依赖的多个三方库,并利用解析得到的多个三方库构建第一集合;
步骤二、解析实现基础功能做需要依赖的多个三方库,并利用解析得到的多个三方库构建第二集合;
步骤三、计算第一集合和第二集合的交集,并判断得到的交集是否为空;
步骤四、若计算得到的交集不为空,则,针对交集中的每个三方库,判断属于可选功能的三方库的版本是否高于属于基础功能的三方库的版本;
步骤五、如果属于可选功能的三方库的版本高于属于基础功能的三方库的版本,则,需要将基础功能对应的三方库的版本升级为可选功能对应三方库的版本;
步骤六、如果属于可选功能的三方库的版本不高于属于基础功能的三方库的版本,则将上述属于可选功能的三方库从第一集合中剔除;
步骤七、解析实现其它各个可选功能做需要依赖的多个三方库,并利用解析得到的多个三方库构建多个第三集合;
步骤八、计算第一集合和每个第三集合的交集,并将交集中的三方库从第一集合中剔除;
步骤九、利用最终的第一集合中的三方库构建子SDK。
如图3所示,本公开还提供了一种资源下载方法,该方法应用于需要下载SDK的业务接入端,具体包括:
S310、生成包括功能需求信息的资源下载请求。
业务接入端在需要接入技术中台时,会基于自身的需求生成资源下载请求。资源下载请求中包括功能需求信息,这里的功能需求信息与SDK的可选功能相对应,基于功能需求信息能够确定业务接入端需要获取或使用的可选功能。
S320、将所述资源下载请求发送给资源提供端,以使所述资源提供端确定与所述功能需求信息对应的可选功能,并反馈与所述可选功能对应的目标子软件工具开发包SDK。
业务接入端需求的可选功能还可以包括一个或多个,基于可选功能对应的子SDK能够使业务接入端从技术中台中获取或实现对应的可选功能。
上述每个所述可选功能对应的子软件工具开发包SDK分别包括每个所述可选功能所依赖的多个目标三方库;其中,每个所述可选功能所依赖的多个目标三方库是所述资源提供端基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定的。多个所述目标三方库之间不重叠,并且各所述目标三方库与基础功能依赖的多个三方库之间不重叠。
S330、利用接收的所述目标子SDK实现对应的可选功能。
上述实施例基于业务接入端的需求下载对应的子SDK,能够有效降低业务接入端需要下载的SDK的体积。
另外,在业务接入端请求对应的子SDK时,资源提供端还需要向业务接入端发送的基础SDK,以保证子SDK功能的顺利实现。
对应于上述资源提供方法,本公开实施例还提供了一种资源提供装置,该装置应用于为业务接入端提供下载资源的资源提供端,并且该装置及其各个模块能够执行与上述资源提供方法相同的方法步骤,并且能够达到相同或相似的有益效果,因此对于重复的部分不再赘述。
具体地,如图4所示,本公开的资源提供装置包括:
功能拆分模块410,用于确定目标软件工具开发包SDK的基础功能和至少一个可选功能。
三方库筛选模块420,用于确定实现所述基础功能依赖的多个三方库和实现每个所述可选功能所依赖的多个三方库。
三方库处理模块430,用于基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库;多个所述目标三方库之间不重叠,并且各所述目标三方库与所述基础功能依赖的多个三方库之间不重叠;。
开发包生成模块440,用于基于每个所述可选功能所依赖的多个目标三方库,分别生成每个所述可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。
在一些实施例中,所述三方库处理模块430在基于每个所述可选功能所依赖的多个三方库和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库时,用于:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选不与所述基础功能所依赖的三方库重叠的三方库,并将筛选得到的三方库作为所述目标三方库。
在一些实施例中,所述三方库处理模块430还用于:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选与其他可选功能共同依赖的三方库,得到待处理三方库;
将所述待处理三方库与所述基础功能所依赖的三方库进行比对,将未包含在基础功能所依赖的三方库中的待处理三方库,加入到所述基础功能所依赖的三方库中,得到所述基础功能所依赖的目标三方库。
对应于上述资源下载方法,本公开实施例还提供了一种资源下载装置,该装置应用于业务接入端,并且该装置及其各个模块能够执行与上述资源下载方法相同的方法步骤,并且能够达到相同或相似的有益效果,因此对于重复的部分不再赘述。
具体地,如图5所示,本公开的一种资源下载装置包括:
请求生成模块510,用于生成包括功能需求信息的资源下载请求。
开发包提供模块520,用于将所述资源下载请求发送给资源提供端,以使所述资源提供端确定与所述功能需求信息对应的可选功能,并反馈与所述可选功能对应的目标子软件工具开发包SDK。
功能实现模块530,用于利用接收的所述目标子SDK实现对应的可选功能。
本公开实施例公开了一种电子设备,如图6所示,包括:处理器601、存储器602和总线603,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线603通信。
所述机器可读指令被所述处理器601执行时执行以下资源提供方法的步骤:
确定目标软件工具开发包SDK的基础功能和至少一个可选功能;
确定实现所述基础功能依赖的多个三方库和实现每个所述可选功能所依赖的多个三方库;
基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库;多个所述目标三方库之间不重叠,并且各所述目标三方库与所述基础功能依赖的多个三方库之间不重叠;
基于每个所述可选功能所依赖的多个目标三方库,分别生成每个所述可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。
所述机器可读指令被所述处理器601执行时执行以下资源下载方法的步骤:
生成包括功能需求信息的资源下载请求;
将所述资源下载请求发送给资源提供端,以使所述资源提供端确定与所述功能需求信息对应的可选功能,并反馈与所述可选功能对应的目标子软件工具开发包SDK;
利用接收的所述目标子SDK实现对应的可选功能。
除此之外,机器可读指令被处理器601执行时,还可以执行上述方法部分描述的任一实施方式中的方法内容,这里不再赘述。
本公开实施例还提供的一种对应于上述方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,本文不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本公开中不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种资源提供方法,其特征在于,包括:
确定目标软件工具开发包SDK的基础功能和至少一个可选功能;
确定实现所述基础功能依赖的多个三方库和实现每个所述可选功能所依赖的多个三方库;
基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库;多个所述目标三方库之间不重叠,并且各所述目标三方库与所述基础功能依赖的多个三方库之间不重叠;
基于每个所述可选功能所依赖的多个目标三方库,分别生成每个所述可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。
2.根据权利要求1所述的资源提供方法,其特征在于,所述基于每个所述可选功能所依赖的多个三方库和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库,包括:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选不与所述基础功能所依赖的三方库重叠的三方库,并将筛选得到的三方库作为所述目标三方库。
3.根据权利要求1所述的资源提供方法,其特征在于,所述基于每个所述可选功能所依赖的多个三方库和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库,还包括:
针对每个所述可选功能,从该可选功能所依赖的目标三方库中,筛选不与其他可选功能所依赖的三方库重叠的目标三方库,并将筛选得到的目标三方库作为目标三方库。
4.根据权利要求1-3中任一项所述的资源提供方法,其特征在于,还包括:
针对每个所述可选功能,从该可选功能所依赖的三方库中,筛选与其他可选功能共同依赖的三方库,得到待处理三方库;
将所述待处理三方库与所述基础功能所依赖的三方库进行比对,将未包含在基础功能所依赖的三方库中的待处理三方库,加入到所述基础功能所依赖的三方库中,得到所述基础功能所依赖的目标三方库。
5.根据权利要求4所述的资源提供方法,其特征在于,确定所述基础功能所依赖的目标三方库,还包括:
比较包含在基础功能所依赖的三方库中的待处理三方库与所述基础功能所依赖的对应的三方库的版本;
在该待处理三方库的版本高于所述基础功能所依赖的对应的三方库的版本时,将所述基础功能所依赖的对应的三方库的版本升级为该待处理三方库的版本;
在该待处理三方库的版本低于所述基础功能所依赖的对应的三方库的版本,或与所述基础功能所依赖的对应的三方库的版本相同时,保持所述基础功能所依赖的对应的三方库的版本不变。
6.根据权利要求4所述的资源提供方法,其特征在于,还包括:
确定所述基础功能所依赖的多个目标三方库,生成基础SDK。
7.一种资源下载方法,其特征在于,包括:
生成包括功能需求信息的资源下载请求;
将所述资源下载请求发送给资源提供端,以使所述资源提供端确定与所述功能需求信息对应的可选功能;
接收所述资源提供端发送的与所述可选功能对应的目标子软件工具开发包SDK;
利用所述目标子SDK实现对应的可选功能。
8.根据权利要求7所述的资源下载方法,其特征在于,每个所述可选功能对应的子软件工具开发包SDK分别包括每个所述可选功能所依赖的多个目标三方库;其中,每个所述可选功能所依赖的多个目标三方库是所述资源提供端基于每个所述可选功能所依赖的多个三方库,和基础功能所依赖的多个三方库分别确定的;
多个所述目标三方库之间不重叠,并且各所述目标三方库与所述基础功能依赖的多个三方库之间不重叠。
9.根据权利要求7所述的资源下载方法,其特征在于,在所述利用接收的所述目标子SDK实现对应的可选功能之前,还包括:
接收所述资源提供端响应于所述资源下载请求,反馈的与基础功能对应的基础SDK;
所述利用接收的所述目标子SDK实现对应的可选功能,包括:
利用接收的所述目标子SDK和所述基础SDK实现对应的可选功能。
10.一种资源提供装置,其特征在于,包括:
功能拆分模块,用于确定目标软件工具开发包SDK的基础功能和至少一个可选功能;
三方库筛选模块,用于确定实现所述基础功能依赖的多个三方库和实现每个所述可选功能所依赖的多个三方库;
三方库处理模块,用于基于每个所述可选功能所依赖的多个三方库,和所述基础功能所依赖的多个三方库,分别确定每个所述可选功能所依赖的多个目标三方库;多个所述目标三方库之间不重叠,并且各所述目标三方库与所述基础功能依赖的多个三方库之间不重叠;
开发包生成模块,用于基于每个所述可选功能所依赖的多个目标三方库,分别生成每个所述可选功能对应的子SDK,以便响应业务接入端的下载请求,提供该下载请求中所请求的可选功能对应的子SDK。
11.一种资源下载装置,其特征在于,包括:
请求生成模块,用于生成包括功能需求信息的资源下载请求;
开发包提供模块,用于将所述资源下载请求发送给资源提供端,以使所述资源提供端确定与所述功能需求信息对应的可选功能,并反馈与所述可选功能对应的目标子软件工具开发包SDK;
功能实现模块,用于利用接收的所述目标子SDK实现对应的可选功能。
12.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1~6任一所述的资源提供方法或权利要求7~9任一所述的资源下载方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1~6任一所述的资源提供方法或权利要求7~9任一所述的资源下载方法。
CN202010352402.3A 2020-04-28 2020-04-28 资源提供方法及装置、资源下载方法及装置 Active CN111562928B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010352402.3A CN111562928B (zh) 2020-04-28 2020-04-28 资源提供方法及装置、资源下载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010352402.3A CN111562928B (zh) 2020-04-28 2020-04-28 资源提供方法及装置、资源下载方法及装置

Publications (2)

Publication Number Publication Date
CN111562928A true CN111562928A (zh) 2020-08-21
CN111562928B CN111562928B (zh) 2023-05-05

Family

ID=72071544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010352402.3A Active CN111562928B (zh) 2020-04-28 2020-04-28 资源提供方法及装置、资源下载方法及装置

Country Status (1)

Country Link
CN (1) CN111562928B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407165A (zh) * 2021-06-29 2021-09-17 北京字节跳动网络技术有限公司 Sdk的生成和自升级方法、装置、可读介质和设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372963A1 (en) * 2013-06-18 2014-12-18 Ciambella Ltd. Method and apparatus for customized software development kit (sdk) generation
US20160321067A1 (en) * 2015-04-28 2016-11-03 Google Inc. Infrastructure for hosting and publishing software packages
CN106843857A (zh) * 2016-12-30 2017-06-13 北京五八信息技术有限公司 基于srp实现代码库转换sdk的方法和装置
CN107066291A (zh) * 2017-02-09 2017-08-18 阿里巴巴集团控股有限公司 软件开发工具包的打包方法、装置及设备、可读介质
CN107291436A (zh) * 2016-04-13 2017-10-24 上海思立微电子科技有限公司 Sdk包产生方法、装置及终端
CN107463855A (zh) * 2017-07-10 2017-12-12 杭州绿湾网络科技有限公司 基于sdk的防篡改方法和系统
CN107870787A (zh) * 2016-09-26 2018-04-03 平安科技(深圳)有限公司 应用程序插件化加载方法及系统
CN109814943A (zh) * 2018-12-21 2019-05-28 北京城市网邻信息技术有限公司 服务构建方法、加载方法及装置、电子设备、存储介质
CN110020281A (zh) * 2017-09-08 2019-07-16 天津数观科技有限公司 浏览器目标资源文件加载方法
CN110489159A (zh) * 2019-08-02 2019-11-22 北京字节跳动网络技术有限公司 安装包精简方法及数据解析方法、装置、介质和设备
CN110489162A (zh) * 2019-08-02 2019-11-22 北京字节跳动网络技术有限公司 安装包so文件精简方法、装置、介质和设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372963A1 (en) * 2013-06-18 2014-12-18 Ciambella Ltd. Method and apparatus for customized software development kit (sdk) generation
US20160321067A1 (en) * 2015-04-28 2016-11-03 Google Inc. Infrastructure for hosting and publishing software packages
CN107291436A (zh) * 2016-04-13 2017-10-24 上海思立微电子科技有限公司 Sdk包产生方法、装置及终端
CN107870787A (zh) * 2016-09-26 2018-04-03 平安科技(深圳)有限公司 应用程序插件化加载方法及系统
CN106843857A (zh) * 2016-12-30 2017-06-13 北京五八信息技术有限公司 基于srp实现代码库转换sdk的方法和装置
CN107066291A (zh) * 2017-02-09 2017-08-18 阿里巴巴集团控股有限公司 软件开发工具包的打包方法、装置及设备、可读介质
CN107463855A (zh) * 2017-07-10 2017-12-12 杭州绿湾网络科技有限公司 基于sdk的防篡改方法和系统
CN110020281A (zh) * 2017-09-08 2019-07-16 天津数观科技有限公司 浏览器目标资源文件加载方法
CN109814943A (zh) * 2018-12-21 2019-05-28 北京城市网邻信息技术有限公司 服务构建方法、加载方法及装置、电子设备、存储介质
CN110489159A (zh) * 2019-08-02 2019-11-22 北京字节跳动网络技术有限公司 安装包精简方法及数据解析方法、装置、介质和设备
CN110489162A (zh) * 2019-08-02 2019-11-22 北京字节跳动网络技术有限公司 安装包so文件精简方法、装置、介质和设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOHNKUI: "iOS APP瘦身技巧之第三方SDK瘦身" *
胡奇: "如何将多个jar包合并为一" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407165A (zh) * 2021-06-29 2021-09-17 北京字节跳动网络技术有限公司 Sdk的生成和自升级方法、装置、可读介质和设备
CN113407165B (zh) * 2021-06-29 2023-04-07 抖音视界有限公司 Sdk的生成和自升级方法、装置、可读介质和设备

Also Published As

Publication number Publication date
CN111562928B (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
CN109710340B (zh) 软件工具调用方法及装置、软件工具封装方法及装置
CN109871289B (zh) 一种远程过程调用rpc服务生成方法及装置
CN111125057B (zh) 一种业务请求的处理方法、装置及计算机系统
CN111399840A (zh) 一种模块开发方法及装置
CN111988429A (zh) 算法调度方法以及系统
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
CN110928548A (zh) 一种数据处理方法以及设备
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
CN109408256B (zh) 应用调用方法和装置
CN111562928A (zh) 资源提供方法及装置、资源下载方法及装置
CN111176641A (zh) 流程节点执行方法、装置、介质及电子设备
CN112416384A (zh) 软件升级方法、装置及计算机设备
CN112527416A (zh) 任务处理方法、装置、计算机设备和存储介质
CN112131025A (zh) 组件传输方法、装置、计算机设备及存储介质
CN115629951A (zh) 一种任务全链路追踪方法、第一节点、链路系统及介质
CN115840617A (zh) 一种调试方法、系统及相关装置
CN115048082A (zh) 微前端系统构建方法、装置、服务器及可读存储介质
CN115552369A (zh) 编译方法、编译装置、编译系统、存储介质与电子设备
CN113515299A (zh) 软件开发工具包sdk热升级方法、装置、设备及存储介质
CN111078571A (zh) 模拟响应的测试方法、终端设备及计算机可读存储介质
CN111338651B (zh) 下载资源提供方法及装置、资源下载方法及装置
CN113467861B (zh) 文件调用方法和装置、存储介质及电子设备
CN113268267B (zh) 一种数据包生成方法、装置、计算机设备及存储介质
CN108694249B (zh) 数据处理方法、装置、计算机设备以及存储介质
CN110659140B (zh) 一种指令执行的方法以及相关设备

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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.