CN108366127B - 一种软件包的获取方法及装置 - Google Patents
一种软件包的获取方法及装置 Download PDFInfo
- Publication number
- CN108366127B CN108366127B CN201810185179.0A CN201810185179A CN108366127B CN 108366127 B CN108366127 B CN 108366127B CN 201810185179 A CN201810185179 A CN 201810185179A CN 108366127 B CN108366127 B CN 108366127B
- Authority
- CN
- China
- Prior art keywords
- package
- sdk
- packet
- target sdk
- target
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72406—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种软件包的获取方法及装置,本发明中获取与所述属性信息相对应的目标软件开发工具包SDK包,将所述目标SDK包的下载链接地址发送至所述移动终端,以使所述移动终端根据所述下载链接地址下载所述目标SDK包。即本发明在下载目标SDK包时,没有下载所有手机厂商的SDK包,而是只下载了与手机的属性信息相对应的SDK包,这样既能够保证消息正常推送,又能够避免由于下载安装所有厂商开发的SDK包,而造成应用软件包较大的问题。
Description
技术领域
本发明涉及软件应用领域,更具体的说,涉及一种软件包的获取方法及装置。
背景技术
随着智能手机的不断发展,各种各样的应用通过向用户推送消息,来提高应用服务进程的保活率。
如今,为了能够在应用没有被启动时,也能够向用户推送消息,会在应用中安装不同的手机厂商开发的软件开发工具包SDK,进而能够通过手机厂商的通信通道推送应用消息至用户的手机。
但是,由于手机厂商有多种,如小米、华为等厂商,为了保证应用在不同厂商制造的手机中,均能够在应用未启动时达到推送消息的目的,需要将不同厂商开发的SDK均添加到同一个应用中,进而会导致应用软件包较大,加重手机运行负担。
发明内容
有鉴于此,本发明提供一种软件包的获取方法及装置,以解决将不同厂商开发的SDK均添加到同一个应用中,进而会导致应用软件包较大,加重手机运行负担的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种软件包的获取方法,应用于服务器,包括:
接收移动终端发送的软件包获取请求;其中,所述软件包获取请求中包括所述移动终端的属性信息;
获取与所述属性信息相对应的目标软件开发工具包SDK包;
将所述目标SDK包的下载链接地址发送至所述移动终端,以使所述移动终端根据所述下载链接地址下载所述目标SDK包。
优选地,所述目标SDK包的生成过程包括:
接收手机厂商发送的原始SDK包;
将所述原始SDK包进行数据格式转换,得到能够使所述移动终端识别的所述目标SDK包。
一种软件包的获取方法,应用于移动终端,包括:
获取所述移动终端的属性信息;
生成并发送软件包获取请求至服务器;其中,所述软件包获取请求中包括所述属性信息;
接收所述服务器发送的下载链接地址;
根据所述下载链接地址,下载与所述属性信息相对应的目标SDK包。
优选地,根据所述下载链接地址,下载与所述属性信息相对应的目标SDK包后,还包括:
采用预设加载机制,将所述目标SDK包加载到预设应用包中,得到新的应用包;其中,所述预设应用包中包括所述目标SDK包的假写接口,以使所述预设应用包能够正常编译;
当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端。
优选地,当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标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为本发明实施例提供的一种应用于服务器的软件包的获取方法的方法流程图;
图2为本发明实施例提供的一种应用于移动终端的软件包的获取方法的方法流程图;
图3为本发明实施例提供的另一种应用于移动终端的软件包的获取方法的方法流程图;
图4为本发明实施例提供的一种应用于服务器的软件包的获取装置的结构示意图;
图5为本发明实施例提供的一种应用于移动终端的软件包的获取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种软件包的获取方法,其中,软件包是指软件开发工具包SDK包。需要说明的是,不同的厂商都开发有自己的SDK包,如苹果厂商、OPPO厂商等。
软件包的获取方法应用于服务器,服务器为提供应用软件包的服务器,应用可以是聊天软件、购物软件等。
参照图1,软件包的获取方法可以包括:
S11、接收移动终端发送的软件包获取请求;
其中,软件包获取请求中包括移动终端的属性信息。具体的,属性信息是指可以表示手机厂商的信息,如系统名称。举例说明,当系统名称为mimu系统时,基本可推测为手机厂商为小米,当系统名称为emui系统时,基本可推测为手机厂商为华为。
需要说明的是,上述举例介绍的根据系统推测手机厂商的例子,是在手机正常使用情况下,不涉及手机刷系统的特例。
需要说明的是,属性信息一般为手机的属性信息,即本实施例中的移动终端一般为手机。
S12、获取与属性信息相对应的目标软件开发工具包SDK包;
具体的,服务器中存储有不同手机厂商的SDK包,当获取到属性信息后,根据属性信息分析得到手机厂商,服务器中设置有SDK包与属性信息的对应关系,进而通过对应关系去获取该手机厂商对应的目标SDK包。
其中,软件开发工具包(SDK,Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
S13、将目标SDK包的下载链接地址发送至移动终端,以使移动终端根据下载链接地址下载SDK包。
移动终端接收到下载链接地址后,就可以从该地址上下载该目标SDK包。其中,下载链接地址可以为统一资源定位符URL链接。
具体的,移动终端登录该下载链接地址,点击下载按钮,就会发送软件包下载请求到服务器,服务器将该软件包下载请求相对应的目标SDK包发送至移动终端,以使移动终端能够使用该目标SDK包。
可选的,在本实施例的基础上,目标SDK包的生成过程可以包括:
1、接收手机厂商发送的原始SDK包;
2、将原始SDK包进行数据格式转换,得到能够使移动终端识别的目标SDK包。
具体的,各个厂家会开发原始SDK包,即PUSH SDK包,其中,原始SDK包可能有两种形式,一种为罐子jar包,另一种为jar包和so库的组合。其中,so库是unix的动态链接库,是一种二进制文件,相当于windows下的.dll文件,在安卓Android下通过jni方式被调用。
当原始SDK包为jar包和so库的组合时,将jar包转换为dex包,其中,dex是Android平台上可执行文件的类型。
将转换得到的dex包连同so库打包压缩后放到服务器上,即可得到SDK包。其中,SDK包的格式为能够被移动终端,如手机识别的二进制文件。
当原始SDK包仅为jar包时,将jar包转换为dex包,并进行压缩即可。
本实施例中获取与属性信息相对应的目标软件开发工具包SDK包,将目标SDK包的下载链接地址发送至移动终端,以使移动终端根据下载链接地址下载目标SDK包。即本发明在下载目标SDK包时,没有下载所有手机厂商的SDK包,而是只下载了与手机的属性信息相对应的SDK包,这样既能够保证消息正常推送,又能够避免由于下载安装所有厂商开发的SDK包,而造成应用软件包较大的问题。
经过试验得到,通过本发明中的软件包的获取方法,提高了消息到达手机上的到达率,使得更多的用户能够收到推送的消息,提高了应用服务进程的保活率。
可选的,在上一个应用于服务器的软件包的获取方法的实施例的基础上,本发明的另一实施例提供了一种应用于移动终端的软件包的获取方法,参照图2,可以包括:
S21、获取移动终端的属性信息;
其中,属性信息可以在移动终端上的本机信息中获取到,移动终端可以是手机。
S22、生成并发送软件包获取请求至服务器;
其中,软件包获取请求中包括属性信息。
具体的,生成一个软件包获取请求,该软件包获取请求用于请求获取一个SDK包,将属性信息添加到软件包获取请求中即可。
S23、接收服务器发送的下载链接地址;
S24、根据下载链接地址,下载与属性信息相对应的目标SDK包。
具体的,如何从下载链接地址下载目标SDK包,已经在上述实施例中进行了解释说明,在此不再赘述。
本实施例中,移动终端仅安装与自身的属性信息相匹配的目标SDK包,进而不用将所有厂家的SDK包均安装,减少了移动终端中应用软件包的大小。
同时,由于一款手机仅有一个手机厂商,将生产该手机的手机厂商的开发的SDK包安装到手机的应用中后,就能够保证消息的正常推送,相比于现有技术中,将所有手机厂商的SDK包安装进去,只能使用生产该手机的手机厂商的SDK包,其他SDK并不能正常使用来说,使得应用软件包与手机更适应。
可选的,在上一个应用于移动终端的软件包的获取方法的实施例的基础上,步骤S24后,还包括:
S31、采用预设加载机制,将所述目标SDK包加载到预设应用包中,得到新的应用包;
其中,所述预设应用包中包括所述目标SDK包的假写接口,以使所述预设应用包能够正常编译;
具体的,预设应用包可以是聊天软件的应用包或者是购物软件的应用包等,并且预设应用包已经安装在移动终端的内部,此步骤是中为了保证预设应用包对应的应用能够在不启动时,也能够进行信息推送,所以需要在预设应用包中添加目标SDK包。
其中,预设应用包中包括目标SDK包的假写接口。其中,假写接口可以采用假写fake接口的方式实现,在被调用的类声明在相同路径下,被调用的API,实现空函数,保证静态接收器receiver的声明和编译的通过。
需要说明的是,在预设应用包中编写有目标SDK包的假写接口,是因为,PUSH中相关接口需要被其他人调用,而PUSH的代码是要下载后才能运行的.为了保证编译app时通过编译,需要一套包括假的PUSH接口(函数几乎为空,但是函数声明与真的一样)的SDK软件包,下载后替换这套假的SDK软件包,从而来达到推送消息的目的。
此外,使用预设加载机制进行加载,预设加载机制可以是类加载机制,如类加载器Classloader。可以在程序运行时动态加载某个class文件到内存中,从而能被其他的class所引用。
具体的,加载的过程可以是:
通过tinker在手机软件APP启动时反射系统代码插入dex,而后采用classLoader加载相关的类和方法。其中,有so库的通过loadLibary加载。
其中,tinker是Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。
S32、当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端。
具体的,新的应用包对应的应用重新启动时,对目标SDK包进行加载即可,进而就能够在以后应用不启动时,也能够推送消息。
需要说明的是,手机软件APP的应用软件包中也可以集成默认的某个推送SDK包,比如视频软件的推送SDK,当没有其他的消息推送通道时,可以采用此推送通道进行消息推送。
可选的,在本实施例的基础上,步骤S32后,还可以包括:
当检测到所述服务器中删除所述目标SDK包后,下次启动所述新的应用包对应的应用时,禁止加载所述目标SDK包。
具体的,当检测到服务器中删除目标SDK包,即服务器中的目标SDK包被下线时,本次消息推送仍然使用该目标SDK包对应的推送通道,当下次应用启动时,则禁止加载该目标SDK包,并且删除该目标SDK包,进而此目标SDK包对应的推送通道将不再使用。
需要说明的是,当一个应用启动时,首先判断是否需要升级,当需要进行升级时,不加载目标SDK包,并且判断应用包中是否存在目标SDK包,若存在,则去判断目标SDK包是否需要升级,若需要升级,则根据属性信息去下载新的目标SDK包,若不需要升级,则下次应用启动时,加载目标SDK包。若不存在目标SDK包,则下次启动时不加载目标SDK包。
本实施例中,采用fake接口,然后通过classLoader方式加载替换fake的类和方法,避免了插件注册动态广播接收器的弊端,能充分发挥厂商系统推送通道消息到达率高的效果。
需要说明的是,动态加载目标SDK包并未采用插件方式,因为插件方式不支持静态广播接收器的注册,如果采用动态广播接收器,那只有APP在运行时才可以接收推送消息,APP不在运行时无法接收到推送消息,这对消息到达率的影响是不利的,进而采用fake接口的方式。
另外,加入一个目标SDK包大概只会增加10-20KB的大小,远小于直接接入各个推送SDK的大小,能够减小应用包的大小。
可选的,在上述软件包的获取方法的实施例的基础上,本发明的另一实施例提供了一种软件包的获取装置,应用于服务器,参照图4,包括:
请求接收模块101,用于接收移动终端发送的软件包获取请求;其中,软件包获取请求中包括移动终端的属性信息;
包获取模块102,用于获取与属性信息相对应的目标软件开发工具包SDK包;
地址发送模块103,用于将目标SDK包的下载链接地址发送至移动终端,以使移动终端根据下载链接地址下载目标SDK包。
进一步,还包括:
包接收模块,用于接收手机厂商发送的原始SDK包;
转换模块,用于将原始SDK包进行数据格式转换,得到能够使移动终端识别的目标SDK包。
本实施例中获取与属性信息相对应的目标软件开发工具包SDK包,将目标SDK包的下载链接地址发送至移动终端,以使移动终端根据下载链接地址下载目标SDK包。即本发明在下载目标SDK包时,没有下载所有手机厂商的SDK包,而是只下载了与手机的属性信息相对应的SDK包,这样既能够保证消息正常推送,又能够避免由于下载安装所有厂商开发的SDK包,而造成应用软件包较大的问题。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选的,在上述软件包的获取方法的实施例的基础上,本发明的另一实施例提供了一种软件包的获取装置,应用于移动终端,参照图5,包括:
信息获取模块201,用于获取移动终端的属性信息;
请求发送模块202,用于生成并发送软件包获取请求至服务器;其中,软件包获取请求中包括属性信息;
地址接收模块203,用于接收服务器发送的下载链接地址;
下载模块204,用于根据下载链接地址,下载与属性信息相对应的目标SDK包。
本实施例中,移动终端仅安装与自身的属性信息相匹配的目标SDK包,进而不用将所有厂家的SDK包均安装,减少了移动终端中应用软件包的大小。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选的,在上一个获取装置的实施例的基础上,还包括:
第一加载模块,用于所述下载模块根据所述下载链接地址,下载与所述属性信息相对应的目标SDK包后,采用预设加载机制,将所述目标SDK包加载到预设应用包中,得到新的应用包;其中,所述预设应用包中包括所述目标SDK包的假写接口,以使所述预设应用包能够正常编译;
第二加载模块,用于当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端。
进一步,还包括:
删除模块,用于所述第二加载模块当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端后,当检测到所述服务器中删除所述目标SDK包后,下次启动所述新的应用包对应的应用时,禁止加载所述目标SDK包。
本实施例中,采用fake接口,然后通过classLoader方式加载替换fake的类和方法,避免了插件注册动态广播接收器的弊端,能充分发挥厂商系统推送通道消息到达率高的效果。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种软件包的获取方法,其特征在于,应用于服务器,所述服务器中存储有不同手机厂商的软件开发工具包SDK包,所述获取方法包括:
接收移动终端发送的软件包获取请求;其中,所述软件包获取请求中包括所述移动终端的属性信息;
根据所述属性信息分析得到所述属性信息对应的手机厂商,获取所述手机厂商对应的SDK包,并确定为目标SDK包;
将所述目标SDK包的下载链接地址发送至所述移动终端,以使所述移动终端根据所述下载链接地址下载所述目标SDK包,将所述目标SDK包加载到安装在移动终端中、与所述目标SDK包不同、且包括所述目标SDK包的假写接口的SDK软件包的预设应用包中,得到新的应用包,当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端;其中,将所述目标SDK包加载到安装在移动终端中、与所述目标SDK包不同、且包括所述目标SDK包的假写接口的预设应用包中,包括:将所述目标SDK包替换包括所述目标SDK包的假写接口的SDK软件包。
2.根据权利要求1所述的获取方法,其特征在于,所述目标SDK包的生成过程包括:
接收手机厂商发送的原始SDK包;
将所述原始SDK包进行数据格式转换,得到能够使所述移动终端识别的所述目标SDK包。
3.一种软件包的获取方法,其特征在于,应用于移动终端,包括:
获取所述移动终端的属性信息;
生成并发送软件包获取请求至服务器;其中,所述软件包获取请求中包括所述属性信息;
接收所述服务器发送的下载链接地址;
根据所述下载链接地址,下载与所述属性信息相对应的目标SDK包;
将所述目标SDK包加载到安装在移动终端中、与所述目标SDK包不同、且包括所述目标SDK包的假写接口的SDK软件包的预设应用包中,得到新的应用包,当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端;其中,将所述目标SDK包加载到安装在移动终端中、与所述目标SDK包不同、且包括所述目标SDK包的假写接口的预设应用包中,包括:将所述目标SDK包替换包括所述目标SDK包的假写接口的SDK软件包。
4.根据权利要求3所述的获取方法,其特征在于,将所述目标SDK包替换包括所述目标SDK包的假写接口的SDK软件包,包括:
采用预设加载机制,将所述目标SDK包替换包括所述目标SDK包的假写接口的SDK软件包;其中,所述预设应用包中包括所述目标SDK包的假写接口,以使所述预设应用包能够正常编译。
5.根据权利要求3所述的获取方法,其特征在于,当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端后,还包括:
当检测到所述服务器中删除所述目标SDK包后,下次启动所述新的应用包对应的应用时,禁止加载所述目标SDK包。
6.一种软件包的获取装置,其特征在于,应用于服务器,所述服务器中存储有不同手机厂商的软件开发工具包SDK包,所述获取方法包括:
请求接收模块,用于接收移动终端发送的软件包获取请求;其中,所述软件包获取请求中包括所述移动终端的属性信息;
包获取模块,用于根据所述属性信息分析得到所述属性信息对应的手机厂商,获取所述手机厂商对应的SDK包,并确定为目标SDK包;
地址发送模块,用于将所述目标SDK包的下载链接地址发送至所述移动终端,以使所述移动终端根据所述下载链接地址下载所述目标SDK包,将所述目标SDK包加载到安装在移动终端中、与所述目标SDK包不同、且包括所述目标SDK包的假写接口的SDK软件包的预设应用包中,得到新的应用包,当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端;其中,将所述目标SDK包加载到安装在移动终端中、与所述目标SDK包不同、且包括所述目标SDK包的假写接口的预设应用包中,包括:将所述目标SDK包替换包括所述目标SDK包的假写接口的SDK软件包。
7.根据权利要求6所述的获取装置,其特征在于,还包括:
包接收模块,用于接收手机厂商发送的原始SDK包;
转换模块,用于将所述原始SDK包进行数据格式转换,得到能够使所述移动终端识别的所述目标SDK包。
8.一种软件包的获取装置,其特征在于,应用于移动终端,包括:
信息获取模块,用于获取所述移动终端的属性信息;
请求发送模块,用于生成并发送软件包获取请求至服务器;其中,所述软件包获取请求中包括所述属性信息;
地址接收模块,用于接收所述服务器发送的下载链接地址;
下载模块,用于根据所述下载链接地址,下载与所述属性信息相对应的目标SDK包;
第一加载模块,用于将所述目标SDK包加载到安装在移动终端中、与所述目标SDK包不同、且包括所述目标SDK包的假写接口的SDK软件包的预设应用包中,得到新的应用包,其中,包括:将所述目标SDK包替换包括所述目标SDK包的假写接口的SDK软件包;
第二加载模块,用于当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端。
9.根据权利要求8所述的获取装置,其特征在于,所述第一加载模块具体用于:
采用预设加载机制,将所述目标SDK包替换包括所述目标SDK包的假写接口的SDK软件包,得到新的应用包;其中,所述预设应用包中包括所述目标SDK包的假写接口,以使所述预设应用包能够正常编译。
10.根据权利要求9所述的获取装置,其特征在于,还包括:
删除模块,用于所述第二加载模块当所述新的应用包对应的应用重新启动时,加载所述新的应用包中的所述目标SDK包,以使当所述新的应用包对应的应用未启动时,所述新的应用包对应的应用能够推送消息至所述移动终端后,当检测到所述服务器中删除所述目标SDK包后,下次启动所述新的应用包对应的应用时,禁止加载所述目标SDK包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810185179.0A CN108366127B (zh) | 2018-03-07 | 2018-03-07 | 一种软件包的获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810185179.0A CN108366127B (zh) | 2018-03-07 | 2018-03-07 | 一种软件包的获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108366127A CN108366127A (zh) | 2018-08-03 |
CN108366127B true CN108366127B (zh) | 2021-05-04 |
Family
ID=63003716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810185179.0A Active CN108366127B (zh) | 2018-03-07 | 2018-03-07 | 一种软件包的获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108366127B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113412468A (zh) * | 2019-05-16 | 2021-09-17 | 深圳市欢太科技有限公司 | Sdk插件的加载方法、装置、移动终端以及存储介质 |
CN111338667B (zh) * | 2020-02-10 | 2023-08-01 | 浙江大华技术股份有限公司 | 一种应用程序app的升级方法与升级装置 |
CN111427603B (zh) * | 2020-04-15 | 2023-07-14 | 浙江大华技术股份有限公司 | 应用程序的升级方法及装置 |
CN112882732A (zh) * | 2021-01-22 | 2021-06-01 | 支付宝(杭州)信息技术有限公司 | 一种软件开发工具包sdk中功能代码的更新方法和装置 |
CN113330419B (zh) * | 2021-06-28 | 2024-07-16 | 商汤国际私人有限公司 | 一种设备应用安装方法、装置、设备和存储介质 |
CN113885896B (zh) * | 2021-09-29 | 2024-06-25 | 平安银行股份有限公司 | 应用程序软件包安装方法、装置、计算机设备及存储介质 |
CN114745357A (zh) * | 2022-04-08 | 2022-07-12 | 中国银行股份有限公司 | 一种外部链接地址的获取方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830992A (zh) * | 2012-07-31 | 2012-12-19 | 北京奇虎科技有限公司 | 插件加载方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677877B (zh) * | 2012-09-12 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 一种本地广告软件开发包升级的方法及装置 |
CN104734946A (zh) * | 2015-04-09 | 2015-06-24 | 北京易掌云峰科技有限公司 | 一种多租户高并发的即时通讯云平台 |
CN105141686B (zh) * | 2015-08-19 | 2019-04-09 | 贵阳朗玛信息技术股份有限公司 | 一种实现蓝牙通信的方法及装置 |
US9841969B2 (en) * | 2015-09-02 | 2017-12-12 | Google Inc. | Software development and distribution platform |
CN107122200A (zh) * | 2016-02-25 | 2017-09-01 | 博雅网络游戏开发(深圳)有限公司 | 加载插件sdk的方法、系统及客户端 |
-
2018
- 2018-03-07 CN CN201810185179.0A patent/CN108366127B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830992A (zh) * | 2012-07-31 | 2012-12-19 | 北京奇虎科技有限公司 | 插件加载方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108366127A (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108366127B (zh) | 一种软件包的获取方法及装置 | |
US8612947B2 (en) | System and method for remotely compiling multi-platform native applications for mobile devices | |
US20090133014A1 (en) | Methods, apparatuses and computer program product for automatic download of software dependencies on installation | |
CN113168332B (zh) | 数据处理方法、装置以及移动终端 | |
CN107741844B (zh) | 一种应用安装包的生成方法和装置 | |
CN106325847B (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
CN107193609B (zh) | 应用中功能模块调用方法及装置、电子设备 | |
CN108241500A (zh) | 一种硬件组件的修复方法、装置、系统和存储介质 | |
US10404568B2 (en) | Agent manager for distributed transaction monitoring system | |
CN104754062A (zh) | 基于互联网的信息推广方法、服务器及用户终端 | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN113064685A (zh) | 一种h5页面加载方法及装置 | |
EP2897053A1 (en) | Device management method and apparatus | |
CN113342419B (zh) | 一种推送系统加载方法、装置、电子设备及存储介质 | |
CN110851151A (zh) | 预装应用的方法、装置、终端、服务器和存储介质 | |
JP4173862B2 (ja) | 端末およびチップ・カード内に展開するアプリケーションのロード方法 | |
CN112688807B (zh) | 一种一站式联动响应蓝绿部署的方法、装置和电子设备 | |
CN111679850A (zh) | 应用程序热更新处理方法、装置及系统 | |
CN110502251B (zh) | 应用安装方法及装置 | |
CN110610080B (zh) | 应用的隔离实现方法、移动终端、计算机设备和存储介质 | |
CN107179918B (zh) | 软件处理方法、装置及系统 | |
KR101083229B1 (ko) | 이동 단말의 필요 어플리케이션 다운로드 방법, 장치, 시스템, 및 기록 매체 | |
CN107515763A (zh) | 一种应用程序及其安装资源的处理方法及服务器、终端设备 | |
US8504669B2 (en) | System and method for OSGi-based service delivery framework | |
CN112860300A (zh) | 分布式sdk热更新处理方法、应用服务器集群 |
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 |