CN103353844A - 一种软件开发工具包升级方法和系统 - Google Patents
一种软件开发工具包升级方法和系统 Download PDFInfo
- Publication number
- CN103353844A CN103353844A CN2013102568927A CN201310256892A CN103353844A CN 103353844 A CN103353844 A CN 103353844A CN 2013102568927 A CN2013102568927 A CN 2013102568927A CN 201310256892 A CN201310256892 A CN 201310256892A CN 103353844 A CN103353844 A CN 103353844A
- Authority
- CN
- China
- Prior art keywords
- file
- server
- download
- scheduler
- request
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种软件开发工具包升级方法和系统,以解决SDK升级时需要APP升级,导致升级过程繁琐,以及bug修正不及时的问题。其中,方法包括:预先将软件开发工具包进行划分,划分后的软件开发工具包包括启动引擎文件和调度器文件,其中所述启动引擎文件嵌入应用程序中;当启动所述应用程序中的启动引擎文件后,向服务器发起请求;依据服务器返回的请求结果确定是否下载调度器文件;如果是,则从服务器下载调度器文件,并通过所述启动引擎文件引导所述下载的调度器文件启动;如果否,则通过所述启动引擎文件引导初始调度器文件启动。本发明实施例简化了软件开发工具包的升级过程,可以及时修正调度器文件中出现的bug。
Description
技术领域
本发明实施例涉及软件升级技术领域,特别是涉及一种软件开发工具包升级方法和系统。
背景技术
随着网络的快速发展,各种移动终端设备得到了广泛地应用,在移动终端上可以更加直接地向用户展示各种网络信息。
以广告的展示为例,目前较为常用的方法是在一些应用程序(Application,APP)中进行展示,当运行应用程序时,用户可以看到所展示的广告,并且可以点击进入相关链接。目前,在APP中展示广告的方法主要是通过将软件开发工具包(Software Development Kit,SDK)作为一个整体嵌入到APP中,当APP在网络上注册成功后,该APP即成为一个广告网络的媒体。
为了使软件的功能更加完善,SDK和APP都是要不断升级的。
但是,由于SDK作为一个整体嵌入到APP中,嵌入后作为APP的一部分,因此SDK自身是不具有自动升级功能的。当SDK需要升级时,则要求APP也要进行升级。APP在升级时,需要将升级后版本的SDK重新嵌入到APP中,APP将升级后版本的SDK进行编译打包,然后发布,并进行审核等过程,升级过程繁琐;另外,由于升级过程中所发布的文件可能会存在一些bug(程序中出现的错误以及不合理的问题),如果及时修正bug再升级到最新版本可能需要很长时间,从而导致一些用户的流失,因此,当一个版本的SDK出现bug后会一直持续到下一次APP升级SDK才能解决,导致bug修正不及时。
发明内容
本发明实施例所要解决的技术问题是提供一种软件开发工具包升级方法和系统,以解决SDK升级时需要APP升级,导致升级过程繁琐,以及bug修正不及时的问题。
为了解决上述问题,本发明公开了软件开发工具包升级方法,其特征在于,包括:
预先将软件开发工具包进行划分,划分后的软件开发工具包包括启动引擎文件和调度器文件,其中所述启动引擎文件嵌入应用程序中;
当启动所述应用程序中的启动引擎文件后,向服务器发起请求;
依据服务器返回的请求结果确定是否下载调度器文件;
如果是,则从服务器下载调度器文件,并通过所述启动引擎文件引导所述下载的调度器文件启动;
如果否,则通过所述启动引擎文件引导初始调度器文件启动。
可选地,在向服务器发起请求之前,还包括:检查预先设置的应用程序指定目录下是否存在初始调度器文件;
所述向服务器发起请求,包括:依据检查结果向服务器发起请求。
可选地,所述依据检查结果向服务器发起请求,包括:
当检查结果为不存在时,将请求参数赋值为空;
当检查结果为存在时,获取所述初始调度器文件的版本号,并将请求参数赋值为所述初始调度器文件的版本号;
向服务器发起携带所述请求参数的请求。
可选地,所述依据服务器返回的请求结果确定是否下载调度器文件,包括:
当请求参数值为空,服务器返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
当请求参数值为所述初始调度器文件的版本号,服务器确定需要升级并且返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
当请求参数值为所述初始调度器文件的版本号,服务器确定无需升级并且返回的请求结果为指示无需升级的信息时,确定无需下载调度器文件;
其中,服务器通过将所述初始调度器文件的版本号与服务器存储的版本号进行比较来确定是否需要升级。
可选地,所述获取所述初始调度器文件的版本号,包括:
获取所述启动引擎文件中定义的用于获取DE文件版本号的完整类名;
通过所述用于获取DE文件版本号的完整类名反射出所述初始调度器文件的版本号。
可选地,所述通过所述启动引擎文件引导所述下载的调度器文件启动,包括:
从所述下载的调度器文件中查找所述启动引擎文件中定义的用于启动的完整类名对应的完整类;
所述启动引擎文件通过预先设置的接口,将查找到的下载的调度器文件中的完整类作为加载入口加载所述下载的调度器文件。
另一方面,本发明还公开了一种软件开发工具包升级系统,其特征在于,包括:
请求模块,用于当启动应用程序中的启动引擎文件后,向服务器发起请求;
确定模块,用于依据服务器返回的请求结果确定是否下载调度器文件;
引导模块,用于当确定模块确定为是时,从服务器下载调度器文件,并通过所述启动引擎文件引导所述下载的调度器文件启动;当确定模块确定为否时,通过所述启动引擎文件引导初始调度器文件启动;
其中,预先将软件开发工具包进行划分,划分后的软件开发工具包包括启动引擎文件和调度器文件,所述启动引擎文件嵌入应用程序中。
可选地,所述系统还包括:
检查模块,用于在请求模块向服务器发起请求之前,检查预先设置的应用程序指定目录下是否存在初始调度器文件;
所述请求模块依据检查结果向服务器发起请求;
所述请求模块包括:
赋值子模块,用于当检查模块的检查结果为不存在时,将请求参数赋值为空;当检查模块的检查结果为存在时,获取所述初始调度器文件的版本号,并将请求参数赋值为所述初始调度器文件的版本号;
请求子模块,用于向服务器发起携带所述请求参数的请求。
可选地,所述确定模块包括:
第一确定子模块,用于当请求参数值为空,服务器返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
第二确定子模块,用于当请求参数值为所述初始调度器文件的版本号,服务器确定需要升级并且返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
第三确定子模块,用于当请求参数值为所述初始调度器文件的版本号,服务器确定无需升级并且返回的请求结果为指示无需升级的信息时,确定无需下载调度器文件;
其中,服务器通过将所述初始调度器文件的版本号与服务器存储的版本号进行比较来确定是否需要升级。
可选地,所述引导模块包括:
查找子模块,用于从所述下载的调度器文件中查找所述启动引擎文件中定义的用于启动的完整类名对应的完整类;
加载子模块,用于利用所述启动引擎文件通过预先设置的接口,将查找到的下载的调度器文件中的完整类作为加载入口加载所述下载的调度器文件。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例可以预先将软件开发工具包划分为启动引擎文件和调度器文件,当软件开发工具包需要升级时,对其中的调度器文件进行升级,而启动引擎文件无需升级。因此,划分后将软件开发工具包中的启动引擎文件嵌入应用程序中,启动引擎文件可以与应用程序一同启动,此时并未启动调度器文件。启动引擎文件启动后可以判断是否需要升级调度器文件,如果需要,则可以在调度器文件启动之前下载新的调度器文件,启动引擎文件即可直接引导下载的调度器文件启动。
因此,软件开发工具包的升级不需要应用程序同时升级,省去了应用程序在升级时,需要将升级后版本的软件开发工具包重新嵌入到应用程序中,进行编译打包,然后发布,并进行审核等过程,简化了软件开发工具包的升级过程;另外,由于每次启动调度器文件之前,都会检测是否需要升级,因此可以及时修正调度器文件中出现的bug。
附图说明
图1是本发明实施例一所述的一种软件开发工具包升级方法的流程图;
图2是本发明实施例二所述的一种软件开发工具包升级方法的流程图;
图3是本发明实施例二所述的软件开发工具包划分后的结构示意图;
图4是本发明实施例三所述的一种软件开发工具包升级方法的流程图;
图5是本发明实施例四所述的一种软件开发工具包升级系统的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例通过将SDK进行划分,将SDK升级过程中需要进行升级的调度器文件划分出来,将无需进行升级的启动引擎文件嵌入APP中。APP启动时,启动所述启动引擎文件,并判断调度器文件是否需要升级,然后启动引擎文件可以直接引导升级后的调度器文件启动。因此,APP无需重新嵌入升级后的SDK,简化了SDK的升级过程,并且可以及时修正SDK中出现的bug。
实施例一:
目前,随着各种移动终端的发展,可以通过移动终端中的APP展示各种网络信息。以广告的展示为例,在APP中展示广告的方法主要是通过将SDK作为一个整体嵌入到APP中,当APP在网络上注册成功后,该APP即成为一个广告网络的媒体。
为了使软件的功能更加完善,SDK和APP都是要不断升级的。但是,由于SDK作为一个整体嵌入到APP中,嵌入后作为APP的一部分,因此SDK自身是不具有自动升级功能的。当SDK需要升级时,则要求APP也要进行升级。APP在升级时,需要将升级后版本的SDK重新嵌入到APP中,APP将升级后版本的SDK进行编译打包,然后发布,并进行审核等过程,升级过程繁琐;另外,由于升级过程中所发布的文件可能会存在一些bug(程序中出现的错误以及不合理的问题),如果及时修正bug再升级到最新版本可能需要很长时间,从而导致一些用户的流失,因此,当一个版本的SDK出现bug后会一直持续到下一次APP升级SDK才能解决,导致bug修正不及时。
针对上述问题,本发明实施例提出了一种SDK升级方法,该方法升级过程简单,并且可以及时修正SDK中出现的bug。
参照图1,示出了本发明实施例一所述的一种软件开发工具包升级方法的流程图,所述方法可以包括:
步骤101,预先将软件开发工具包进行划分,划分后的软件开发工具包包括启动引擎文件和调度器文件,其中所述启动引擎文件嵌入应用程序中。
由于目前的技术中SDK是作为整体嵌入到APP中的,因此在SDK升级后,APP要重新嵌入升级后版本的SDK,从而导致过程繁琐。
因此,本发明实施例中,可以预先将SDK进行划分,划分后的SDK可以包括启动引擎(Launcher Engine,LE)文件和调度器(Dispatcher Engine,DE)文件,其中,LE和DE均指代一个jar包,属于SDK的一个组成部分。
本发明实施例中,由于SDK中LE文件的更新频率较低,不包含太多功能性代码,因此,将SDK进行划分之后,可以将其中的LE文件嵌入到APP中,LE文件的作用主要为检测DE文件的升级和加载DE文件。
SDK中主要的业务逻辑都在DE文件中,DE文件的更新频率也较高,通常SDK的升级以及SDK中出现的bug也都是针对DE文件的。因此,本发明实施例中SDK的升级主要是指DE文件的下载升级。
步骤102,当启动所述应用程序中的启动引擎文件后,向服务器发起请求。
在将LE文件嵌入到APP中之后,LE文件即可成为APP的一个组成部分,当启动APP时,即可启动APP中的LE文件。LE文件启动后,即可向服务器发起请求,以检测是否需要升级DE文件。
对于具体的发起请求过程,将在下面的实施例中详细论述。
步骤103,依据服务器返回的请求结果确定是否下载调度器文件。
在向服务器发起请求之后,服务器即可对接收到的请求进行处理,处理之后得到请求结果,然后服务器返回所述请求结果。LE文件可以依据服务器返回的请求结果确定是否下载DE文件。
如果确定需要下载DE文件,则执行步骤104;如果确定个无需下载DE文件,则执行步骤105。
步骤104,从服务器下载调度器文件,并通过所述启动引擎文件引导所述下载的调度器文件启动。
如果步骤103中判断出需要下载DE文件,则可以说明SDK需要升级,因此可以从服务器下载调度器文件,然后通过LE文件引导下载的DE文件启动。
因此,本发明实施例中在启动DE文件之前,即可判断是否下载新的DE文件,如果需要下载,则从服务器下载DE文件之后,可以通过LE文件直接引导下载的DE文件启动,从而完成SDK的升级。
步骤105,通过所述启动引擎文件引导初始调度器文件启动。
如果步骤103中判断出无需下载DE文件,则可以说明SDK不需要升级,因此可以通过LE文件直接引导初始DE文件启动。
本发明实施例中,所述初始DE文件可以指SDK中当前的DE文件,在每次下载DE文件之后,可以用下载的DE文件替换掉原有的DE文件,此时,本次下载的DE文件即为SDK中当前的DE文件,也即初始DE文件。
对于上述各个步骤的具体过程,将在下面的实施例中详细论述。
本发明实施例可以预先将软件开发工具包划分为启动引擎文件和调度器文件,当软件开发工具包需要升级时,对其中的调度器文件进行升级,而启动引擎文件无需升级。因此,划分后将软件开发工具包中的启动引擎文件嵌入应用程序中,启动引擎文件可以与应用程序一同启动,此时并未启动调度器文件。启动引擎文件启动后可以判断是否需要升级调度器文件,如果需要,则可以在调度器文件启动之前下载新的调度器文件,启动引擎文件即可直接引导下载的调度器文件启动。
因此,软件开发工具包的升级不需要应用程序同时升级,省去了应用程序在升级时,需要将升级后版本的软件开发工具包重新嵌入到应用程序中,进行编译打包,然后发布,并进行审核等过程,简化了软件开发工具包的升级过程;另外,由于每次启动调度器文件之前,都会检测是否需要升级,因此可以及时修正调度器文件中出现的bug。
实施例二:
下面,通过本发明实施例二对SDK升级方法进行详细论述。
参照图2,示出了本发明实施例二所述的一种软件开发工具包升级方法的流程图,所述升级方法可以包括:
步骤201,预先将软件开发工具包进行划分,划分后的软件开发工具包包括启动引擎文件和调度器文件,其中所述启动引擎文件嵌入应用程序中。
本发明实施例中,对SDK进行划分的依据可以为SDK中文件的更新(即升级)频率。划分后SDK可以包括LE文件和DE文件,其中,LE文件是更新频率较低的文件,一两个季度甚至以年为单位更新;而DE文件则可以随时根据需求来进行更新。
因此,划分后可以将LE文件嵌入APP中,通过LE文件检测DE文件的升级和加载DE文件,由于升级时主要是DE文件升级,而LE文件无需升级,因此,SDK升级之后,无需再重新将SDK嵌入APP中。
当然,本发明实施例中还可以采用其他依据对SDK进行划分,本领域技术人员根据实际经验进行相关处理即可,本发明实施例对此并不加以限制。
下面,介绍一下SDK划分后的结构示意图,如图3所示。从图3可以看出,SDK划分后可以包括LE文件和DE文件,可以将其中的LE文件嵌入APP中。LE文件与DE文件之间可以进行通信,LE文件主要用于加载DE文件和检测DE文件的更新;LE文件可以向服务器发请求,以确定是否需要下载DE文件;DE文件也可以与服务器进行通信,主要可以为DE文件向服务器发起网络信息请求、展示请求等等。对于具体的过程,将在下面的各步骤中详细论述。
步骤202,当启动所述应用程序中的启动引擎文件后,检查预先设置的应用程序指定目录下是否存在初始调度器文件。
由于将LE文件嵌入到APP中,因此当APP启动时,可以同步启动APP中的LE文件。启动后,首先可以通过LE文件检查预先设置的APP指定目录下是否存在初始调度器文件,然后可以依据检查结果向服务器发起请求。
其中,所述初始DE文件可以为APP指定目录下当前存在的DE文件。在每次下载DE文件之后,可以用下载的DE文件替换掉原有的DE文件,此时,本次下载的DE文件即为初始DE文件。
本发明实施例中,所述指定目录可以指LE文件指定的DE文件缓存的相对目录。例如,每个Android应用程序安装启动后都会有一个目录“/data/data/该APP对应的包/APP_/”做缓存目录,用于缓存APP文件,只要不卸载该应用程序,则这个缓存是一直存在的。因此该应用程序指定目录可以为上述“缓存目录+LE文件指定目录”,其中,LE文件指定目录可以根据实际情况进行设定,本发明实施例对此并不加以限制。
步骤203,依据检查结果向服务器发起请求。
在向服务器发起请求时,可以携带请求参数,根据步骤202中检查结果的不同,可以对所述请求参数赋不同的值。
本发明实施例中,该步骤203可以包括:
a1,当检查结果为不存在时,将请求参数赋值为空;
当检查结果为预先设置的APP指定目录下不存在初始DE文件(例如第一次启动该SDK)时,则可以将请求参数赋值为空(null),以标识客户端需要向服务器下载DE文件。
a2,当检查结果为存在时,获取所述初始调度器文件的版本号,并将请求参数赋值为所述初始调度器文件的版本号;
当检查结果为预先设置的APP指定目录下存在初始DE文件时,可以将请求参数赋值为初始DE文件的版本号,然后服务器可以根据版本号确定是否需要下载DE文件。
本发明实施例中,可以通过以下步骤获取初始DE文件的版本号:
(1)获取所述启动引擎文件中定义的用于获取DE文件版本号的完整类名;
(2)通过所述用于获取DE文件版本号的完整类名反射出所述初始调度器文件的版本号。
本发明实施例中,为了得到DE文件的版本号,在LE文件中可以定义一个用于获取DE文件版本号的完整类名。对于完整类名可以定义如下:java中类的定义为class A{},那么这个.java文件的名就是A.java,文件名与类名是一致的。完整类名指的是这个类的结构(该文件的路径),比如DE.jar文件,里面有这样一个文件com/izp/config/config.class,那么类config的完整路径(即完整类名)是com.izp.config.config。
在DE文件中可以包括多个不同的文件,例如,DE文件包括文件a、文件b和文件c这三个文件,其中,文件a是存储有版本号属性的文件。因此,LE文件中定义的用于获取DE文件版本号的完整类名即可为该文件a的路径,通过该完整类名可以查找到文件a,并反射出DE文件的版本号。
本发明实施例中,DE文件是一个.jar文件,.jar文件里可以包括多个.class文件,这些.class文件都是通过.java文件编译过来的,称作字节码文件。如果要调用字节码文件中的方法或者属性,需要经过:1、通过类加载器加载指定的.class文件得到该.class文件的Class对象;2、初始化该Class对象得到该类的固定对象/调用(反射等)。
例如,反射版本号的过程可以为:如果版本号在com.izp.constants.Config(com/izp/constants/config.class)文件中,用字段域SDK_VERSION标识版本号,则可以首先加载config.class字节码文件,然后从字节码文件对象中直接反射SDK_VERSION字段的值,该值即为所述版本号。
其中,对于反射技术可以定义如下:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。
对于具体的反射过程,本领域技术人员根据实际经验进行相关处理即可,本发明实施例在此不再详细论述。
本发明实施例中,为了实现将版本号发送至服务器,在LE文件中还可以设置一个用于标识版本的版本号字段,对于具体的过程,本发明实施例在此不再详细论述。
a3,向服务器发起携带所述请求参数的请求。
在通过上述过程将请求参数赋值之后,即可向服务器发起携带所述请求参数的请求,服务器再根据所述请求参数确定是否下载DE文件。
步骤204,依据服务器返回的请求结果确定是否下载调度器文件。
若是,则执行步骤205;若否,则执行步骤206。
服务器接收到所述请求之后,即可根据所述请求参数进行相应处理,得到请求结果,然后客户端即可依据服务器返回的请求结果确定是否下载DE文件。
本发明实施例中,该步骤204可以包括:
b1,当请求参数值为空,服务器返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件。
当所述请求参数为空时,表示客户端需要向服务器下载DE文件,此时,服务器所返回的请求结果应为DE文件的下载地址。
因此,当请求参数值为空,服务器返回的请求结果为DE文件的下载地址时,确定需要下载DE文件。
优选的,本发明实施例中,为了使下载的DE文件为最新的,服务器在返回下载地址时可以直接返回服务器中存储的最高版本的DE文件的下载地址。
b2,当请求参数值为所述初始调度器文件的版本号,服务器确定需要升级并且返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
当所述请求参数值为所述初始DE文件的版本号时,服务器可以将所述初始DE文件的版本号与服务器存储的版本号进行比较,从而确定是否需要升级所述初始DE文件。
例如,客户端与服务器约定版本号可以表示为3.2.1这样的形式,因此只需要将客户端上传的请求参数中初始DE文件的版本号与服务器存储的DE文件的版本号都化作长整数或者高精度浮点数,然后比较大小即可。
如果经过比较,判断出客户端上传的请求参数中初始DE文件的版本号小于服务器存储的DE文件的版本号,则可以说明当前服务器中具有更高版本的DE文件。此时服务器可以确定需要升级,并且服务器可以将其中版本号最高的DE文件的下载地址作为请求结果返回给客户端。
因此,当请求参数值为所述初始DE文件的版本号,服务器确定需要升级并且返回的请求结果为DE文件的下载地址时,确定需要下载DE文件。
需要说明的是,当经过比较得出客户端上传的请求参数中初始DE文件的版本号小于服务器存储的DE文件的版本号时,如果服务器自身认为无需升级,则也可以不升级所述初始DE文件,本发明实施例对此并不加以限制。
b3,当请求参数值为所述初始调度器文件的版本号,服务器确定无需升级并且返回的请求结果为指示无需升级的信息时,确定无需下载调度器文件。
如果经过比较,判断出客户端上传的请求参数中初始DE文件的版本号大于或等于服务器存储的DE文件的版本号,则可以说明当前服务器中没有更高版本的DE文件。此时服务器可以确定无需升级,并且服务器可以将指示无需升级的信息作为请求结果返回给客户端。
因此,当请求参数值为所述初始DE文件的版本号,服务器确定无需升级并且返回的请求结果为指示无需升级的信息时,确定无需下载DE文件。
步骤205,从服务器下载调度器文件,并通过所述启动引擎文件引导所述下载的调度器文件启动。
如果在步骤204中确定需要下载DE文件,则可以根据服务器返回的DE文件的下载地址从服务器下载DE文件,下载之后,即可通过所述LE文件引导所述下载的DE文件启动。
本发明实施例中,所述通过所述启动引擎文件引导所述下载的调度器文件启动可以包括:
c1,从所述下载的调度器文件中查找所述启动引擎文件中定义的用于启动的完整类名对应的完整类;
c2,所述启动引擎文件通过预先设置的接口,将查找到的下载的调度器文件中的完整类作为加载入口加载所述下载的调度器文件。
其中,所述LE文件中定义的用于启动的完整类名可以为一个常量字符串,启动时可以通过该常量字符串从下载的DE文件中查找对应的完整类,该完整类即为下载的DE文件的入口类,LE文件通过所述接口与该完整类加载所述下载的DE文件。
其中,所述接口的作用如下:接口定义了一些必要的方法,LE文件可以通过所述接口来控制DE文件。DE文件中有个入口文件(该文件实现了上述接口,入口文件运行后可以调用DE文件中的其他文件),因此,在上述步骤c2中首先通过加载入口加载的是该入口文件,加载并初始化后生成该类对象,因为该类实现了上述接口,所以该对象可以赋值给接口对象(接口回调),然后LE文件就可以通过接口中的方法控制DE文件的状态和生命周期,等等。
步骤206,通过所述启动引擎文件引导初始调度器文件启动。
如果在步骤204中确定无需下载DE文件,则可以通过所述LE文件引导初始DE文件启动。
对于通过LE文件引导初始DE文件启动的过程与上述引导下载的DE文件启动的过程基本相似,可以包括:
d1,从所述初始调度器文件中查找所述启动引擎文件中定义的用于启动的完整类名对应的完整类;
d2,所述启动引擎文件通过预先设置的接口,将查找到的初始调度器文件中的完整类作为加载入口加载所述初始调度器文件。
本发明实施例引导DE文件启动的过程可以利用java的动态加载jar文件技术和反射技术,java是面向对象的一门程序设计语言,将DE文件加载后要有一个类或者接口来接收,因此实现了一套不变的接口,该接口文件存在于LE文件中,用来接收加载到DE文件的对象。在通信过程中,可以通过上述接口将DE文件的数据或状态等生命周期内容传输至LE文件。
经过上述过程,即完成了SDK的升级过程,DE文件启动之后,即可与服务器进行交互,完成网页信息的调度。
本发明实施例通过将SDK进行划分,将SDK升级过程中需要进行升级的调度器文件划分出来,将无需进行升级的启动引擎文件嵌入APP中。APP启动时,启动所述启动引擎文件,并判断调度器文件是否需要升级,然后启动引擎文件可以直接引导升级后的调度器文件启动。因此,APP无需重新嵌入升级后的SDK,简化了SDK的升级过程,并且可以及时修正SDK中出现的bug。
实施例三:
下面,以广告展示为例,对本发明实施例所述的SDK升级方法进行说明。
本发明实施例中,首先可以将用于广告请求的SDK进行划分,划分后可以包括LE文件和DE文件,然后将LE文件嵌入APP中,APP启动后,即可自动检测是否需要升级SDK。
如图4所示,为本发明实施例三所述的一种软件开发工具包升级方法的流程图,所述方法可以包括:
步骤401,APP启动。
当APP启动时,可以同步启动APP中的LE文件。
步骤402,判断内存储卡中是否存在DE.jar。
本发明实施例中,可以将DE.jar(即DE文件)存储至内存储卡中,当然,还可以将DE文件存储至其它位置,本发明实施例对此并不加以限制。
如果判断出存储卡中存在DE.jar,则执行步骤403;如果判断出存储卡中不存在DE.jar,则执行步骤404。
步骤403,反射DE.jar的版本号,并将版本号作为请求参数发送给服务器,并执行405。
步骤404,将请求参数赋值为空,并发送给服务器,并执行405。
步骤405,服务器返回请求结果。
如果服务器接收到的请求参数为空,则可以将DE文件的下载地址(例如服务器中存储的版本号最高的DE文件的下载地址)作为请求结果;如果服务器接收到的请求参数为版本号,则可以将接收到的版本号与服务器存储的版本号进行比较:如果接收到的版本号小于服务器存储的版本号,则可以将DE文件的下载地址(例如服务器中存储的版本号最高的DE文件的下载地址)作为请求结果;如果接收到的版本号大于或等于服务器存储的版本号,则可以确定无需升级,服务器可以将指示无需升级的信息作为请求结果。
步骤406,从内存储卡中获取DE.jar。
如果服务器返回的请求结果为下载地址,则可以从所述下载地址下载相应的DE文件,然后将下载的DE文件存储至所述内存储卡中(本发明实施例中,如果内存储卡原来存在初始DE文件,则可以用下载的DE文件替换掉初始DE文件)。
经过上述处理过程,如果下载了新的DE.jar,则从内存储卡中获取的即为下载的DE.jar,因此,LE文件可以直接引导该下载的DE.jar启动。
步骤407,启动DE.jar。
从内存储卡中获取DE.jar之后,可以通过LE文件引导所述DE.jar启动,启动之后DE.jar即可向服务器发送广告请求。
对于具体的过程,可以参照上述实施例一和实施例二的相关描述,本发明实施例在此不再重复论述。
例如,开发一款连连看游戏,嵌入广告SDK后凭借广告的展示可以赚钱。将SDK拆分之后,LE文件可以作为一个第三方库文件导入连连看程序,并在布局文件中指定展示广告位置,编码完成之后打包测试。如果是第一次测试,则指定目录下没有DE文件,因此,LE文件检测之后发现不存在DE文件,然后向服务器发送下载DE文件的请求,下载完成之后启动DE文件开始广告请求;如果指定目录下存在DE文件,则反射DE文件的版本号向服务器发起请求,确定是否需要下载DE文件,如果需要则下载新的DE文件,随后启动DE文件开始广告请求。
需要说明的是,上述主要是以广告展示为例进行说明,但是本发明实施例所述的SDK升级方法并不限定于广告展示,对于其它的网络信息展示都是可行的。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
实施例四:
参照图5,示出了本发明实施例四所述的一种软件开发工具包升级系统的结构框图,所述系统可以包括:
本发明实施例中,可以预先将软件开发工具包进行划分,划分后的软件开发工具包包括启动引擎文件和调度器文件,所述启动引擎文件嵌入应用程序中。
其中:
检查模块501,用于在请求模块向服务器发起请求之前,检查预先设置的应用程序指定目录下是否存在初始调度器文件;
请求模块502,用于当启动应用程序中的启动引擎文件后,向服务器发起请求;所述请求模块可以依据检查结果向服务器发起请求;
所述请求模块502可以包括:
赋值子模块5021,用于当检查模块的检查结果为不存在时,将请求参数赋值为空;当检查模块的检查结果为存在时,获取所述初始调度器文件的版本号,并将请求参数赋值为所述初始调度器文件的版本号;
请求子模块5022,用于向服务器发起携带所述请求参数的请求。
确定模块503,用于依据服务器返回的请求结果确定是否下载调度器文件;
所述确定模块503可以包括:
第一确定子模块5031,用于当请求参数值为空,服务器返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
第二确定子模块5032,用于当请求参数值为所述初始调度器文件的版本号,服务器确定需要升级并且返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
第三确定子模块5033,用于当请求参数值为所述初始调度器文件的版本号,服务器确定无需升级并且返回的请求结果为指示无需升级的信息时,确定无需下载调度器文件;
其中,服务器通过将所述初始调度器文件的版本号与服务器存储的版本号进行比较来确定是否需要升级。
引导模块504,用于当确定模块确定为是时,从服务器下载调度器文件,并通过所述启动引擎文件引导所述下载的调度器文件启动;当确定模块确定为否时,通过所述启动引擎文件引导初始调度器文件启动;
所述引导模块504可以包括:
查找子模块5041,用于从所述下载的调度器文件中查找所述启动引擎文件中定义的用于启动的完整类名对应的完整类;
加载子模块5042,用于利用所述启动引擎文件通过预先设置的接口,将查找到的下载的调度器文件中的完整类作为加载入口加载所述下载的调度器文件。
本发明实施例可以预先将软件开发工具包划分为启动引擎文件和调度器文件,当软件开发工具包需要升级时,对其中的调度器文件进行升级,而启动引擎文件无需升级。因此,划分后将软件开发工具包中的启动引擎文件嵌入应用程序中,启动引擎文件可以与应用程序一同启动,此时并未启动调度器文件。启动引擎文件启动后可以判断是否需要升级调度器文件,如果需要,则可以在调度器文件启动之前下载新的调度器文件,启动引擎文件即可直接引导下载的调度器文件启动。
因此,软件开发工具包的升级不需要应用程序同时升级,省去了应用程序在升级时,需要将升级后版本的软件开发工具包重新嵌入到应用程序中,进行编译打包,然后发布,并进行审核等过程,简化了软件开发工具包的升级过程;另外,由于每次启动调度器文件之前,都会检测是否需要升级,因此可以及时修正调度器文件中出现的bug。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种软件开发工具包升级方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种软件开发工具包升级方法,其特征在于,包括:
预先将软件开发工具包进行划分,划分后的软件开发工具包包括启动引擎文件和调度器文件,其中所述启动引擎文件嵌入应用程序中;
当启动所述应用程序中的启动引擎文件后,向服务器发起请求;
依据服务器返回的请求结果确定是否下载调度器文件;
如果是,则从服务器下载调度器文件,并通过所述启动引擎文件引导所述下载的调度器文件启动;
如果否,则通过所述启动引擎文件引导初始调度器文件启动。
2.根据权利要求1所述的方法,其特征在于,
在向服务器发起请求之前,还包括:检查预先设置的应用程序指定目录下是否存在初始调度器文件;
所述向服务器发起请求,包括:依据检查结果向服务器发起请求。
3.根据权利要求2所述的方法,其特征在于,所述依据检查结果向服务器发起请求,包括:
当检查结果为不存在时,将请求参数赋值为空;
当检查结果为存在时,获取所述初始调度器文件的版本号,并将请求参数赋值为所述初始调度器文件的版本号;
向服务器发起携带所述请求参数的请求。
4.根据权利要求3所述的方法,其特征在于,所述依据服务器返回的请求结果确定是否下载调度器文件,包括:
当请求参数值为空,服务器返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
当请求参数值为所述初始调度器文件的版本号,服务器确定需要升级并且返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
当请求参数值为所述初始调度器文件的版本号,服务器确定无需升级并且返回的请求结果为指示无需升级的信息时,确定无需下载调度器文件;
其中,服务器通过将所述初始调度器文件的版本号与服务器存储的版本号进行比较来确定是否需要升级。
5.根据权利要求3所述的方法,其特征在于,所述获取所述初始调度器文件的版本号,包括:
获取所述启动引擎文件中定义的用于获取DE文件版本号的完整类名;
通过所述用于获取DE文件版本号的完整类名反射出所述初始调度器文件的版本号。
6.根据权利要求1所述的方法,其特征在于,所述通过所述启动引擎文件引导所述下载的调度器文件启动,包括:
从所述下载的调度器文件中查找所述启动引擎文件中定义的用于启动的完整类名对应的完整类;
所述启动引擎文件通过预先设置的接口,将查找到的下载的调度器文件中的完整类作为加载入口加载所述下载的调度器文件。
7.一种软件开发工具包升级系统,其特征在于,包括:
请求模块,用于当启动应用程序中的启动引擎文件后,向服务器发起请求;
确定模块,用于依据服务器返回的请求结果确定是否下载调度器文件;
引导模块,用于当确定模块确定为是时,从服务器下载调度器文件,并通过所述启动引擎文件引导所述下载的调度器文件启动;当确定模块确定为否时,通过所述启动引擎文件引导初始调度器文件启动;
其中,预先将软件开发工具包进行划分,划分后的软件开发工具包包括启动引擎文件和调度器文件,所述启动引擎文件嵌入应用程序中。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
检查模块,用于在请求模块向服务器发起请求之前,检查预先设置的应用程序指定目录下是否存在初始调度器文件;
所述请求模块依据检查结果向服务器发起请求;
所述请求模块包括:
赋值子模块,用于当检查模块的检查结果为不存在时,将请求参数赋值为空;当检查模块的检查结果为存在时,获取所述初始调度器文件的版本号,并将请求参数赋值为所述初始调度器文件的版本号;
请求子模块,用于向服务器发起携带所述请求参数的请求。
9.根据权利要求8所述的系统,其特征在于,所述确定模块包括:
第一确定子模块,用于当请求参数值为空,服务器返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
第二确定子模块,用于当请求参数值为所述初始调度器文件的版本号,服务器确定需要升级并且返回的请求结果为调度器文件的下载地址时,确定需要下载调度器文件;
第三确定子模块,用于当请求参数值为所述初始调度器文件的版本号,服务器确定无需升级并且返回的请求结果为指示无需升级的信息时,确定无需下载调度器文件;
其中,服务器通过将所述初始调度器文件的版本号与服务器存储的版本号进行比较来确定是否需要升级。
10.根据权利要求7所述的系统,其特征在于,所述引导模块包括:
查找子模块,用于从所述下载的调度器文件中查找所述启动引擎文件中定义的用于启动的完整类名对应的完整类;
加载子模块,用于利用所述启动引擎文件通过预先设置的接口,将查找到的下载的调度器文件中的完整类作为加载入口加载所述下载的调度器文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310256892.7A CN103353844B (zh) | 2013-06-25 | 2013-06-25 | 一种软件开发工具包升级方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310256892.7A CN103353844B (zh) | 2013-06-25 | 2013-06-25 | 一种软件开发工具包升级方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103353844A true CN103353844A (zh) | 2013-10-16 |
CN103353844B CN103353844B (zh) | 2016-11-23 |
Family
ID=49310218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310256892.7A Expired - Fee Related CN103353844B (zh) | 2013-06-25 | 2013-06-25 | 一种软件开发工具包升级方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103353844B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605541A (zh) * | 2013-11-18 | 2014-02-26 | 四川长虹电器股份有限公司 | 更新Android系统开发工具包的方法 |
CN104077160A (zh) * | 2014-05-12 | 2014-10-01 | 联动优势电子商务有限公司 | 一种升级安卓软件的方法、设备和系统 |
CN104156243A (zh) * | 2014-08-05 | 2014-11-19 | 网际傲游(北京)科技有限公司 | 一种应用分发和快速加载运行的系统及方法 |
CN104484201A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 用于ios设备的软件工具开发包更新方法和装置 |
WO2015062494A1 (zh) * | 2013-10-29 | 2015-05-07 | 北京奇虎科技有限公司 | Sdk实现文件上传、下载的方法与装置 |
CN105893070A (zh) * | 2015-11-25 | 2016-08-24 | 乐视云计算有限公司 | 应用的sdk的升级方法及系统 |
CN106155723A (zh) * | 2015-04-13 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 业务应用程序的升级方法和装置 |
CN106528192A (zh) * | 2015-09-15 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种业务逻辑更新方法和装置 |
CN106528219A (zh) * | 2016-10-26 | 2017-03-22 | 北京奇虎科技有限公司 | 应用程序中寄生工具包的升级方法及装置 |
CN106557348A (zh) * | 2016-11-25 | 2017-04-05 | 百度在线网络技术(北京)有限公司 | 视图展示方法和装置 |
CN106843978A (zh) * | 2017-01-23 | 2017-06-13 | 北京乐盟互动科技有限公司 | 一种sdk接入方法及系统 |
CN107528713A (zh) * | 2016-06-22 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 一种数据转移sdk的升级方法及装置 |
CN107527196A (zh) * | 2016-06-22 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 一种话费业务处理方法及其设备 |
CN107704260A (zh) * | 2017-10-31 | 2018-02-16 | 广东小天才科技有限公司 | 一种更新应用软件的软件开发工具包的方法及系统 |
CN109002320A (zh) * | 2018-08-20 | 2018-12-14 | 苏州思必驰信息科技有限公司 | 用于软件开发包的更新方法、系统、电子设备及存储介质 |
CN109218054A (zh) * | 2017-07-03 | 2019-01-15 | 腾讯科技(深圳)有限公司 | 终端动态配置、相应服务器实现方法、装置和存储介质 |
CN109710287A (zh) * | 2018-12-07 | 2019-05-03 | 中国移动通信集团有限公司 | 一种热更新方法、装置及计算机存储介质 |
CN109857404A (zh) * | 2019-01-11 | 2019-06-07 | 平安科技(深圳)有限公司 | Sdk接口的封装方法及装置、存储介质、电子设备 |
CN110221840A (zh) * | 2019-06-05 | 2019-09-10 | 百度在线网络技术(北京)有限公司 | 应用程序的功能实现方法及装置、设备及存储介质 |
CN112882732A (zh) * | 2021-01-22 | 2021-06-01 | 支付宝(杭州)信息技术有限公司 | 一种软件开发工具包sdk中功能代码的更新方法和装置 |
CN113918286A (zh) * | 2021-12-08 | 2022-01-11 | 成都泰盟软件有限公司 | 一种jar包格式本地化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110010724A1 (en) * | 2009-07-13 | 2011-01-13 | Sudhindra Kumar Thokur Lakshminarayanan | Communication bridge |
CN103065090A (zh) * | 2012-12-20 | 2013-04-24 | 广东欧珀移动通信有限公司 | 一种应用程序恶意广告拦截方法及装置 |
CN103077058A (zh) * | 2013-01-06 | 2013-05-01 | 邓海勤 | 一种安装应用程序的方法及装置 |
-
2013
- 2013-06-25 CN CN201310256892.7A patent/CN103353844B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110010724A1 (en) * | 2009-07-13 | 2011-01-13 | Sudhindra Kumar Thokur Lakshminarayanan | Communication bridge |
CN103065090A (zh) * | 2012-12-20 | 2013-04-24 | 广东欧珀移动通信有限公司 | 一种应用程序恶意广告拦截方法及装置 |
CN103077058A (zh) * | 2013-01-06 | 2013-05-01 | 邓海勤 | 一种安装应用程序的方法及装置 |
Non-Patent Citations (1)
Title |
---|
猫猫: "移动广告聚合平台经验分享:芒果、果合、Adview、抓猫哪家好?", 《豆瓣WWW.DOUBAN.COM/NOTE/238429912/》 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015062494A1 (zh) * | 2013-10-29 | 2015-05-07 | 北京奇虎科技有限公司 | Sdk实现文件上传、下载的方法与装置 |
CN103605541A (zh) * | 2013-11-18 | 2014-02-26 | 四川长虹电器股份有限公司 | 更新Android系统开发工具包的方法 |
CN104077160A (zh) * | 2014-05-12 | 2014-10-01 | 联动优势电子商务有限公司 | 一种升级安卓软件的方法、设备和系统 |
CN104077160B (zh) * | 2014-05-12 | 2018-04-03 | 联动优势电子商务有限公司 | 一种升级安卓软件的方法、设备和系统 |
CN104156243B (zh) * | 2014-08-05 | 2017-12-12 | 网际傲游(北京)科技有限公司 | 一种应用分发和快速加载运行的系统及方法 |
CN104156243A (zh) * | 2014-08-05 | 2014-11-19 | 网际傲游(北京)科技有限公司 | 一种应用分发和快速加载运行的系统及方法 |
CN104484201A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 用于ios设备的软件工具开发包更新方法和装置 |
CN106155723A (zh) * | 2015-04-13 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 业务应用程序的升级方法和装置 |
CN106528192A (zh) * | 2015-09-15 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种业务逻辑更新方法和装置 |
CN105893070A (zh) * | 2015-11-25 | 2016-08-24 | 乐视云计算有限公司 | 应用的sdk的升级方法及系统 |
WO2017088388A1 (zh) * | 2015-11-25 | 2017-06-01 | 乐视控股(北京)有限公司 | 应用的sdk的升级方法及系统 |
CN107527196A (zh) * | 2016-06-22 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 一种话费业务处理方法及其设备 |
CN107528713A (zh) * | 2016-06-22 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 一种数据转移sdk的升级方法及装置 |
CN107527196B (zh) * | 2016-06-22 | 2019-04-26 | 腾讯科技(深圳)有限公司 | 一种话费业务处理方法及其设备 |
CN106528219A (zh) * | 2016-10-26 | 2017-03-22 | 北京奇虎科技有限公司 | 应用程序中寄生工具包的升级方法及装置 |
CN106557348A (zh) * | 2016-11-25 | 2017-04-05 | 百度在线网络技术(北京)有限公司 | 视图展示方法和装置 |
CN106843978B (zh) * | 2017-01-23 | 2020-04-03 | 北京乐盟互动科技有限公司 | 一种sdk接入方法及系统 |
CN106843978A (zh) * | 2017-01-23 | 2017-06-13 | 北京乐盟互动科技有限公司 | 一种sdk接入方法及系统 |
CN109218054A (zh) * | 2017-07-03 | 2019-01-15 | 腾讯科技(深圳)有限公司 | 终端动态配置、相应服务器实现方法、装置和存储介质 |
CN107704260A (zh) * | 2017-10-31 | 2018-02-16 | 广东小天才科技有限公司 | 一种更新应用软件的软件开发工具包的方法及系统 |
CN109002320A (zh) * | 2018-08-20 | 2018-12-14 | 苏州思必驰信息科技有限公司 | 用于软件开发包的更新方法、系统、电子设备及存储介质 |
CN109002320B (zh) * | 2018-08-20 | 2021-07-06 | 思必驰科技股份有限公司 | 用于软件开发包的更新方法、系统、电子设备及存储介质 |
CN109710287A (zh) * | 2018-12-07 | 2019-05-03 | 中国移动通信集团有限公司 | 一种热更新方法、装置及计算机存储介质 |
CN109710287B (zh) * | 2018-12-07 | 2022-04-29 | 中国移动通信集团有限公司 | 一种热更新方法、装置及计算机存储介质 |
CN109857404A (zh) * | 2019-01-11 | 2019-06-07 | 平安科技(深圳)有限公司 | Sdk接口的封装方法及装置、存储介质、电子设备 |
CN109857404B (zh) * | 2019-01-11 | 2024-05-03 | 平安科技(深圳)有限公司 | Sdk接口的封装方法及装置、存储介质、电子设备 |
CN110221840A (zh) * | 2019-06-05 | 2019-09-10 | 百度在线网络技术(北京)有限公司 | 应用程序的功能实现方法及装置、设备及存储介质 |
CN112882732A (zh) * | 2021-01-22 | 2021-06-01 | 支付宝(杭州)信息技术有限公司 | 一种软件开发工具包sdk中功能代码的更新方法和装置 |
CN113918286A (zh) * | 2021-12-08 | 2022-01-11 | 成都泰盟软件有限公司 | 一种jar包格式本地化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103353844B (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103353844A (zh) | 一种软件开发工具包升级方法和系统 | |
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN108847950B (zh) | 电子装置、云系统软件自动部署方法及存储介质 | |
CN104252342B (zh) | 一种可配置参数的嵌入式应用实现方法及装置 | |
CN105657191B (zh) | 一种基于Android系统的应用增量升级方法及系统 | |
CN103530156B (zh) | 动态加载和调用程序的方法及装置 | |
CN102411506B (zh) | Java系统业务单元插件式管理系统及业务功能动态变更方法 | |
CN109491695A (zh) | 一种集成安卓应用的增量更新方法 | |
CN107506221B (zh) | 应用程序升级方法、装置及设备 | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
CN107391104B (zh) | 一种客户端与react native代码的更新依赖管理方法、装置及系统 | |
CN106610839B (zh) | 发布升级包的方法、轻量升级方法、装置及系统 | |
CN109144533A (zh) | 一种应用程序的更新及加载的方法、系统及计算机装置 | |
CN110968331B (zh) | 应用程序运行的方法和装置 | |
CN108762800A (zh) | 应用程序的动态更新方法和装置 | |
CN106796521B (zh) | 独立于产品发布的api版本控制 | |
CN105068834A (zh) | 系统升级方法及装置 | |
CN109688472A (zh) | 电视系统升级方法、装置、设备及存储介质 | |
CN112099880B (zh) | 场景驱动的应用程序约减方法和系统 | |
CN109672534A (zh) | 网络资源的处理方法、装置、存储介质和电子装置 | |
CN109240733A (zh) | 一种基于安卓系统更新广告sdk的方法及终端 | |
US10698666B2 (en) | Automatically building software projects | |
CN113157274A (zh) | 基于微前端的软件开发方法、装置、电子设备及存储介质 | |
US9411618B2 (en) | Metadata-based class loading using a content repository | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161123 Termination date: 20170625 |
|
CF01 | Termination of patent right due to non-payment of annual fee |