CN107861758A - 工具包组装方法和装置 - Google Patents

工具包组装方法和装置 Download PDF

Info

Publication number
CN107861758A
CN107861758A CN201611271504.2A CN201611271504A CN107861758A CN 107861758 A CN107861758 A CN 107861758A CN 201611271504 A CN201611271504 A CN 201611271504A CN 107861758 A CN107861758 A CN 107861758A
Authority
CN
China
Prior art keywords
kit
component
terminal
assembling
extraction
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
CN201611271504.2A
Other languages
English (en)
Other versions
CN107861758B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201611271504.2A priority Critical patent/CN107861758B/zh
Publication of CN107861758A publication Critical patent/CN107861758A/zh
Application granted granted Critical
Publication of CN107861758B publication Critical patent/CN107861758B/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/30Creation or generation of source code

Abstract

本发明公开了一种工具包组装方法,应用于服务端,所述方法包括:在接收到终端发送的工具包下载指令时,根据所述工具包下载指令确定工具包类型;反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端基于各个组件标识显示组件选择界面,并将用户基于所述组件选择界面选择的组件标识发送至所述服务端;确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件;将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端。本发明还公开了一种工具包组装装置。本发明只根据终端需要的组件组装工具包,使得工具包容量较小,符合终端的实际需求,方便扩展,而且节省了网络资源。

Description

