CN113342419B - 一种推送系统加载方法、装置、电子设备及存储介质 - Google Patents

一种推送系统加载方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113342419B
CN113342419B CN202110714848.0A CN202110714848A CN113342419B CN 113342419 B CN113342419 B CN 113342419B CN 202110714848 A CN202110714848 A CN 202110714848A CN 113342419 B CN113342419 B CN 113342419B
Authority
CN
China
Prior art keywords
software development
development kit
client
push system
push
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110714848.0A
Other languages
English (en)
Other versions
CN113342419A (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202110714848.0A priority Critical patent/CN113342419B/zh
Publication of CN113342419A publication Critical patent/CN113342419A/zh
Application granted granted Critical
Publication of CN113342419B publication Critical patent/CN113342419B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

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

Abstract

本发明实施例提供了一种推送系统加载方法、装置、电子设备及存储介质,涉及消息推送技术领域。方法包括:当客户端启动时,向后台服务器发送推送系统软件开发工具包的访问请求;客户端安装包中预设虚拟文件,在客户端安装包被编译时,虚拟文件作为推送系统被调用的执行文件,且虚拟文件中被调用的内容为空;接收后台服务器返回的推送系统的软件开发工具包信息;根据推送系统的软件开发工具包信息,获取推送系统的可执行文件;对推送系统的可执行文件进行加载处理。本发明在客户端安装包中未集成推送系统软件开发工具包,利用虚拟文件保证顺利编译,在运行时加载真正的推送系统,保证厂商推送通道正常使用,有效减小了客户端的安装包体积。

Description

一种推送系统加载方法、装置、电子设备及存储介质
技术领域
本发明涉及消息推送技术领域,尤其涉及一种推送系统加载方法、装置、电子设备及存储介质。
背景技术
传统的消息推送push功能一般都选择集成厂商推送通道进行消息推送。但发明人发现,厂商推送通道存在一个明显的问题是,如果要保证厂商推送通道的正常使用,需要将厂商推送系统的sdk(software development kit,软件开发工具包)集成到客户端APP的应用包中,但厂商推送系统sdk一般体积都比较大,有的甚至超过1M,这个大小在客户端层面,尤其是对于安装包大小有明显要求的客户端而言是很难接受的。如果将厂商推送系统sdk直接集成到客户端安装包中,会立刻引起安装包大小的增加,当用户下载客户端时会增加对流量和内存的要求,提升下载难度,影响用户使用。
发明内容
本发明提供一种推送系统加载方法、装置、电子设备及存储介质,解决现有技术中厂商推送系统直接集成到客户端安装包中会增加安装包大小的问题。
在本发明实施的第一方面,提供了一种推送系统加载方法,应用于移动终端,所述方法包括:
当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空;
接收所述后台服务器返回的所述推送系统的软件开发工具包信息;
根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件;
对所述推送系统的软件开发工具包的可执行文件进行加载处理。
可选的,所述后台服务器返回的所述推送系统的软件开发工具包信息包括版本信息;
所述根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件的步骤包括:
将所述后台服务器返回的版本信息与本地存储的所述推送系统的软件开发工具包的版本信息进行对比;
当所述后台服务器返回的版本信息比本地存储的版本信息高时,从所述后台服务器下载所述推送系统的软件开发工具包的可执行文件并存储。
可选的,所述根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件的步骤包括:
当所述客户端首次启动时,根据所述后台服务器返回的所述推送系统的软件开发工具包信息,从所述后台服务器下载所述推送系统的软件开发工具包的可执行文件并存储。
可选的,所述对所述推送系统的软件开发工具包的可执行文件进行加载处理的步骤包括:
将所述推送系统的软件开发工具包的可执行文件插入到所述客户端的可执行文件队列中,并将所述推送系统的软件开发工具包的可执行文件在所述队列中被遍历的顺序,设置在所述虚拟文件之前;其中,所述虚拟文件在所述客户端的安装包解压后被放置在所述队列中;
通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件;
加载查找到的所述推送系统的软件开发工具包的可执行文件。
可选的,所述通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件的步骤包括:
调用类加载器通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件;其中,所述队列为所述类加载器的路径列表中的队列。
在本发明实施的第二方面,还提供了一种推送系统加载装置,应用于移动终端,所述装置包括:
第一发送模块,用于当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空;
第一接收模块,用于接收所述后台服务器返回的所述推送系统的软件开发工具包信息;
第一获取模块,用于根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件;
加载模块,用于对所述推送系统的软件开发工具包的可执行文件进行加载处理。
在本发明实施的第三方面,还提供了一种推送系统加载方法,应用于服务器,所述方法包括:
接收移动终端当客户端启动时发送的推送系统的软件开发工具包的访问请求;
根据所述访问请求,获取所述推送系统的软件开发工具包信息;
向所述移动终端返回所述推送系统的软件开发工具包信息。
可选的,所述接收移动终端当客户端启动时发送的推送系统的软件开发工具包的访问请求之前,所述方法还包括:
接收上传到所述服务器的推送系统的软件开发工具包的可执行文件以及版本信息;
将接收到的所述推送系统的软件开发工具包的可执行文件以及版本信息进行存储;
所述根据所述访问请求,获取所述推送系统的软件开发工具包信息的步骤包括:
根据所述访问请求,获取所述推送系统的软件开发工具包的版本信息。
可选的,所述方法还包括:
接收上传到所述服务器的推送系统的软件开发工具包的更新信息;所述更新信息包括更新的可执行文件以及更新的版本信息;
将所述更新的可执行文件以及更新的版本信息进行存储。
在本发明实施的第四方面,还提供了一种推送系统加载装置,应用于服务器,所述装置包括:
第二接收模块,用于接收移动终端当客户端启动时发送的推送系统的软件开发工具包的访问请求;
第二获取模块,用于根据所述访问请求,获取所述推送系统的软件开发工具包信息;
第一返回模块,用于向所述移动终端返回所述推送系统的软件开发工具包信息。
在本发明实施的第五方面,还提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如上所述的推送系统加载方法中的步骤。
在本发明实施的第六方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的推送系统加载方法。
针对在先技术,本发明具备如下优点:
本发明实施例中,在客户端的安装包打包的时候,不把推送系统的软件开发工具包直接集成到安装包中,而是将推送系统的软件开发工具包放到后台服务器,等客户端启动之后,向后台服务器发送推送系统的软件开发工具包的访问请求,并接收后台服务器返回的推送系统的软件开发工具包信息;其中,为了保证客户端的安装包能够正常编译,客户端的安装包中预设有推送系统的软件开发工具包对应的虚拟文件,在客户端的安装包被编译时,虚拟文件作为推送系统的软件开发工具包被调用时的执行文件,且虚拟文件中被调用的内容为空,保证了编译顺利通过,且不会占用客户端的安装包过多的空间;接收到后台服务器返回的推送系统的软件开发工具包信息后,根据后台服务器返回的推送系统的软件开发工具包信息,获取推送系统的软件开发工具包的可执行文件,并对推送系统的软件开发工具包的可执行文件进行加载处理,从而在运行时动态加载真正的推送系统软件开发工具包,保证了厂商推送通道的正常使用。如此,不把推送系统的软件开发工具包直接集成到客户端的安装包中,而是利用虚拟文件保证顺利编译,并在客户端启动运行时通过动态加载的方式加载真正的推送系统,保证厂商推送通道正常使用的同时,有效减小了客户端的安装包体积,避免了客户端的安装包大小增加的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的终端侧推送系统加载方法的流程示意图;
图2为本发明实施例提供的推送系统加载系统的结构示意图;
图3为本发明实施例提供的数组中插入推送系统软件开发工具包的结构示意图;
图4为本发明实施例提供的终端侧推送系统加载方法的另一流程示意图;
图5为本发明实施例提供的终端侧推送系统加载装置的示意框图;
图6为本发明实施例提供的终端侧电子设备的示意框图;
图7为本发明实施例提供的服务器侧推送系统加载方法的流程示意图;
图8为本发明实施例提供的服务器侧推送系统加载装置的示意框图;
图9为本发明实施例提供的服务器侧电子设备的示意框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解的是,还可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
下面对本发明实施例提供的一种加载系统进行介绍。
参见图2所示,本发明实施例提供了一种推送系统加载系统,包括移动终端201和服务器202。
其中,作为一种可选的实施方式,移动终端201用于:当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空;接收所述后台服务器返回的所述推送系统的软件开发工具包信息;根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件;对所述推送系统的软件开发工具包的可执行文件进行加载处理;
服务器202用于:接收移动终端当客户端启动时发送的推送系统的软件开发工具包的访问请求;根据所述访问请求,获取所述推送系统的软件开发工具包信息;向所述移动终端返回所述推送系统的软件开发工具包信息。
此时,在客户端的安装包打包的时候,不把推送系统的软件开发工具包直接集成到安装包中,而是将推送系统的软件开发工具包放到后台服务器,等客户端启动之后,移动终端向后台服务器发送推送系统的软件开发工具包的访问请求,并接收后台服务器返回的推送系统的软件开发工具包信息;其中,为了保证客户端的安装包能够正常编译,客户端的安装包中预设有推送系统的软件开发工具包对应的虚拟文件,在客户端的安装包被编译时,虚拟文件作为推送系统的软件开发工具包被调用时的执行文件,且虚拟文件中被调用的内容为空,保证了编译顺利通过,且不会占用客户端的安装包过多的空间;移动终端接收到后台服务器返回的推送系统的软件开发工具包信息后,根据后台服务器返回的推送系统的软件开发工具包信息,获取推送系统的软件开发工具包的可执行文件,并对推送系统的软件开发工具包的可执行文件进行加载处理,从而在运行时动态加载真正的推送系统软件开发工具包,保证了厂商推送通道的正常使用。如此,不把推送系统的软件开发工具包直接集成到客户端的安装包中,而是利用虚拟文件保证顺利编译,并而在客户端启动运行时通过动态加载的方式加载真正的推送系统,保证厂商推送通道正常使用的同时,有效减小了客户端的安装包体积,避免了客户端的安装包大小增加的问题。
或者,作为另一种可选的实施方式,移动终端201用于:当客户端启动时,向后台服务器发送的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空;接收所述后台服务器返回的所述客户端的更新文件,所述更新文件中包括推送系统的软件开发工具包的可执行文件;对所述推送系统的软件开发工具包的可执行文件进行加载处理;
服务器202用于:接收移动终端当客户端启动时发送的访问请求;根据所述访问请求,获取所述客户端的更新文件,所述更新文件中包括推送系统的软件开发工具包的可执行文件;将所述更新文件返回给所述移动终端。
此时,移动终端的客户端启动之后,先访问后台服务器,后台服务器会向移动终端返回客户端的更新文件,返回的更新文件中包括有最新版本的推送系统的软件开发工具包的可执行文件,移动终端接收到后台服务器返回的推送系统的软件开发工具包的可执行文件后,对推送系统的软件开发工具包的可执行文件进行加载处理,从而在运行时动态加载真正的推送系统软件开发工具包,保证了厂商推送通道的正常使用。且在客户端的安装包打包的时候,不把推送系统的软件开发工具包直接集成到安装包中,为了保证客户端的安装包能够正常编译,客户端的安装包中预设有推送系统的软件开发工具包对应的虚拟文件,在客户端的安装包被编译时,虚拟文件作为推送系统的软件开发工具包被调用时的执行文件,且虚拟文件中被调用的内容为空,保证了编译顺利通过,且不会占用客户端的安装包过多的空间。如此,不把推送系统的软件开发工具包直接集成到客户端的安装包中,而是利用虚拟文件保证顺利编译,并而在客户端启动运行时通过动态加载的方式加载真正的推送系统,保证厂商推送通道正常使用的同时,有效减小了客户端的安装包体积,避免了客户端的安装包大小增加的问题。由于客户端在启动时会向Patch服务器发送访问请求,以确定客户端是否需要更新,因此当后台服务器是补丁Patch服务器时,后端服务器只需要增加用于获取和存储推送系统的软件开发工具包的可执行文件的接口即可,执行推送系统加载方法。
下面分别对移动终端侧和服务器侧的实现过程进行详细介绍。
图1是本发明实施例提供的应用于移动终端的推送系统加载方法的流程示意图,参见图1所示,所述方法包括:
步骤101:当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空。
这里,客户端的安装包中没有集成推送系统的软件开发工具包,而是将推送系统的软件开发工具包放到后台服务器,当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求,以获取到推送系统的软件开发工具包进行动态加载,保证厂商推送通道正常使用的同时,有效减小了客户端的安装包体积,避免了客户端的安装包大小增加的问题。
其中,由于推送系统的软件开发工具包没有集成到客户端的安装包中,因此在前端编译客户端的安装包的时候,由于缺少厂商通道的类class,会导致编译失败,调用类文件时发生异常。为了保证编译通过,本发明实施例中,客户端的安装包中预设有推送系统的软件开发工具包对应的虚拟文件,在编译时,虚拟文件作为推送系统的软件开发工具包被调用时的执行文件,且虚拟文件中被调用的内容为空,从而保证编译顺利通过的同时,不会占用多余的空间。按照此种方式客户端的安装包可以正常编译成APK(ApplicationPackage,应用程序包),并且推送系统的软件开发工具包的虚拟文件占用的空间非常小,可能只有几KB。
其中,具体的可在客户端的安装包中预设置推送系统软件开发工具包的虚拟类和虚拟接口,由于这些虚拟类和虚拟接口中都是一些方法的空实现,因此可以保证在编译阶段不会报错的同时,最大程度的减小了占用的空间。
例如,在编译时可在本地新建一个虚拟的类class,名字命名为推送客户端PushClient(与推送系统的软件开发工具包的包名一致),然后在这个虚拟的类里加一个调用到的init()方法,只不过里面的init()方法是空实现,这样在编译时,系统会认为推送系统的软件开发工具包的类和方法都是存在的,从而不会报出没有发现类的异常,顺利拿到编译成功的结果。
其中,本发明实施例中所指的推送系统为与移动终端相适配的厂商推送通道的推送系统,可以是任意厂商推送通道的推送系统,在此不做限定。
步骤102:接收所述后台服务器返回的所述推送系统的软件开发工具包信息。
这里,移动终端向后台服务器发送推送系统的软件开发工具包的访问请求后,后台服务器会根据访问请求查找到推送系统的软件开发工具包信息,移动终端可基于此信息,进一步获取推送系统软件开发工具包的可执行文件进行加载。
步骤103:根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件。
这里,移动终端根据后台服务器返回的推送系统的软件开发工具包信息,可获取到推送系统的软件开发工具包的可执行文件。推送系统的软件开发工具包的可执行文件dex文件,即为推送系统的软件开发工具包的真实文件。在客户端运行时,通过加载推送系统的软件开发工具包的可执行文件,能够实现推送系统的正常使用。
步骤104:对所述推送系统的软件开发工具包的可执行文件进行加载处理。
这里,移动终端对推送系统的软件开发工具包的可执行文件进行实时动态加载,保证了厂商推送通道的正常使用。
其中,作为另一种可选的实施方式,上述步骤101也可在客户端启动之后,向后台服务器发送访问请求,该访问请求并不是特指推送系统的软件开发工具包的访问请求,而是常规的更新文件访问请求,后台服务器接收到该访问请求,会向移动终端返回客户端的更新文件,该更新文件中包括有最新版本的推送系统的软件开发工具包的可执行文件,移动终端接收到更新文件之后,可直接对其中的推送系统的软件开发工具包的可执行文件进行加载处理。
本发明实施例的推送系统加载方法,不把推送系统的软件开发工具包直接集成到客户端的安装包中,而是利用虚拟文件保证顺利编译,并在客户端启动运行时通过动态加载的方式加载真正的推送系统,保证厂商推送通道正常使用的同时,有效减小了客户端的安装包体积,避免了客户端的安装包大小增加的问题。
其中,本发明实施例所涉及后台服务器可以是补丁Patch服务器,但不限于此。
可选的,所述后台服务器返回的所述推送系统的软件开发工具包信息包括版本信息;
上述步骤103包括:
步骤1031:将所述后台服务器返回的版本信息与本地存储的所述推送系统的软件开发工具包的版本信息进行对比。
这里,客户端启动之后,首先会访问后台服务器,后台服务器会返回最新的推送系统的软件开发工具包的版本信息,将这个版本信息与本地的版本信息进行对比,如果后台服务器返回的版本比本地的版本高,那么说明有新版本上传到服务器端了,本地需要进行更新。
其中,版本信息如可包括版本号等,但不限于此。
步骤1032:当所述后台服务器返回的版本信息比本地存储的版本信息高时,从所述后台服务器下载所述推送系统的软件开发工具包的可执行文件并存储。
这里,当后台服务器返回的版本信息比本地存储的版本信息高时,从后台服务器下载最新的推送系统的软件开发工具包的可执行文件并存储,加载时,直接加载本地存储的最新的推送系统的软件开发工具包的可执行文件。
由于客户端的安装包中并没有集成推送系统的软件开发工具包的可执行文件,而是预设有虚拟文件,因此当客户端首次启动时,本地并没有推送系统的软件开发工具包,此时,可不按照上述步骤1031-1032的方式,进行版本的对比以及更新,而是直接从后台服务器下载推送系统的软件开发工具包。可选的,上述步骤103包括:
当所述客户端首次启动时,根据所述后台服务器返回的所述推送系统的软件开发工具包信息,从所述后台服务器下载所述推送系统的软件开发工具包的可执行文件并存储。
此时,当客户端首次启动时,可直接从后台服务器下载推送系统的软件开发工具包的可执行文件并存储,加载时,直接加载本地存储的推送系统的软件开发工具包的可执行文件。
或者,当客户端首次启动时,也可将虚拟文件预先设置为最低版本,按照上述步骤1031-1032的方式,进行版本对比后,从后台服务器下载最新的推送系统的软件开发工具包的可执行文件并存储。
获取到推送系统的软件开发工具包的可执行文件之后,需要对推送系统的软件开发工具包的可执行文件进行动态加载,下面对动态加载的实现过程进行介绍。
可选的,上述步骤104包括:
步骤1041:将所述推送系统的软件开发工具包的可执行文件插入到所述客户端的可执行文件队列中,并将所述推送系统的软件开发工具包的可执行文件在所述队列中被遍历的顺序,设置在所述虚拟文件之前;其中,所述虚拟文件在所述客户端的安装包解压后被放置在所述队列中。
这里,客户端中包含一个可执行文件队列,对于类加载就是遍历这个可执行文件队列。本步骤中,将推送系统的软件开发工具包的可执行文件插入到客户端的可执行文件队列中,并将推送系统的软件开发工具包的可执行文件在所述队列中被遍历的顺序,设置在所述虚拟文件之前,能够保证在类加载时首先查找到真实的推送系统的软件开发工具包的可执行文件进行加载,避免加载被调用内容为空的虚拟文件导致加载失败。
其中,上述步骤1041具体执行时,可将推送系统的软件开发工具包的可执行文件设置在可执行文件队列的最前面,遍历时,将首先遍历到推送系统的软件开发工具包的可执行文件,且设置时无需查看虚拟文件在队列中的位置,进而确定推送系统的软件开发工具包的可执行文件的位置,简化了计算方式,提高了处理效率。
步骤1042:通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件。
这里,加载时通过遍历客户端的可执行文件队列,执行查找推送系统的软件开发工具包的操作,直到查找到推送系统的软件开发工具包的可执行文件。由于推送系统的软件开发工具包真实的可执行文件在虚拟文件之前,能够保证首先查找到真实的推送系统的软件开发工具包的可执行文件,且不会再继续查找那些虚拟文件,相当于之前的虚拟文件被下载下来的真正的可执行文件所替代,从而实现了利用占用空间非常小的虚拟文件,保证编译通过,然后运行时动态加载真正的推送系统的软件开发工具包的目的。
步骤1043:加载查找到的所述推送系统的软件开发工具包的可执行文件。
这里,在客户端运行时加载查找到的真正的推送系统的软件开发工具包的可执行文件,保证了厂商推送通道的正常使用。
可选的,上述步骤1042包括:
调用类加载器通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件;其中,所述队列为所述类加载器的路径列表中的队列。
这里,类加载器Class Loader中有个路径列表对象,路径列表中包含由多个可执行文件dex文件排列成的一个有序的可执行文件队列dex Elements。当查找推送系统软件开发工具包的类文件时,调用类加载器遍历可执行文件队列,由于推送系统软件开发工具包的可执行文件设置于虚拟文件前面,如果找到了推送系统软件开发工具包的可执行文件,类加载器就不会再去加载虚拟文件,实现了利用占用空间非常小的虚拟文件,保证编译通过,然后运行时,动态加载真正的推送系统软件开发工具包的可执行文件的目的。
本发明实施例中,可通过前台服务器将推送系统的软件开发工具包的可执行文件和版本信息上传到后台服务器,但不限于此。其中,通过前台服务器将推送系统的软件开发工具包上传到后台服务器之前,可将厂商的推送系统软件开发工具包由jar格式的包转换为dex格式的包,以便于类加载器可以加载dex格式的推送系统软件开发工具包。
具体的,可通过dx工具将厂商的推送系统的软件开发工具包的jar包转换为dex包,但不限于此。
具体的,类加载器可以是基础Dex类加载器Base Dex Class Loader,但不限于此。
下面对本发明实施例利用类加载器查找推送系统的软件开发工具包的一具体实现流程举例说明如下。
假定后台服务器采用补丁Patch服务器,且通过前台服务器将推送系统的软件开发工具包上传到补丁服务器之前,通过前台服务器将推送系统的软件开发工具包由jar格式的包转换为dex格式的包。如图3所示,客户端的安装包解压后,推送系统的软件开发工具包的虚拟文件(记为class1.dex)对应的类文件(记为PushClent.class)被放置在可执行文件队列dex Elements中。从补丁服务器下载真实的推送系统的软件开发工具包的可执行文件(记为push.dex)后,将从补丁服务器下载的推送系统的软件开发工具包的可执行文件对应的类文件(记为PushClent.class)插入到类加载器的可执行文件队列的最前面。插入完成后,当调用厂商通道接口时,虽然编译时是调用的虚拟文件,但真正运行时,类加载器遍历可执行文件队列,会优先加载push.dex中的真正的类,加载成功后,就不会去加载虚拟类,这样就实现了push.dex的动态加载。
下面对本发明实施例的推送系统加载方法的一具体实现流程举例说明如下。
如图4所示,应用本发明实施例的推送系统加载方法,当客户端启动时,移动终端首先访问服务器进行推送系统的软件开发工具包的版本查询;当本地存储的版本是最新版本时,不需要进行更新,直接进入推送系统的软件开发工具包加载步骤;当本地存储的版本不是最新版本时,需要进行更新,从服务器下载最新版本的推送系统的软件开发工具包,之后进入推送系统的软件开发工具包加载步骤;在推送系统的软件开发工具包加载时,首先将本地存储或者服务器下载的最新版本的推送系统的软件开发工具包的可执行文件(记为push.dex),对应的类文件(记为PushClent.class)插入到可执行文件dex Elements的最前面,然后调用类加载器遍历dex Elements,并加载查找到的推送系统的软件开发工具包的可执行文件。由于真实的最新版本的推送系统的软件开发工具包在队列的最前面,因此类加载器能够加载到真实的可执行文件,不会加载那些虚拟文件。
本发明实施例的推送系统加载方法,利用动态加载的机制,本地使用虚拟类,将推送系统的软件开发工具包的可执行文件插入到可执行文件队列的最前面,运行时下载并且动态加载真正的可执行文件,有效减小了包体积大小。对于使用流量的用户,下载客户端时可以节省流量。
本发明实施例的推送系统加载方法,不把推送系统的软件开发工具包直接集成到客户端的安装包中,而是利用虚拟文件保证顺利编译,并在客户端启动运行时通过动态加载的方式加载真正的推送系统,保证厂商推送通道正常使用的同时,有效减小了客户端的安装包体积,避免了客户端的安装包大小增加的问题。
参见图5所示,本发明实施例还提供了一种推送系统加载装置500,应用于移动终端,所述装置包括:
第一发送模块501,用于当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空;
第一接收模块502,用于接收所述后台服务器返回的所述推送系统的软件开发工具包信息;
第一获取模块503,用于根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件;
加载模块504,用于对所述推送系统的软件开发工具包的可执行文件进行加载处理。
本发明实施例的推送系统加载装置500,不把推送系统的软件开发工具包直接集成到客户端的安装包中,而是利用虚拟文件保证顺利编译,并在客户端启动运行时通过动态加载的方式加载真正的推送系统,保证厂商推送通道正常使用的同时,有效减小了客户端的安装包体积,避免了客户端的安装包大小增加的问题。
可选的,所述后台服务器返回的所述推送系统的软件开发工具包信息包括版本信息;
所述第一获取模块503包括:
对比子模块,用于将所述后台服务器返回的版本信息与本地存储的所述推送系统的软件开发工具包的版本信息进行对比;
第一下载子模块,用于当所述后台服务器返回的版本信息比本地存储的版本信息高时,从所述后台服务器下载所述推送系统的软件开发工具包的可执行文件并存储。
可选的,所述第一获取模块503包括:
第二下载子模块,用于当所述客户端首次启动时,根据所述后台服务器返回的所述推送系统的软件开发工具包信息,从所述后台服务器下载所述推送系统的软件开发工具包的可执行文件并存储。
可选的,所述加载模块504包括:
插入子模块,用于将所述推送系统的软件开发工具包的可执行文件插入到所述客户端的可执行文件队列中,并将所述推送系统的软件开发工具包的可执行文件在所述队列中被遍历的顺序,设置在所述虚拟文件之前;其中,所述虚拟文件在所述客户端的安装包解压后被放置在所述队列中;
遍历子模块,用于通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件;
加载子模块,用于加载查找到的所述推送系统的软件开发工具包的可执行文件。
可选的,所述遍历子模块包括:
遍历单元,用于调用类加载器通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件;其中,所述队列为所述类加载器的路径列表中的队列。
本发明实施例的推送系统加载装置,不把推送系统的软件开发工具包直接集成到客户端的安装包中,而是利用虚拟文件保证顺利编译,并在客户端启动运行时通过动态加载的方式加载真正的推送系统,保证厂商推送通道正常使用的同时,有效减小了客户端的安装包体积,避免了客户端的安装包大小增加的问题。
对于上述装置实施例而言,由于其与方法实施例基本相似,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,该电子设备可以是移动终端。如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。
存储器603,用于存放计算机程序。
处理器601用于执行存储器603上所存放的程序时,实现如下步骤:
当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空;
接收所述后台服务器返回的所述推送系统的软件开发工具包信息;
根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件;
对所述推送系统的软件开发工具包的可执行文件进行加载处理。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中所述的推送系统加载方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中所述的推送系统加载方法。
参见图7所示,本发明实施例还提供了一种推送系统加载方法,应用于服务器,所述方法包括:
步骤701:接收移动终端当客户端启动时发送的推送系统的软件开发工具包的访问请求。
这里,服务器预先存储有推送系统的软件开发工具包信息,接收到移动终端当客户端启动时发送的推送系统的软件开发工具包的访问请求时,可基于访问请求,向移动终端返回推送系统的软件开发工具包信息。
步骤702:根据所述访问请求,获取所述推送系统的软件开发工具包信息。
步骤703:向所述移动终端返回所述推送系统的软件开发工具包信息。
这里,服务器根据访问请求,获取到推送系统的软件开发工具包信息并返回给移动终端,使得移动终端可根据推送系统的软件开发工具包信息,获取到推送系统的软件开发工具包的可执行文件并加载,保证厂商推送通道的正常使用。
其中,作为另一种可选的实施方式,上述步骤701也可接收移动终端在客户端启动之后发送的访问请求,该访问请求并不是特指推送系统的软件开发工具包的访问请求,而是常规的更新文件访问请求,后台服务器接收到该访问请求,会向移动终端返回客户端的更新文件,该更新文件中包括有最新版本的推送系统的软件开发工具包的可执行文件,移动终端接收到更新文件之后,可直接对其中的推送系统的软件开发工具包的可执行文件进行加载处理。
本发明实施例的推送系统加载方法,在客户端启动时,向移动终端返回推送系统的软件开发工具包信息,使得移动终端可根据推送系统的软件开发工具包信息,获取到推送系统的软件开发工具包的可执行文件并加载,保证了厂商推送通道的正常使用。
可选的,上述步骤701之前,所述方法还包括:
步骤7001:接收上传到所述服务器的推送系统的软件开发工具包的可执行文件以及版本信息。
步骤7002:将接收到的所述推送系统的软件开发工具包的可执行文件以及版本信息进行存储。
此时,通过服务器存储推送系统的软件开发工具包的可执行文件以及版本信息,以便移动终端随时访问使用。
其中,可通过前台服务器上传推送系统的软件开发工具包的可执行文件以及版本信息,也可在后台服务器上提供用于传送推送系统的软件开发工具包的可执行文件以及版本信息的操作接口。
可选的,上述步骤702包括:
步骤7021:根据所述访问请求,获取所述推送系统的软件开发工具包的版本信息。
此时,服务器根据访问请求,获取推送系统的软件开发工具包的版本信息并返回给移动终端,移动终端可将服务器返回的版本信息与本地的版本信息进行对比,当移动终端本地的版本低时,从服务器下载最新的推送系统的软件开发工具包的可执行文件并存储,以供加载使用。
可选的,所述方法还包括:
步骤704:接收上传到所述服务器的推送系统的软件开发工具包的更新信息;所述更新信息包括更新的可执行文件以及更新的版本信息;
步骤705:将所述更新的可执行文件以及更新的版本信息进行存储。
此时,当推送系统的软件开发工具包存在版本的更新时,接收推送系统的软件开发工具包的更新信息并存储,以保证服务器侧始终存储有最新版本的推送系统的软件开发工具包。
其中,服务器也可定时检测是否存在推送系统的软件开发工具包的更新,当存在更新时,自动获取更新的可执行文件以及更新的版本信息进行存储。
其中,服务器存储了更新的可执行文件以及更新的版本信息之后,对于原来的旧版本的可执行文件以及版本信息可以删除,以节省存储资源,也可对其进行保留,以便随时查询使用。
本发明实施例的推送系统加载方法,在客户端启动时,向移动终端返回推送系统的软件开发工具包信息,使得移动终端可根据推送系统的软件开发工具包信息,获取到推送系统的软件开发工具包的可执行文件并加载,保证了厂商推送通道的正常使用。
参见图8所示,本发明实施例还提供了一种推送系统加载装置800,应用于服务器,所述装置包括:
第二接收模块801,用于接收移动终端当客户端启动时发送的推送系统的软件开发工具包的访问请求;
第二获取模块802,用于根据所述访问请求,获取所述推送系统的软件开发工具包信息;
第一返回模块803,用于向所述移动终端返回所述推送系统的软件开发工具包信息。
本发明实施例的推送系统加载装置800,在客户端启动时,向移动终端返回推送系统的软件开发工具包信息,使得移动终端可根据推送系统的软件开发工具包信息,获取到推送系统的软件开发工具包的可执行文件并加载,保证了厂商推送通道的正常使用。
可选的,所述装置还包括:
第三接收模块,用于接收上传到所述服务器的推送系统的软件开发工具包的可执行文件以及版本信息;
第一存储模块,用于将接收到的所述推送系统的软件开发工具包的可执行文件以及版本信息进行存储;
所述第二获取模块802包括:
获取子模块,用于根据所述访问请求,获取所述推送系统的软件开发工具包的版本信息。
可选的,所述装置还包括:
第四接收模块,用于接收上传到所述服务器的推送系统的软件开发工具包的更新信息;所述更新信息包括更新的可执行文件以及更新的版本信息;
第二存储模块,用于将所述更新的可执行文件以及更新的版本信息进行存储。
本发明实施例的推送系统加载装置800,在客户端启动时,向移动终端返回推送系统的软件开发工具包信息,使得移动终端可根据推送系统的软件开发工具包信息,获取到推送系统的软件开发工具包的可执行文件并加载,保证了厂商推送通道的正常使用。
对于上述装置实施例而言,由于其与方法实施例基本相似,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,该电子设备可以是服务器。如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。
存储器903,用于存放计算机程序。
处理器901用于执行存储器903上所存放的程序时,实现如下步骤:
接收移动终端当客户端启动时发送的推送系统的软件开发工具包的访问请求;
根据所述访问请求,获取所述推送系统的软件开发工具包信息;
向所述移动终端返回所述推送系统的软件开发工具包信息。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中所述的推送系统加载方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中所述的推送系统加载方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,包含在本发明的保护范围内。

Claims (7)

1.一种推送系统加载方法,应用于移动终端,其特征在于,所述方法包括:
当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空;
接收所述后台服务器返回的所述推送系统的软件开发工具包信息;
根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件;
对所述推送系统的软件开发工具包的可执行文件进行加载处理,具体包括:
将所述推送系统的软件开发工具包的可执行文件插入到所述客户端的可执行文件队列中,并将所述推送系统的软件开发工具包的可执行文件在所述队列中被遍历的顺序,设置在所述虚拟文件之前;其中,所述虚拟文件在所述客户端的安装包解压后被放置在所述队列中;
通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件;
加载查找到的所述推送系统的软件开发工具包的可执行文件。
2.根据权利要求1所述的推送系统加载方法,其特征在于,所述后台服务器返回的所述推送系统的软件开发工具包信息包括版本信息;
所述根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件的步骤包括:
将所述后台服务器返回的版本信息与本地存储的所述推送系统的软件开发工具包的版本信息进行对比;
当所述后台服务器返回的版本信息比本地存储的版本信息高时,从所述后台服务器下载所述推送系统的软件开发工具包的可执行文件并存储。
3.根据权利要求1或2所述的推送系统加载方法,其特征在于,所述根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件的步骤包括:
当所述客户端首次启动时,根据所述后台服务器返回的所述推送系统的软件开发工具包信息,从所述后台服务器下载所述推送系统的软件开发工具包的可执行文件并存储。
4.根据权利要求1所述的推送系统加载方法,其特征在于,所述通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件的步骤包括:
调用类加载器通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件;其中,所述队列为所述类加载器的路径列表中的队列。
5.一种推送系统加载装置,应用于移动终端,其特征在于,所述装置包括:
第一发送模块,用于当客户端启动时,向后台服务器发送推送系统的软件开发工具包的访问请求;其中,所述客户端为所述移动终端上已安装的客户端,所述移动终端通过运行所述客户端的安装包安装所述客户端;所述客户端的安装包中预设有所述推送系统的软件开发工具包对应的虚拟文件,在所述客户端的安装包被编译时,所述虚拟文件作为所述推送系统的软件开发工具包被调用时的执行文件,且所述虚拟文件中被调用的内容为空;
第一接收模块,用于接收所述后台服务器返回的所述推送系统的软件开发工具包信息;
第一获取模块,用于根据所述后台服务器返回的所述推送系统的软件开发工具包信息,获取所述推送系统的软件开发工具包的可执行文件;
加载模块,用于对所述推送系统的软件开发工具包的可执行文件进行加载处理,具体包括:
将所述推送系统的软件开发工具包的可执行文件插入到所述客户端的可执行文件队列中,并将所述推送系统的软件开发工具包的可执行文件在所述队列中被遍历的顺序,设置在所述虚拟文件之前;其中,所述虚拟文件在所述客户端的安装包解压后被放置在所述队列中;
通过遍历所述队列,执行查找所述推送系统的软件开发工具包的操作,直到查找到所述推送系统的软件开发工具包的可执行文件;
加载查找到的所述推送系统的软件开发工具包的可执行文件。
6.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如权利要求1至4中任一项所述的推送系统加载方法中的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项所述的推送系统加载方法。
CN202110714848.0A 2021-06-25 2021-06-25 一种推送系统加载方法、装置、电子设备及存储介质 Active CN113342419B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110714848.0A CN113342419B (zh) 2021-06-25 2021-06-25 一种推送系统加载方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110714848.0A CN113342419B (zh) 2021-06-25 2021-06-25 一种推送系统加载方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113342419A CN113342419A (zh) 2021-09-03
CN113342419B true CN113342419B (zh) 2023-09-19

Family

ID=77478984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110714848.0A Active CN113342419B (zh) 2021-06-25 2021-06-25 一种推送系统加载方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113342419B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806195B (zh) * 2021-09-17 2023-11-10 亿咖通(湖北)技术有限公司 数据处理方法、装置、设备、系统及存储介质
CN113905040B (zh) * 2021-09-30 2024-04-02 北京百度网讯科技有限公司 文件传输方法、装置、系统、设备以及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
KR20140131688A (ko) * 2013-05-06 2014-11-14 주식회사 이타기술 연예인과 팬 간의 인터랙션 서비스를 위한 어플리케이션을 생성하는 장치 및 방법
WO2016029639A1 (zh) * 2014-08-27 2016-03-03 百度在线网络技术(北京)有限公司 在线资源下载推送至移动终端的方法和装置
CN107168960A (zh) * 2016-03-07 2017-09-15 阿里巴巴集团控股有限公司 一种业务执行方法及装置
CN109150956A (zh) * 2018-06-25 2019-01-04 百度在线网络技术(北京)有限公司 一种推送sdk的实现方法、装置、设备和计算机存储介质
CN110839073A (zh) * 2019-11-06 2020-02-25 北京小米智能科技有限公司 获取推送信息的方法、发送推送信息的方法及装置
WO2020083059A1 (zh) * 2018-10-26 2020-04-30 阿里巴巴集团控股有限公司 客户端组建方法、装置及系统
CN111176708A (zh) * 2019-12-20 2020-05-19 南京领行科技股份有限公司 一种sdk文件处理方法、装置、电子设备及存储介质
CN111679831A (zh) * 2020-06-04 2020-09-18 同盾控股有限公司 软件开发包处理方法、运行监控方法、装置及存储介质
CN111722849A (zh) * 2020-07-17 2020-09-29 思客云(北京)软件技术有限公司 Java语言虚拟编译实现方法、系统及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9451043B2 (en) * 2013-09-13 2016-09-20 Evie Labs, Inc. Remote virtualization of mobile apps

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
KR20140131688A (ko) * 2013-05-06 2014-11-14 주식회사 이타기술 연예인과 팬 간의 인터랙션 서비스를 위한 어플리케이션을 생성하는 장치 및 방법
WO2016029639A1 (zh) * 2014-08-27 2016-03-03 百度在线网络技术(北京)有限公司 在线资源下载推送至移动终端的方法和装置
CN107168960A (zh) * 2016-03-07 2017-09-15 阿里巴巴集团控股有限公司 一种业务执行方法及装置
CN109150956A (zh) * 2018-06-25 2019-01-04 百度在线网络技术(北京)有限公司 一种推送sdk的实现方法、装置、设备和计算机存储介质
WO2020083059A1 (zh) * 2018-10-26 2020-04-30 阿里巴巴集团控股有限公司 客户端组建方法、装置及系统
CN110839073A (zh) * 2019-11-06 2020-02-25 北京小米智能科技有限公司 获取推送信息的方法、发送推送信息的方法及装置
CN111176708A (zh) * 2019-12-20 2020-05-19 南京领行科技股份有限公司 一种sdk文件处理方法、装置、电子设备及存储介质
CN111679831A (zh) * 2020-06-04 2020-09-18 同盾控股有限公司 软件开发包处理方法、运行监控方法、装置及存储介质
CN111722849A (zh) * 2020-07-17 2020-09-29 思客云(北京)软件技术有限公司 Java语言虚拟编译实现方法、系统及装置

Also Published As

Publication number Publication date
CN113342419A (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
CN113342419B (zh) 一种推送系统加载方法、装置、电子设备及存储介质
CN111090452B (zh) 服务环境的切换方法及计算机可读存储介质
CN110247985B (zh) 一种资源下载方法、装置、电子设备及介质
CN108366127B (zh) 一种软件包的获取方法及装置
CN107193609B (zh) 应用中功能模块调用方法及装置、电子设备
CN110457049B (zh) 实现插件自动化的方法、装置、电子设备及存储介质
CN112615747B (zh) 一种网络设备自动部署配置的方法及装置
US9104520B2 (en) Method and apparatus for upgrading application
CN108600378B (zh) 一种文件下载方法、装置、终端和存储介质
CN113094064A (zh) 网关软件模块升级方法、装置、设备及存储介质
CN109995863B (zh) 一种动态资源下载方法、装置、电子设备及存储介质
CN109375946B (zh) 一种管理节点包管理器的组件包的方法及系统
CN110221880B (zh) 应用程序编程接口调用方法、装置、设备及介质
CN107783837B (zh) 一种进行存储扩展的方法、装置及电子设备
CN111427603B (zh) 应用程序的升级方法及装置
CN112965697A (zh) 一种代码文件的生成方法、装置及电子设备
CN113379501A (zh) 消息推送方法、装置、电子设备及存储介质
CN116382796B (zh) 一种h5小程序运行器的插件管理方法、装置及电子设备
CN112035119B (zh) 一种数据删除方法及装置
CN114827127B (zh) 文件管理方法、系统、云端服务器及终端设备
CN113342423B (zh) 一种配置文件更新方法及装置
CN112486539B (zh) 一种应用更新方法、装置、设备及存储介质
CN115454575B (zh) jar包转换并自动加载的方法、装置、设备及存储介质
CN108664259B (zh) 一种进行应用安装的方法和终端
CN117850841A (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