工具包组装方法和装置
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种工具包组装方法和装置。
背景技术
现在市面上Hybird APP(混合应用程序)的JS(JavaScript,一种直译式脚本语言)层面,都是使用函数式的封装方法来对接Native(Java调用非Java代码的接口),以将程序相关的所有组件压缩成一个工具包,再由终端下载该工具包以进行程序的安装。由于终端下载工具包时,服务端都是将所有组件进行打包,使得工具包过大,不方便扩展,而且还会导致终端花费较多的流量下载该工具包,造成网络资源的浪费。
发明内容
本发明的主要目的在于提供一种工具包组装方法和装置,旨在解决现有的工具包组装方式,工具包过大,不方便扩展,而且容易造成网络资源浪费的技术问题。
为实现上述目的,本发明提供一种工具包组装方法,应用于服务端,所述工具包组装方法包括:
在接收到终端发送的工具包下载指令时,根据所述工具包下载指令确定工具包类型;
反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端基于各个组件标识显示组件选择界面,并将用户基于所述组件选择界面选择的组件标识发送至所述服务端;
确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件;
将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端。
优选地,所述确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件的步骤包括:
确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,调用预设的逻辑规范以提取出所述组件标识对应的组件,其中,所述逻辑规范包括程序调用接口CommonJS或模块定义规范AMD。
优选地,所述将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端的步骤包括:
在提取的所述组件包括多个组件时,采用预设脚本语言将提取的各个组件拓展到顶级对象中,以使各个组件的调用相互隔离;
将拓展到顶级对象中的各个组件组装成工具包;
将组装的所述工具包反馈至所述终端。
优选地,所述将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端的步骤还包括:
在提取的所述组件包括多个组件时,确定所有组件的总容量是否达到预设阈值;
若所有组件的总容量已达到所述预设阈值,将所有组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值;
分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端。
优选地,所述分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端的步骤包括:
分别将各个部分的组件组装成工具包,并对各个工具包设置相同的包名;
将设置有相同包名的各个工具包反馈至所述终端,以供所述终端根据包名相同的各个工具包执行调用操作。
此外,为实现上述目的,本发明还提供一种工具包组装装置,应用于服务端,所述工具包组装装置包括:
确定模块,用于在接收到终端发送的工具包下载指令时,根据所述工具包下载指令确定工具包类型;
反馈模块,用于反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端基于各个组件标识显示组件选择界面,并将用户基于所述组件选择界面选择的组件标识发送至所述服务端;
提取模块,用于确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件;
处理模块,用于将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端。
优选地,所述提取模块,还用于确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,调用预设的逻辑规范以提取出所述组件标识对应的组件,其中,所述逻辑规范包括程序调用接口CommonJS或模块定义规范AMD。
优选地,所述处理模块包括:
拓展单元,用于在提取的所述组件包括多个组件时,采用预设脚本语言将提取的各个组件拓展到顶级对象中,以使各个组件的调用相互隔离;
组装单元,用于将拓展到顶级对象中的各个组件组装成工具包;
反馈单元,用于将组装的所述工具包反馈至所述终端。
优选地,所述处理模块还包括:
确定单元,用于在提取的所述组件包括多个组件时,确定所有组件的总容量是否达到预设阈值;
划分单元,用于若所有组件的总容量已达到所述预设阈值,将所有组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值;
处理单元,用于分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端。
优选地,所述处理单元包括:
处理子单元,用于分别将各个部分的组件组装成工具包,并对各个工具包设置相同的包名;
反馈子单元,用于将设置有相同包名的各个工具包反馈至所述终端,以供所述终端根据包名相同的各个工具包执行调用操作。
本发明提出的工具包组装方法和装置,服务端在接收到终端发送的工具包下载指令时,先根据所述工具包下载指令确定工具包类型,然后反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端将用户选择的组件标识发送至所述服务端,所述服务端在所述工具包类型关联的各个组件中,提取出终端发送的所述组件标识对应的组件,最终将提取的所述组件组装成工具包,以将组装的所述工具包反馈至所述终端。实现了组装工具包时,只根据终端需要的组件进行打包,最终反馈至终端的工具包容量较小,不仅符合终端的实际需求,方便扩展,而且避免了终端花费较多的流量去下载工具包,从而节省了网络资源。
附图说明
图1为本发明工具包组装方法较佳实施例的流程示意图;
图2为图1中步骤S40的第一细化流程示意图;
图3为图1中步骤S40的第二细化流程示意图;
图4为图3中步骤S46的细化流程示意图;
图5为本发明工具包组装装置较佳实施例的功能模块示意图;
图6为图5中处理模块40的第一细化功能模块示意图;
图7为图5中处理模块40的第二细化功能模块示意图;
图8为图7中处理单元46的细化功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:服务端在接收到终端发送的工具包下载指令时,先根据所述工具包下载指令确定工具包类型,然后反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端将用户选择的组件标识发送至所述服务端,所述服务端在所述工具包类型关联的各个组件中,提取出终端发送的所述组件标识对应的组件,最终将提取的所述组件组装成工具包,以将组装的所述工具包反馈至所述终端。解决了现有的工具包下载时,工具包过大,不方便扩展,而且还会导致终端花费较多的流量下载该工具包,造成网络资源的浪费的问题。
本发明提供一种工具包组装方法,应用于服务端。
参照图1,图1为本发明工具包组装方法较佳实施例的流程示意图。
在本实施例中,所述工具包组装方法包括:
在接收到终端发送的工具包下载指令时,根据所述工具包下载指令确定工具包类型;反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端基于各个组件标识显示组件选择界面,并将用户基于所述组件选择界面选择的组件标识发送至所述服务端;确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件;将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端。
以下是本实施例中逐步实现工具包组装方法的具体步骤:
步骤S10,在接收到终端发送的工具包下载指令时,根据所述工具包下载指令确定工具包类型。
在本实施例中,所述步骤S10之前,包括:终端在预设界面显示工具包下载界面,所述工具包下载界面中显示各种工具包类型标识,当用户点击任一工具包类型标识时,所述终端将工具包类型标识添加至工具包下载指令中,以发送至所述服务端。本实施例中,所述工具包类型包括但不限于:ADB工具包、Apache commons(Java常用工具包)、SDK(SoftwareDevelopment Kit,即软件开发工具包)。
当所述服务端接收到所述终端发送的工具包下载指令,提取出所述工具包下载指令中包含的工具包类型标识,根据工具包类型标识确定终端待下载的工具包类型。
步骤S20,反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端基于各个组件标识显示组件选择界面,并将用户基于所述组件选择界面选择的组件标识发送至所述服务端。
在本实施例中,当所述服务端确定终端待下载的工具包类型之后,在数据库中提取出所述工具包类型关联的各个组件标识,然后将提取的各个组件标识反馈至所述至终端,以供所述终端基于各个组件标识显示组件选择界面。可以理解,所述终端显示组件选择界面时,需要用户在所述组件选择界面中选择相应的组件标识,当用户选择完成后,所述终端将用户选择的组件标识发送至所述服务端。
步骤S30,确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件。
在本实施例中,为了实现对组件的提取,所述步骤S30包括:
确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,调用预设的逻辑规范以提取出所述组件标识对应的组件,其中,所述逻辑规范包括程序调用接口CommonJS或模块定义规范AMD。
也就是说,在接收到所述终端发送的组件标识之后,所述服务端先确定所述组件标识,然后,在数据库中确定所述工具包类型关联的各个组件,接着,在所述工具包类型关联的各个组件中,调用预设的逻辑规范,以提取出所述组件标识对应的组件。本实施例中,所述逻辑规范包括程序调用接口CommonJS或模块定义规范AMD(Asynchronous ModuleDefinition,异步模块定义),其中,所述CommonJS是指普通应用程序使用的API(Application Program Interface,应用程序编程接口)接口,普通应用程序主要是非浏览器的应用程序。也就是说,所述服务端在提取组件时,要求所有扩展的组件都使用CommonJS或AMD规范定义并导出。本实施例中,具体要调用CommonJS还是AMD,由调用方中调用代码的格式决定,在调用方的调用代码格式符合CommonJS时,所述服务端就调用CommonJS以提取出所述组件标识对应的组件;在调用方的调用代码格式符合AMD时,所述服务端就调用CommonJS以提取出所述组件标识对应的组件。
步骤S40,将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端。
当所述服务端提取出组件标识对应的组件之后,即可将提取的所述组件组装成工具包,最终将组装的所述工具包反馈至所述终端。
在本实施例中,所述步骤S40的实施方式包括:
1)方式一、参照图2,所述步骤S40包括:
步骤S41,在提取的所述组件包括多个组件时,采用预设脚本语言将提取的各个组件拓展到顶级对象中,以使各个组件的调用相互隔离;
步骤S42,将拓展到顶级对象中的各个组件组装成工具包;
步骤S43,将组装的所述工具包反馈至所述终端。
在本实施方式中,在提取的所述组件包括多个组件时,为了保证提取的各个组件不会相互影响,所述服务端采用预设脚本语言将提取的各个组件拓展到顶级对象中,以使各个组件的调用相互隔离,其中,所述预设脚本语言优选为JS语言,所述JS语言具有动态特性,所述顶级对象是指顶级对象aladdin。所述服务端采用JS语言将提取的各个组件拓展到顶级对象aladdin中,相当于是将各个组件动态扩展到顶级对象aladdin中,使得最终各个组件的调用相互隔离,不受影响,方便用户的使用。所述服务端在将各个组件动态拓展到顶级对象中之后,再将拓展到顶级对象中的各个组件组装成工具包,最终将组装的所述工具包反馈至所述终端。
2)方式二、参照图3,所述步骤S40还包括:
步骤S44,在提取的所述组件包括多个组件时,确定所有组件的总容量是否达到预设阈值;
步骤S45,若所有组件的总容量已达到所述预设阈值,将所有组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值;
步骤S46,分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端。
在本实施方式中,在提取的所述组件包括多个组件时,为了更好控制工具包的大小,以及为了更方便动态打包,所述服务端确定所有组件的总容量是否达到预设阈值,其中,所述预设阈值根据具体情况进行设置,此处不做限定。若提取的所有组件的总容量已经达到所述预设阈值,则将所有组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值。本实施例中,将所有组件划分成多个部分的方式包括:
a、随机将组件容量在预设阈值内的若干组件划分成一部分,当剩余组件对应的组件容量未达到所述预设阈值时,则将剩余组件划分成另一个部分,当然,若剩余组件对应的组件容量也达到所述预设阈值时,采用同样的方式,在剩余组件中,随机将组件容量在预设阈值内的若干组件划分成另一个部分,直到最终剩余的组件对应的组件容量小于所述预设阈值。
b、将所有组件依次排序,然后按照各个组件的排列顺序,依次叠加各个组件的组件容量,在有组件容量叠加到所述预设阈值,将组件容量叠加到所述预设阈值的各个组件划分成一部分,然后将组件容量清零,从剩余组件中,继续进行组件容量的统计,同样在组件容量叠加到所述预设阈值,将组件容量叠加到所述预设阈值的组件划分成另一部分,直到最终剩余的组件对应的组件容量小于所述预设阈值。
以上所列举出的两种划分组件的方式仅仅为示例性的,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其它各种划分组件的方式均在本发明的保护范围内,在此不进行一一穷举。
在本实施例中,在划分好各个部分的组件之后,分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端。
3)方式三、所述步骤S40还包括:
步骤A,在提取的所述组件包括多个组件时,确定各个组件的总容量是否达到预设阈值;
步骤B,若各个组件的总容量已达到所述预设阈值,将各个组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值;
步骤C,采用预设脚本语言将各个部分中的各个组件拓展到顶级对象中,以使各个部分中各个组件的调用相互隔离;
步骤D,分别将各个部分中拓展到顶级对象中的各个组件组装成工具包,并将组装的各个工具包反馈至所述终端。
进一步地,为了便于后续终端调用同一个工具包类型的各个组件,参照图4,所述步骤S46包括:
步骤S461,分别将各个部分的组件组装成工具包,并对各个工具包设置相同的包名;
步骤S462,将设置有相同包名的各个工具包反馈至所述终端,以供所述终端根据包名相同的各个工具包执行调用操作。
也就是说,在分别将各个部分的组件组装成工具包时,所述服务端需要对各个工具包设置相同的包名,然后将设置有相同包名的各个工具包反馈至所述终端。后续,所述终端调用这些工具包时,由于各个工具包的包名相同,因此,按照顺序依次调用这几个工具包即可实现工具包的调用功能。
由于传统的方式是一次性生成一个工具包,因此终端只要调用一个工具包即可实现相应的功能。而本实施例中,服务端在根据各个组件组装工具包时,为了方便动态拓展和动态打包,限定了每个工具包只压缩部分部件,若用户选择的组件较多,就压缩成多个工具包,当终端接收到多个工具包时,由于各个工具包的包名相同,相当于接收到的还是一个大的工具包,只要按照顺序依次调用各个工具包即可实现相应的功能。
进一步地,当所述终端在调用包名相同的各个工具包时,按照顺序依次引入各个工具包的组件,由于服务端在压缩工具包时,可能会出现某个组件被压缩在不同的工具包中的情况,因此,所述终端若检测到不同的工具包中出现相同的组件,用后面引入的组件覆盖之前引入的组件即可。
本实施例提出的工具包组装方法,服务端在接收到终端发送的工具包下载指令时,先根据所述工具包下载指令确定工具包类型,然后反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端将用户选择的组件标识发送至所述服务端,所述服务端在所述工具包类型关联的各个组件中,提取出终端发送的所述组件标识对应的组件,最终将提取的所述组件组装成工具包,以将组装的所述工具包反馈至所述终端。实现了组装工具包时,只根据终端需要的组件进行打包,最终反馈至终端的工具包容量较小,不仅符合终端的实际需求,方便扩展,而且避免了终端花费较多的流量去下载工具包,从而节省了网络资源。
本发明进一步提供一种工具包组装装置。
参照图5,图5为本发明工具包组装装置100较佳实施例的功能模块示意图。
需要强调的是,对本领域的技术人员来说,图5所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图5所示的工具包组装装置100的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该工具包组装装置100的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。
在本实施例中,所述工具包组装装置100包括:
确定模块10,用于在接收到终端发送的工具包下载指令时,根据所述工具包下载指令确定工具包类型。
在本实施例中,所述确定模块10根据所述工具包下载指令确定工具包类型之前,包括:终端在预设界面显示工具包下载界面,所述工具包下载界面中显示各种工具包类型标识,当用户点击任一工具包类型标识时,所述终端将工具包类型标识添加至工具包下载指令中,以发送至所述工具包组装装置100。本实施例中,所述工具包类型包括但不限于:ADB工具包、Apache commons(Java常用工具包)、SDK(Software Development Kit,即软件开发工具包)。
在接收到所述终端发送的工具包下载指令,提取出所述工具包下载指令中包含的工具包类型标识,确定模块10根据工具包类型标识确定终端待下载的工具包类型。
反馈模块20,用于反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端基于各个组件标识显示组件选择界面,并将用户基于所述组件选择界面选择的组件标识发送至所述服务端。
在本实施例中,当所述确定模块10确定终端待下载的工具包类型之后,在数据库中提取出所述工具包类型关联的各个组件标识,然后反馈模块20将提取的各个组件标识反馈至所述至终端,以供所述终端基于各个组件标识显示组件选择界面。可以理解,所述终端显示组件选择界面时,需要用户在所述组件选择界面中选择相应的组件标识,当用户选择完成后,所述终端将用户选择的组件标识发送至所述工具包组装装置100。
提取模块30,用于确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件。
在本实施例中,为了实现对组件的提取,所述提取模块30,还用于确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,调用预设的逻辑规范以提取出所述组件标识对应的组件,其中,所述逻辑规范包括程序调用接口CommonJS或模块定义规范AMD。
也就是说,在接收到所述终端发送的组件标识之后,所述确定模块10先确定所述组件标识,然后,在数据库中确定所述工具包类型关联的各个组件,接着,提取模块30在所述工具包类型关联的各个组件中,调用预设的逻辑规范,以提取出所述组件标识对应的组件。本实施例中,所述逻辑规范包括程序调用接口CommonJS或模块定义规范AMD(Asynchronous Module Definition,异步模块定义),其中,所述CommonJS是指普通应用程序使用的API(Application Program Interface,应用程序编程接口)接口,普通应用程序主要是非浏览器的应用程序。也就是说,所述服务端在提取组件时,要求所有扩展的组件都使用CommonJS或AMD规范定义并导出。本实施例中,具体要调用CommonJS还是AMD,由调用方中调用代码的格式决定,在调用方的调用代码格式符合CommonJS时,所述服务端就调用CommonJS以提取出所述组件标识对应的组件;在调用方的调用代码格式符合AMD时,所述服务端就调用CommonJS以提取出所述组件标识对应的组件。
处理模块40,用于将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端。
当提取模块30提取出组件标识对应的组件之后,处理模块40即可将提取的所述组件组装成工具包,最终将组装的所述工具包反馈至所述终端。
在本实施例中,所述处理模块40的实施方式包括:
1)方式一、参照图6,所述处理模块40包括:
拓展单元41,用于在提取的所述组件包括多个组件时,采用预设脚本语言将提取的各个组件拓展到顶级对象中,以使各个组件的调用相互隔离;
组装单元42,用于将拓展到顶级对象中的各个组件组装成工具包;
反馈单元43,用于将组装的所述工具包反馈至所述终端。
在本实施方式中,在提取的所述组件包括多个组件时,为了保证提取的各个组件不会相互影响,拓展单元41采用预设脚本语言将提取的各个组件拓展到顶级对象中,以使各个组件的调用相互隔离,其中,所述预设脚本语言优选为JS语言,所述JS语言具有动态特性,所述顶级对象是指顶级对象aladdin。拓展单元41采用JS语言将提取的各个组件拓展到顶级对象aladdin中,相当于是将各个组件动态扩展到顶级对象aladdin中,使得最终各个组件的调用相互隔离,不受影响,方便用户的使用。在将各个组件动态拓展到顶级对象中之后,组装单元42再将拓展到顶级对象中的各个组件组装成工具包,最终反馈单元43将组装的所述工具包反馈至所述终端。
2)方式二、参照图7,所述处理模块40还包括:
确定单元44,用于在提取的所述组件包括多个组件时,确定所有组件的总容量是否达到预设阈值;
划分单元45,用于若所有组件的总容量已达到所述预设阈值,将所有组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值;
处理单元46,用于分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端。
在本实施方式中,在提取的所述组件包括多个组件时,为了更好控制工具包的大小,以及为了更方便动态打包,确定单元44确定所有组件的总容量是否达到预设阈值,其中,所述预设阈值根据具体情况进行设置,此处不做限定。若提取的所有组件的总容量已经达到所述预设阈值,则划分单元45将所有组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值。本实施例中,将所有组件划分成多个部分的方式包括:
a、随机将组件容量在预设阈值内的若干组件划分成一部分,当剩余组件对应的组件容量未达到所述预设阈值时,则将剩余组件划分成另一个部分,当然,若剩余组件对应的组件容量也达到所述预设阈值时,采用同样的方式,在剩余组件中,随机将组件容量在预设阈值内的若干组件划分成另一个部分,直到最终剩余的组件对应的组件容量小于所述预设阈值。
b、将所有组件依次排序,然后按照各个组件的排列顺序,依次叠加各个组件的组件容量,在有组件容量叠加到所述预设阈值,将组件容量叠加到所述预设阈值的各个组件划分成一部分,然后将组件容量清零,从剩余组件中,继续进行组件容量的统计,同样在组件容量叠加到所述预设阈值,将组件容量叠加到所述预设阈值的组件划分成另一部分,直到最终剩余的组件对应的组件容量小于所述预设阈值。
以上所列举出的两种划分组件的方式仅仅为示例性的,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其它各种划分组件的方式均在本发明的保护范围内,在此不进行一一穷举。
在本实施例中,在划分好各个部分的组件之后,处理单元46分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端。
3)方式三、所述处理模块40还包括:
在提取的所述组件包括多个组件时,确定各个组件的总容量是否达到预设阈值;
若各个组件的总容量已达到所述预设阈值,将各个组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值;
采用预设脚本语言将各个部分中的各个组件拓展到顶级对象中,以使各个部分中各个组件的调用相互隔离;
分别将各个部分中拓展到顶级对象中的各个组件组装成工具包,并将组装的各个工具包反馈至所述终端。
进一步地,为了便于后续终端调用同一个工具包类型的各个组件,参照图8,所述处理单元46包括:
处理子单元461,用于分别将各个部分的组件组装成工具包,并对各个工具包设置相同的包名;
反馈子单元462,用于将设置有相同包名的各个工具包反馈至所述终端,以供所述终端根据包名相同的各个工具包执行调用操作。
也就是说,在分别将各个部分的组件组装成工具包时,处理子单元461需要对各个工具包设置相同的包名,然后反馈子单元462将设置有相同包名的各个工具包反馈至所述终端。后续,所述终端调用这些工具包时,由于各个工具包的包名相同,因此,按照顺序依次调用这几个工具包即可实现工具包的调用功能。
由于传统的方式是一次性生成一个工具包,因此终端只要调用一个工具包即可实现相应的功能。而本实施例中,服务端在根据各个组件组装工具包时,为了方便动态拓展和动态打包,限定了每个工具包只压缩部分部件,若用户选择的组件较多,就压缩成多个工具包,当终端接收到多个工具包时,由于各个工具包的包名相同,相当于接收到的还是一个大的工具包,只要按照顺序依次调用各个工具包即可实现相应的功能。
进一步地,当所述终端在调用包名相同的各个工具包时,按照顺序依次引入各个工具包的组件,由于服务端在压缩工具包时,可能会出现某个组件被压缩在不同的工具包中的情况,因此,所述终端若检测到不同的工具包中出现相同的组件,用后面引入的组件覆盖之前引入的组件即可。
本实施例提出的工具包组装装置100,服务端在接收到终端发送的工具包下载指令时,先根据所述工具包下载指令确定工具包类型,然后反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端将用户选择的组件标识发送至所述服务端,所述服务端在所述工具包类型关联的各个组件中,提取出终端发送的所述组件标识对应的组件,最终将提取的所述组件组装成工具包,以将组装的所述工具包反馈至所述终端。实现了组装工具包时,只根据终端需要的组件进行打包,最终反馈至终端的工具包容量较小,不仅符合终端的实际需求,方便扩展,而且避免了终端花费较多的流量去下载工具包,从而节省了网络资源。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种工具包组装方法,应用于服务端,其特征在于,所述工具包组装方法包括:
在接收到终端发送的工具包下载指令时,根据所述工具包下载指令确定工具包类型;
反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端基于各个组件标识显示组件选择界面,并将用户基于所述组件选择界面选择的组件标识发送至所述服务端;
确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件;
将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端。
2.如权利要求1所述的工具包组装方法,其特征在于,所述确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件的步骤包括:
确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,调用预设的逻辑规范以提取出所述组件标识对应的组件,其中,所述逻辑规范包括程序调用接口CommonJS或模块定义规范AMD。
3.如权利要求1所述的工具包组装方法,其特征在于,所述将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端的步骤包括:
在提取的所述组件包括多个组件时,采用预设脚本语言将提取的各个组件拓展到顶级对象中,以使各个组件的调用相互隔离;
将拓展到顶级对象中的各个组件组装成工具包;
将组装的所述工具包反馈至所述终端。
4.如权利要求1至3任一项所述的工具包组装方法,其特征在于,所述将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端的步骤还包括:
在提取的所述组件包括多个组件时,确定所有组件的总容量是否达到预设阈值;
若所有组件的总容量已达到所述预设阈值,将所有组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值;
分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端。
5.如权利要求4所述的工具包组装方法,其特征在于,所述分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端的步骤包括:
分别将各个部分的组件组装成工具包,并对各个工具包设置相同的包名;
将设置有相同包名的各个工具包反馈至所述终端,以供所述终端根据包名相同的各个工具包执行调用操作。
6.一种工具包组装装置,应用于服务端,其特征在于,所述工具包组装装置包括:
确定模块,用于在接收到终端发送的工具包下载指令时,根据所述工具包下载指令确定工具包类型;
反馈模块,用于反馈所述工具包类型关联的各个组件标识至所述终端,以供所述终端基于各个组件标识显示组件选择界面,并将用户基于所述组件选择界面选择的组件标识发送至所述服务端;
提取模块,用于确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,提取出确定的所述组件标识对应的组件;
处理模块,用于将提取的所述组件组装成工具包,并将组装的所述工具包反馈至所述终端。
7.如权利要求6所述的工具包组装装置,其特征在于,所述提取模块,还用于确定所述终端发送的组件标识,并在所述工具包类型关联的各个组件中,调用预设的逻辑规范以提取出所述组件标识对应的组件,其中,所述逻辑规范包括程序调用接口CommonJS或模块定义规范AMD。
8.如权利要求6所述的工具包组装装置,其特征在于,所述处理模块包括:
拓展单元,用于在提取的所述组件包括多个组件时,采用预设脚本语言将提取的各个组件拓展到顶级对象中,以使各个组件的调用相互隔离;
组装单元,用于将拓展到顶级对象中的各个组件组装成工具包;
反馈单元,用于将组装的所述工具包反馈至所述终端。
9.如权利要求6至8任一项所述的工具包组装装置,其特征在于,所述处理模块还包括:
确定单元,用于在提取的所述组件包括多个组件时,确定所有组件的总容量是否达到预设阈值;
划分单元,用于若所有组件的总容量已达到所述预设阈值,将所有组件划分成多个部分,以使各个部分的组件容量小于所述预设阈值;
处理单元,用于分别将各个部分的组件组装成工具包,并将组装的各个工具包反馈至所述终端。
10.如权利要求9所述的工具包组装装置,其特征在于,所述处理单元包括:
处理子单元,用于分别将各个部分的组件组装成工具包,并对各个工具包设置相同的包名;
反馈子单元,用于将设置有相同包名的各个工具包反馈至所述终端,以供所述终端根据包名相同的各个工具包执行调用操作。
CN201611271504.2A 2016-12-30 2016-12-30 工具包组装方法和装置 Active CN107861758B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611271504.2A CN107861758B (zh) 2016-12-30 2016-12-30 工具包组装方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611271504.2A CN107861758B (zh) 2016-12-30 2016-12-30 工具包组装方法和装置

Publications (2)

Publication Number Publication Date
CN107861758A true CN107861758A (zh) 2018-03-30
CN107861758B CN107861758B (zh) 2021-06-04

Family

ID=61698962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611271504.2A Active CN107861758B (zh) 2016-12-30 2016-12-30 工具包组装方法和装置

Country Status (1)

Country Link
CN (1) CN107861758B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314351A (zh) * 2011-09-29 2012-01-11 用友软件股份有限公司 安装程序生成装置和安装程序生成方法
US20120210300A1 (en) * 2011-02-10 2012-08-16 Microsoft Corporation Mechanism for compatibility and preserving framework refactoring
CN102968307A (zh) * 2012-11-29 2013-03-13 中国传媒大学 一种基于java的web开发中间件
CN103473080A (zh) * 2012-06-07 2013-12-25 腾讯科技(深圳)有限公司 软件安装方法、终端及系统
CN103617093A (zh) * 2013-10-30 2014-03-05 北京奇虎科技有限公司 一种解决终端故障的方法、客户端和系统
US20140131449A1 (en) * 2009-10-02 2014-05-15 Cognex Corporation Reader with swappable power/communication module
CN104035799A (zh) * 2014-06-19 2014-09-10 浪潮电子信息产业股份有限公司 一种软件可定制升级的方法
US20140372460A1 (en) * 2013-06-13 2014-12-18 Northrop Grumman Systems Corporation Trusted download toolkit
CN104375861A (zh) * 2014-11-04 2015-02-25 北京奇虎科技有限公司 基于安卓平台的应用程序免安装运行的方法、装置及终端
CN104626057A (zh) * 2013-11-06 2015-05-20 纬创资通股份有限公司 用于触控显示装置组装的辅助工具及使用方法
CN104731568A (zh) * 2013-12-23 2015-06-24 朱晓东 应用程序的运行方法和运行装置
CN104802996A (zh) * 2014-01-24 2015-07-29 波音公司 用在航空器组件中的除湿系统及其组装方法
CN104951336A (zh) * 2015-05-27 2015-09-30 小米科技有限责任公司 应用程序安装方法及装置
CN105068802A (zh) * 2015-08-06 2015-11-18 中国科学院软件研究所 一种跨设备运行的Web应用软件实现系统和方法
CN105487905A (zh) * 2015-11-27 2016-04-13 东软集团股份有限公司 一种混合应用的更新方法和装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140131449A1 (en) * 2009-10-02 2014-05-15 Cognex Corporation Reader with swappable power/communication module
US20120210300A1 (en) * 2011-02-10 2012-08-16 Microsoft Corporation Mechanism for compatibility and preserving framework refactoring
CN102314351A (zh) * 2011-09-29 2012-01-11 用友软件股份有限公司 安装程序生成装置和安装程序生成方法
CN103473080A (zh) * 2012-06-07 2013-12-25 腾讯科技(深圳)有限公司 软件安装方法、终端及系统
CN102968307A (zh) * 2012-11-29 2013-03-13 中国传媒大学 一种基于java的web开发中间件
US20140372460A1 (en) * 2013-06-13 2014-12-18 Northrop Grumman Systems Corporation Trusted download toolkit
CN103617093A (zh) * 2013-10-30 2014-03-05 北京奇虎科技有限公司 一种解决终端故障的方法、客户端和系统
CN104626057A (zh) * 2013-11-06 2015-05-20 纬创资通股份有限公司 用于触控显示装置组装的辅助工具及使用方法
CN104731568A (zh) * 2013-12-23 2015-06-24 朱晓东 应用程序的运行方法和运行装置
CN104802996A (zh) * 2014-01-24 2015-07-29 波音公司 用在航空器组件中的除湿系统及其组装方法
CN104035799A (zh) * 2014-06-19 2014-09-10 浪潮电子信息产业股份有限公司 一种软件可定制升级的方法
CN104375861A (zh) * 2014-11-04 2015-02-25 北京奇虎科技有限公司 基于安卓平台的应用程序免安装运行的方法、装置及终端
CN104951336A (zh) * 2015-05-27 2015-09-30 小米科技有限责任公司 应用程序安装方法及装置
CN105068802A (zh) * 2015-08-06 2015-11-18 中国科学院软件研究所 一种跨设备运行的Web应用软件实现系统和方法
CN105487905A (zh) * 2015-11-27 2016-04-13 东软集团股份有限公司 一种混合应用的更新方法和装置

Also Published As

Publication number Publication date
CN107861758B (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN108023788B (zh) 监控数据上传方法、装置、设备、系统及存储介质
CN107592367A (zh) 家电设备的资源共享方法、装置和计算机可读存储介质
CN108039969A (zh) 网络自动配置方法、装置、系统、存储介质及目标计算机
CN105991670A (zh) 数据分享方法、数据分享装置及终端
CN107729014B (zh) 一种基于Android的页面跳转方法及结构
CN108415708B (zh) 应用程序安装包大小的处理方法、装置、设备和存储介质
CN107622771A (zh) 家电设备及其控制方法、系统及计算机可读存储介质
CN107807841A (zh) 服务器模拟方法、装置、设备及可读存储介质
CN105635852B (zh) 智能电视匹配动态链接库的方法及装置
CN105511587B (zh) 一种射频链路控制的方法及装置
CN107861758A (zh) 工具包组装方法和装置
US20060212510A1 (en) Method and device for identifying patterns in a message and generating an action
CN113409425B (zh) 一种动画文件的输出方法和装置
US8374593B2 (en) Method of providing mobile application
CN105511851B (zh) 一种扩展安卓系统资源加载的方法
CN111240679B (zh) 页面开发方法及系统
CN103984541A (zh) 基于终端源代码生成应用程序的方法和系统
CN109189466B (zh) 一种马甲包打包方法、装置、电子设备及存储介质
CN107870930A (zh) 资源搜索方法及服务器
CN104850561A (zh) 一种Android APK文件自适应压缩方法
CN103067770B (zh) 一种电视机中网络参数设置及纠错方法
CN107203304A (zh) 利用压力实现应用的功能界面的方法及装置
CN111782191A (zh) 一种项目工程的创建方法和装置
CN105050162A (zh) 一种链接网络的方法及智能设备
CN110851171B (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