CN109976787A - 应用程序升级方法、装置、终端及计算机可读存储介质 - Google Patents
应用程序升级方法、装置、终端及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109976787A CN109976787A CN201910185009.7A CN201910185009A CN109976787A CN 109976787 A CN109976787 A CN 109976787A CN 201910185009 A CN201910185009 A CN 201910185009A CN 109976787 A CN109976787 A CN 109976787A
- Authority
- CN
- China
- Prior art keywords
- application program
- sdk
- test
- party
- version
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用程序升级方法、装置、终端及计算机可读存储介质,适用于版本测试技术领域,所述应用程序升级方法包括:终端向服务器端发起应用程序升级请求,以使服务器端响应于应用程序升级请求返回应用程序的测试安装包,所述测试安装包用于第三方SDK新旧版本测试;运行测试安装包,以启动应用程序;基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK;当满足第三方SDK新旧版本测试的测试周期,接收应用程序的升级安装包,通过升级安装包的运行实现应用程序的升级,升级安装包是服务器端根据用户转化率大的第三方SDK对应版本返回的。采用本发明解决了现有技术中应用程序升级中存在的类冲突问题。
Description
技术领域
本发明涉及版本测试技术领域,尤其涉及一种应用程序升级方法、装置、终端及计算机可读存储介质。
背景技术
随着计算机技术的发展,终端上可安装的应用程序越来越丰富,并且每一种应用程序所能提供的应用程序功能也逐渐增多,以更好地提供终端用户娱乐体验。
目前,应用程序中,除了自身集成通用的应用程序功能之外,还会通过加载第三方SDK(Software Development Kit,软件工具开发包)来集成一些附加的应用程序功能,例如,附加的应用程序功能可以是人脸识别等等,进而随着应用程序的安装包(APK,AndroidPacket)在终端运行,而将第三方SDK部署于终端,以便于应用程序在终端上启动运行时加载该第三方SDK来为用户提供该些附加的应用程序功能。
为了提升附加的应用程序功能的性能,第三方SDK会进行新旧版本升级,而为了验证新版本是否优于旧版本,在正式升级之前,新旧版本的第三方SDK往往会需要并存进行A/B TEST(新旧版本测试)。
然而,上述过程中,发明人意识到现有技术仍存在以下问题:
如果新旧版本的第三方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的新版本是否优于旧版本,使得测试安装包中可以仅封装其中一个版本的第三方SDK,从而无论新旧版本的第三方SDK是否名字相同,都不会存在类冲突的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据本发明所涉及的实施环境的示意图。
图2是根据一示例性实施例示出的一种终端的硬件结构框图。
图3是根据一示例性实施例示出的一种应用程序升级方法的流程图。
图4是图3对应实施例中步骤350在一个实施例的流程图。
图5是图4对应实施例中步骤353在一个实施例的流程图。
图6是根据一示例性实施例示出的另一种应用程序升级方法的流程图。
图7是图6对应实施例中步骤410在一个实施例的流程图。
图8是图6对应实施例中步骤430在一个实施例的流程图。
图9是根据一示例性实施例示出的一种应用程序升级装置的框图。
图10是根据一示例性实施例示出的一种终端的框图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1为一种应用程序升级方法所涉及的实施环境的示意图。该实施环境包括终端110和服务器端130。
具体地,终端110可供应用程序运行,可以是台式电脑、笔记本电脑、平板电脑、智能手机、个人数字助理、掌上电脑等等,在此不进行限定。
终端110与服务器端130预先建立无线或者有线网络连接,并通过此网络连接实现终端110与服务器端130之间的数据传输。例如,待传输的数据包括应用程序升级请求、测试安装包、升级安装包、SDK组件、测试数据等。
其中,服务器端130可以是一台服务器,也可以是由多台服务器构成的服务器集群,还可以是由多台服务器构成的云计算中心。此服务器是指为用户提供后台服务的计算机设备,例如,后台服务包括安装包提供服务等。
如果应用程序需要升级,终端110将向服务器端130发起应用程序升级请求,以便于服务器端130返回应用程序的升级安装包,以供终端110通过该升级安装包的运行实现应用程序的升级。
请参阅图2,图2是根据一示例性实施例示出的一种终端的硬件结构框图。该种终端适用于图1所示出实施环境中的终端110。
需要说明的是,该种终端只是一个适配于本发明的示例,不能认为是提供了对本发明的使用范围的任何限制。该种终端也不能解释为需要依赖于或者必须具有图2中示出的示例性的终端100中的一个或者多个组件。
如图2所示,终端100包括存储器101、存储控制器103、一个或多个(图2中仅示出一个)处理器105、外设接口107、射频模块109、定位模块111、摄像模块113、音频模块115、触控屏幕117以及按键模块119。这些组件通过一条或多条通讯总线/信号线121相互通讯。
其中,存储器101可用于存储计算机程序以及模块,如本发明示例性实施例中的应用程序升级方法及装置对应的计算机可读指令及模块,处理器105通过运行存储在存储器101内的计算机可读指令,从而执行各种功能以及数据处理,即完成应用程序升级方法。
存储器101作为资源存储的载体,可以是随机存储器、例如高速随机存储器、非易失性存储器,如一个或多个磁性存储装置、闪存、或者其它固态存储器。存储方式可以是短暂存储或者永久存储。例如,存储器101可存储不同版本的第三方SDK。
外设接口107可以包括至少一有线或无线网络接口、至少一串并联转换接口、至少一输入输出接口以及至少一USB接口等,用于将外部各种输入/输出装置耦合至存储器101以及处理器105,以实现与外部各种输入/输出装置的通信。例如,与图1所示出实施环境中的服务器端130通信。
射频模块109用于收发电磁波,实现电磁波与电信号的相互转换,从而通过通讯网络与其他设备进行通讯。通信网络包括蜂窝式电话网、无线局域网或者城域网,上述通信网络可以使用各种通信标准、协议及技术。
定位模块111用于获取终端100的当前所在的地理位置。定位模块111的实例包括但不限于全球卫星定位系统(GPS)、基于无线局域网或者移动通信网的定位技术。
摄像模块113隶属于摄像头,用于拍摄图片或者视频。拍摄的图片或者视频可以存储至存储器101内,还可以通过射频模块109发送至上位机。
音频模块115向用户提供音频接口,其可包括一个或多个麦克风接口、一个或多个扬声器接口以及一个或多个耳机接口。通过音频接口与其它设备进行音频数据的交互。音频数据可以存储至存储器101内,还可以通过射频模块109发送。
触控屏幕117在终端100与用户之间提供一个输入输出界面。具体地,用户可通过触控屏幕117进行输入操作,例如点击、触摸、滑动等手势操作,以使终端100对该输入操作进行响应。终端100则将文字、图片或者视频任意一种形式或者组合所形成的输出内容通过触控屏幕117向用户显示输出。
按键模块119包括至少一个按键,用以提供用户向终端100进行输入的接口,用户可以通过按下不同的按键使终端100执行不同的功能。例如,声音调节按键可供用户实现对终端100播放的声音音量的调节。
可以理解,图2所示的结构仅为示意,终端100还可包括比图2中所示更多或更少的组件,或者具有与图2所示不同的组件。图2中所示的各组件可以采用硬件、软件或者其组合来实现。
请参阅图3,在一示例性实施例中,一种应用程序升级方法适用于图1所示实施环境的终端,该终端的结构可以如图2所示。
该种应用程序升级方法可以由终端执行,可以包括以下步骤:
步骤310,终端向服务器端发起应用程序升级请求。
其中,应用程序升级请求,用于指示服务器端请求升级的应用程序,进而使得服务器端响应于该应用程序升级请求,而返回终端请求升级的应用程序的测试安装包,所述测试安装包用于第三方SDK新旧版本测试。
对于终端而言,将为应用程序的升级设置对应的请求发起入口,那么,当用户期望进行应用程序的升级,便可在对应的请求发起入口触发相关操作,进而向服务器端发起应用程序升级请求。
例如,终端所配置的触控屏幕中显示一虚拟按键,当用户期望进行应用程序的升级,便可点击该虚拟按键,以向服务器端发起应用程序升级请求。其中,该虚拟按键即视为请求发起入口,点击操作即视为用户触发的相关操作。
需要说明的是,基于终端所配置的输入装置不同,用户触发的相关操作也有所区别。此输入装置可以是鼠标、键盘、触控屏幕等,相应地,用户触发的相关操作既可以是单击、双击、拖拽等机械操作,还可以是滑动、点击等手势操作,本实施例并未对此构成具体限定。
在终端向服务器端发起应用程序升级请求之后,对于服务器端而言,便可接收到该应用程序升级请求,并通过响应该应用程序升级请求,而将终端请求升级的应用程序的测试安装包返回至终端。
补充说明的是,为了避免第三方SDK因名字相同的新旧版本同时封装于测试安装包而产生类冲突的问题,本实施例中,测试安装包仅封装了其中一个版本的第三方SDK。
简言之,要么是新版本的第三方SDK封装于测试安装包,要么是旧版本的第三方SDK封装于测试安装包。
通过如此设置,即使第三方SDK新旧版本的名字相同,也不会产生类冲突问题。此外,由于测试安装包中仅封装了一个版本,不会导致测试安装包的体积过大,有利于提升测试安装包在终端与服务器端之间的传输效率。
步骤330,运行所述测试安装包,以启动所述应用程序。
在服务器端将测试安装包返回至终端之后,终端便可接收到此测试安装包,随着测试安装包在终端运行,应用程序相应启动。
步骤350,基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK。
应当理解,对于需要并存进行A/B TEST(新旧版本测试)的第三方SDK而言,不仅期望新版本的第三方SDK能够部署于一个终端,也同时期望旧版本的第三方SDK继续部署于另一个终端,以在充分地验证新版本优于旧版本之后,方才通过新版本进行应用程序的升级,否则仍依赖于旧版本实现应用程序的升级。
为此,本实施例中,将为不同的终端配置不同的加载方式。此加载方式是指SDK加载至终端内存的方式,包括动态加载和本地加载。
其中,本地加载,是指随着应用程序的测试安装包在终端运行,测试安装包中封装的其中一个版本的第三方SDK被部署于终端,进而在应用程序启动时,将该其中一个版本的第三方SDK加载至终端内存。
动态加载,则是指随着应用程序的测试安装包在终端运行,测试安装包中封装的其中一个版本的第三方SDK被部署于终端,而在应用程序启动运行时,另一个版本的第三方SDK方才从服务器端下载,并替代其中一个版本的第三方SDK而被部署于终端,进而加载至终端内存。
也可以理解为,本地加载是将已部署在终端中的第三方SDK加载至终端内存,而动态加载则是将服务器端中的第三方SDK加载至终端内存。
由上可知,不同终端,所加载的第三方SDK的版本将有所不同,通过新旧版本的第三方SDK加载于不同终端,进入第三方SDK的A/B TEST,以此方便于验证第三方SDK的新版本是否优于旧版本。
步骤370,当满足第三方SDK新旧版本测试的测试周期,接收所述应用程序的升级安装包,通过所述升级安装包的运行实现所述应用程序的升级。
其中,所述升级安装包是所述服务器端根据用户转化率大的第三方SDK对应版本返回的。
也就是说,在进行A/B TEST期间,服务器端将针对第三方SDK新旧版本实时统计用户转化率,进而根据用户转化率大的第三方SDK对应版本向终端返回升级安装包。例如,新版本的用户转化率大,则返回的升级安装包中封装了新版本的第三方SDK。
此用户转化率与应用程序的用户行为有关,可以通过成交率、点击率、搜索率、浏览率等指标表示。
在服务器端返回升级安装包之后,对于终端而言,便可接收到升级安装包,进而基于此升级安装包实现应用程序的正式升级。
通过如上所述的过程,在第三方SDK新旧版本测试过程中,基于不同加载方式进行新旧版本的第三方SDK的加载,使得测试安装包中可以仅封装其中一个版本的第三方SDK,从而无论新旧版本的第三方SDK是否名字相同,都不会存在类冲突的问题。
请参阅图4,在一示例性实施例中,步骤350可以包括以下步骤:
步骤351,获取终端用户所属测试用户群的类型,根据获取到的类型确定所述终端对应的加载方式。
其中,测试用户群,是指为了进行新旧版本的第三方SDK的A/B TEST而由服务器端随机生成的用户群。
举例来说,假设测试用户群的类型包括的第一测试用户群和第二测试用户群,具体地,第一测试用户群将面向新版本的第三方SDK进行测试,第二测试用户群将面向旧版本的第三方SDK进行测试。
假设测试安装包中封装的是旧版本的第三方SDK,则随着测试安装包的运行,终端中被部署的是旧版本的第三方SDK。
那么,对于第一测试用户群中的终端用户而言,由于是面向新版本的第三方SDK进行测试,该新版本的第三方SDK并未封装在测试安装包中,而是存储于服务器端,因此,其所持终端中需要动态加载新版本的第三方SDK。
而对于第二测试用户群中的终端用户而言,由于面向旧版本的第三方SDK进行测试,该旧版本的第三方SDK由于封装在测试安装包中而已被部署于终端中,因此,则其所持终端可通过本地加载旧版本的第三方SDK。
由上可知,如果终端用户所属测试用户群的类型为第一测试用户群,则终端对应的加载方式为动态加载,反之,如果终端用户所述测试用户群的类型为第二测试用户群,则终端对应的加载方式为本地加载。进一步地,如果所确定的加载方式为动态加载,则执行步骤353。
如果所确定的加载方式为本地加载,则执行步骤355。
步骤353,通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK,以在终端用户所持终端上执行第二版本的第三方SDK所提供的应用程序功能。
步骤355,通过启动的所述应用程序,本地加载封装于所述测试安装包中第一版本的第三方SDK,以在终端用户所持终端上执行第一版本的第三方SDK所提供的应用程序功能。
也就是说,虽然测试安装包中仅封装了其中一个版本的第三方SDK,但是通过终端对应的加载方式,不同版本的第三方SDK依然可以被加载至不同终端,不仅避免了类冲突的问题,而且减小了测试安装包的体积,有利于提升测试安装包的传输效率。
在上述实施例的作用下,基于测试用户群的类型实现了加载方式的确定,使得不同版本的第三方SDK被加载至不同终端中得以实现,进而使得并存进行第三方SDK的A/BTEST得以实现。
请参阅图5,在一示例性实施例中,步骤353可以包括以下步骤:
步骤3531,通过启动的所述应用程序,请求所述服务器端返回SDK组件,所述SDK组件中封装有第二版本的第三方SDK。
也就是说,第二版本的第三方SDK作为独立的SDK组件,预先存储于服务器端,仅在应用程序启动时才通过动态加载方式,由服务器端下载至终端,从而避免了第二版本的第三方SDK与第一版本的第三方SDK同时封装于同一个测试安装包中所产生的类冲突问题。
步骤3533,本地加载封装于所述SDK组件中第二版本的第三方SDK。
如前所述,随着测试安装包的运行,第一版本的第三方SDK将部署于终端中。
然而,通过SDK组件返回至终端,第二版本的第三方SDK将取代第一版本的第三方SDK而被部署于终端,那么,在动态加载方式中,本地加载至终端内存的实质是SDK组件中的第二版本的第三方SDK,而并非封装于测试安装包中的第一版本的第三方SDK。
在上述实施例的作用下,通过动态加载方式实现并存进行第三方SDK的A/B TEST时存在的类冲突问题,而且基于测试安装包仅封装了其中一个版本的第三方SDK,有效地减小了测试安装包的体积,提升了测试安装包的传输效率。
请参阅图6,在一示例性实施例中,如上所述的方法还可以包括以下步骤:
步骤410,当满足第三方SDK新旧版本测试的测试周期,所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率。
可以理解,随着新旧版本的第三方SDK被加载至不同终端,不同测试用户群中的终端用户便可借助对应终端所加载的不同版本的第三方SDK,而被提供有所区别的应用程序功能。
也即是,不同测试用户群中终端用户所持终端上执行了不同版本的第三方SDK所提供的应用程序功能。例如,第一测试用户群中终端用户所持终端上执行了新版本的第三方SDK所提供的应用程序功能,而第二测试用户群中终端用户所持终端上执行了旧版本的第三方SDK所提供的应用程序功能。
那么,对于终端而言,在应用程序功能执行过程中,势必发生相应地用户行为,例如,用户行为包括购买行为、点击行为、搜索行为、浏览行为等等。
如前所述,用户转化率与上述用户行为有关,可以通过成交率、点击率、搜索率、浏览率等指标表示。那么,对于服务器端而言,便可在测试周期满足时,通过上述用户行为,实时计算不同测试用户群针对第三方SDK不同版本的用户转化率。
其中,测试周期,是指第三方SDK新旧版本测试的时间,即并存进行第三方SDK的A/B TEST的时间,可以根据应用场景的实际需求灵活地设置,例如,测试周期为一个月,在此并未加以限定。
具体地,在一实施例中,如图7所示,步骤410可以包括以下步骤:
步骤411,获取不同测试用户群针对第三方SDK新旧版本的测试数据。
如前所述,在应用程序功能执行过程中,势必发生相应地用户行为。那么,在上述用户行为发生时,终端便通过行为日志的方式进行相应地记录,进而生成与用户行为有关的测试数据。
对于服务器端而言,在终端生成测试数据之后,便可接收到终端上报的该测试数据,并存储,以方便于后续读取。
步骤413,对获取到的测试数据进行显著性校验,得到对应于新版本的第一用户转化率和对应于旧版本的第二用户转化率。
显著性校验,目的在于验证哪个版本的第三方SDK更优,实质是基于测试数据计算用户转化率。
可选地,用户转化率为成交率、点击率、搜索率、浏览率中的任意一种或者几种的组合。
对应于新版本的第一用户转化率,由第一测试用户群针对新版本的第三方SDK的测试数据计算得到。对应于旧版本的第二用户转化率,由第二测试用户群针对旧版本的第三方SDK的测试数据计算得到。
步骤430,根据计算得到的用户转化率生成所述应用程序的升级安装包,并发送至所述终端。
具体而言,对应版本的用户转化率越大,即表示该版本的第三方SDK较优。为此,升级安装包中封装的是用户转化率大的版本的第三方SDK。
如图8所示,在一实施例中,步骤430可以包括以下步骤:
步骤431,如果所述第一用户转化率大于所述第二用户转化率,则将新版本的第三方SDK封装至所述升级安装包。
步骤433,如果所述第二用户转化率大于所述第一用户转化率,则将旧版本的第三方SDK封装至所述升级安装包。
在服务器生成应用程序的升级安装包,并发送至终端之后,对于终端而言,便可接收到该升级安装包,以基于该升级安装包实现应用程序的升级。
值得一提的是,如果升级安装包中封装的是新版本的第三方SDK,则应用程序的升级实质是新版本的第三方SDK取代旧版本的第三方SDK,即终端内存中加载的是新版本的第三方SDK。
反之,如果升级安装包中封装的是旧版本的第三方SDK,由于应用程序升级前,终端内存中加载的已经是旧版本的第三方SDK,则应用程序的升级仅是比对了第三方SDK的版本号,而并未发生任何实质的变化,即终端内存中加载的依然是旧版本的第三方SDK。
通过上述过程,实现了服务器端中升级安装包的生成过程,为终端中应用程序的升级奠定了基础。
下述为本发明装置实施例,可以用于执行本发明所涉及的应用程序升级方法。对于本发明装置实施例中未披露的细节,请参照本发明所涉及的应用程序升级方法的方法实施例。
请参阅图9,在一示例性实施例中,一种应用程序升级装置900包括但不限于:请求发起模块910、程序启动模块930、SDK加载模块950和程序升级模块970。
其中,请求发起模块910,用于终端向服务器端发起应用程序升级请求,以使所述服务器端响应于所述应用程序升级请求返回所述应用程序的测试安装包,所述测试安装包仅封装了其中一个版本的第三方SDK,所述测试安装包用于第三方SDK新旧版本测试。
程序启动模块930,用于运行所述测试安装包,以启动所述应用程序。
SDK加载模块950,用于确定所述终端对应的加载方式,按照所确定的加载方式通过启动的所述应用程序加载对应版本的第三方SDK,通过第三方SDK对应版本的加载进入第三方SDK新旧版本测试,以验证第三方SDK的新版本是否优于旧版本。
程序升级模块970,用于当满足第三方SDK新旧版本测试的测试周期,接收所述应用程序的升级安装包,通过所述升级安装包的运行实现所述应用程序的升级,所述升级安装包是所述服务器端根据用户转化率大的第三方SDK对应版本返回的。
需要说明的是,上述实施例所提供的应用程序升级装置在进行应用程序升级处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即应用程序升级装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。
另外,上述实施例所提供的应用程序升级装置与应用程序升级方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
请参阅图10,在一示例性实施例中,一种终端1000,包括至少一处理器1001、至少一存储器1002、以及至少一通信总线1003。
其中,存储器1002上存储有计算机可读指令,处理器1001通过通信总线1003读取存储器1002中存储的计算机可读指令。
该计算机可读指令被处理器1001执行时实现上述各实施例中的应用程序升级方法。
在一示例性实施例中,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例中的应用程序升级方法。
上述内容,仅为本发明的较佳示例性实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。
Claims (10)
1.一种应用程序升级方法,其特征在于,包括:
终端向服务器端发起应用程序升级请求,以使所述服务器端响应于所述应用程序升级请求返回所述应用程序的测试安装包,所述测试安装包仅封装了其中一个版本的第三方SDK,所述测试安装包用于第三方SDK新旧版本测试;
运行所述测试安装包,以启动所述应用程序;
基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK,通过第三方SDK对应版本的加载进入第三方SDK新旧版本测试,以验证第三方SDK的新版本是否优于旧版本;
当满足第三方SDK新旧版本测试的测试周期,接收所述应用程序的升级安装包,通过所述升级安装包的运行实现所述应用程序的升级,所述升级安装包是所述服务器端根据用户转化率大的第三方SDK对应版本返回的。
2.如权利要求1所述的方法,其特征在于,所述基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK,包括:
获取终端用户所属测试用户群的类型,根据获取到的类型确定所述终端对应的加载方式;
如果所确定的加载方式为动态加载,则通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK。
3.如权利要求2所述的方法,其特征在于,所述通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK,包括:
通过启动的所述应用程序,请求所述服务器端返回SDK组件,所述SDK组件中封装有第二版本的第三方SDK;
本地加载封装于所述SDK组件中第二版本的第三方SDK。
4.如权利要求2所述的方法,其特征在于,所述基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK,还包括:
如果所确定的加载方式为本地加载,则通过启动的所述应用程序,本地加载封装于所述测试安装包中第一版本的第三方SDK。
5.如权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
当满足第三方SDK新旧版本测试的测试周期,所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率;
根据计算得到的用户转化率生成所述应用程序的升级安装包,并发送至所述终端。
6.如权利要求5所述的方法,其特征在于,所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率,包括:
获取不同测试用户群针对第三方SDK新旧版本的测试数据;
对获取到的测试数据进行显著性校验,得到对应于新版本的第一用户转化率和对应于旧版本的第二用户转化率。
7.如权利要求6所述的方法,其特征在于,所述根据计算得到的用户转化率生成所述应用程序的升级安装包,包括:
如果所述第一用户转化率大于所述第二用户转化率,则将新版本的第三方SDK封装至所述升级安装包;或者,
如果所述第二用户转化率大于所述第一用户转化率,则将旧版本的第三方SDK封装至所述升级安装包。
8.一种应用程序升级装置,其特征在于,包括:
请求发起模块,用于终端向服务器端发起应用程序升级请求,以使所述服务器端响应于所述应用程序升级请求返回所述应用程序的测试安装包,所述测试安装包仅封装了其中一个版本的第三方SDK,所述测试安装包用于第三方SDK新旧版本测试;
程序启动模块,用于运行所述测试安装包,以启动所述应用程序;
SDK加载模块,用于基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK,通过第三方SDK对应版本的加载进入第三方SDK新旧版本测试,以验证第三方SDK的新版本是否优于旧版本;
程序升级模块,用于当满足第三方SDK新旧版本测试的测试周期,接收所述应用程序的升级安装包,通过所述升级安装包的运行实现所述应用程序的升级,所述升级安装包是所述服务器端根据用户转化率大的第三方SDK对应版本返回的。
9.一种终端,其特征在于,包括:
处理器;及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至7中任一项所述的应用程序升级方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的应用程序升级方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910185009.7A CN109976787B (zh) | 2019-03-12 | 2019-03-12 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
PCT/CN2019/118040 WO2020181814A1 (zh) | 2019-03-12 | 2019-11-13 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910185009.7A CN109976787B (zh) | 2019-03-12 | 2019-03-12 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109976787A true CN109976787A (zh) | 2019-07-05 |
CN109976787B CN109976787B (zh) | 2022-04-19 |
Family
ID=67078620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910185009.7A Active CN109976787B (zh) | 2019-03-12 | 2019-03-12 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109976787B (zh) |
WO (1) | WO2020181814A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020181814A1 (zh) * | 2019-03-12 | 2020-09-17 | 平安普惠企业管理有限公司 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
CN111857772A (zh) * | 2020-06-29 | 2020-10-30 | 湖南中联重科智能技术有限公司 | 终端边缘应用程序远程传输及动态加载方法及设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486520A (zh) * | 2020-12-07 | 2021-03-12 | 深圳市欢太科技有限公司 | 应用程序升级方法及其装置、移动终端和服务器 |
CN113890825B (zh) * | 2021-09-16 | 2023-08-01 | 深圳Tcl新技术有限公司 | 设备的交互升级测试方法、装置、存储介质及电子设备 |
US20230102816A1 (en) * | 2021-09-30 | 2023-03-30 | Vmware, Inc. | Automatic updating of application functionality |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262555A (zh) * | 2011-08-22 | 2011-11-30 | 迈普通信技术股份有限公司 | 加载java三方库的不同版本的方法和装置 |
US20140282471A1 (en) * | 2013-03-14 | 2014-09-18 | Bitvore Corp. | Dynamically Loaded Plugin Architecture |
CN104216741A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 基于APK动态加载的Android插件化实现方法、装置及交互方法 |
CN105740033A (zh) * | 2016-03-15 | 2016-07-06 | 广州彩瞳网络技术有限公司 | 一种终端设备、插件加载运行装置及插件加载运行方法 |
CN106648724A (zh) * | 2016-09-05 | 2017-05-10 | Tcl集团股份有限公司 | 应用程序的热修复方法及终端 |
CN107450936A (zh) * | 2016-05-30 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种移动应用的中间件升级方法及装置 |
CN107870787A (zh) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | 应用程序插件化加载方法及系统 |
CN108108181A (zh) * | 2017-12-14 | 2018-06-01 | 深圳市雷鸟信息科技有限公司 | 应用程序的功能更新方法、装置及计算机可读存储介质 |
CN108491236A (zh) * | 2018-03-23 | 2018-09-04 | 努比亚技术有限公司 | 一种插件加载方法、装置及计算机可读存储介质 |
CN108628623A (zh) * | 2018-04-04 | 2018-10-09 | 苏州天魂网络科技股份有限公司 | 一种基于马尔可夫链蒙特卡洛分包技术算法的移动平台整包热更新的解决方法 |
CN109002320A (zh) * | 2018-08-20 | 2018-12-14 | 苏州思必驰信息科技有限公司 | 用于软件开发包的更新方法、系统、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677877B (zh) * | 2012-09-12 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 一种本地广告软件开发包升级的方法及装置 |
CN105763626B (zh) * | 2016-04-11 | 2019-01-22 | 苏州云清伟业网络科技有限公司 | 适用于应用客户端支付的sdk初始化方法 |
US10782965B2 (en) * | 2017-04-02 | 2020-09-22 | SafeDK Mobile Ltd. | Monitoring of media displayed by third-party components |
CN108664397A (zh) * | 2018-05-03 | 2018-10-16 | 北京奇虎科技有限公司 | 一种用于应用测试的用户分流方法和装置 |
CN108874660A (zh) * | 2018-05-03 | 2018-11-23 | 北京奇虎科技有限公司 | 一种应用测试方法和装置 |
CN109976787B (zh) * | 2019-03-12 | 2022-04-19 | 平安普惠企业管理有限公司 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
-
2019
- 2019-03-12 CN CN201910185009.7A patent/CN109976787B/zh active Active
- 2019-11-13 WO PCT/CN2019/118040 patent/WO2020181814A1/zh active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262555A (zh) * | 2011-08-22 | 2011-11-30 | 迈普通信技术股份有限公司 | 加载java三方库的不同版本的方法和装置 |
US20140282471A1 (en) * | 2013-03-14 | 2014-09-18 | Bitvore Corp. | Dynamically Loaded Plugin Architecture |
CN104216741A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 基于APK动态加载的Android插件化实现方法、装置及交互方法 |
CN105740033A (zh) * | 2016-03-15 | 2016-07-06 | 广州彩瞳网络技术有限公司 | 一种终端设备、插件加载运行装置及插件加载运行方法 |
CN107450936A (zh) * | 2016-05-30 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种移动应用的中间件升级方法及装置 |
CN106648724A (zh) * | 2016-09-05 | 2017-05-10 | Tcl集团股份有限公司 | 应用程序的热修复方法及终端 |
CN107870787A (zh) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | 应用程序插件化加载方法及系统 |
CN108108181A (zh) * | 2017-12-14 | 2018-06-01 | 深圳市雷鸟信息科技有限公司 | 应用程序的功能更新方法、装置及计算机可读存储介质 |
CN108491236A (zh) * | 2018-03-23 | 2018-09-04 | 努比亚技术有限公司 | 一种插件加载方法、装置及计算机可读存储介质 |
CN108628623A (zh) * | 2018-04-04 | 2018-10-09 | 苏州天魂网络科技股份有限公司 | 一种基于马尔可夫链蒙特卡洛分包技术算法的移动平台整包热更新的解决方法 |
CN109002320A (zh) * | 2018-08-20 | 2018-12-14 | 苏州思必驰信息科技有限公司 | 用于软件开发包的更新方法、系统、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
SILLY_WY: "android 动态加载之免安装升级(插件式开发)", 《HTTPS://BLOG.CSDN.NET/U013895206/ARTICLE/DETAILS/71487819》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020181814A1 (zh) * | 2019-03-12 | 2020-09-17 | 平安普惠企业管理有限公司 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
CN111857772A (zh) * | 2020-06-29 | 2020-10-30 | 湖南中联重科智能技术有限公司 | 终端边缘应用程序远程传输及动态加载方法及设备 |
CN111857772B (zh) * | 2020-06-29 | 2023-06-09 | 湖南中联重科智能技术有限公司 | 终端边缘应用程序远程传输及动态加载方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109976787B (zh) | 2022-04-19 |
WO2020181814A1 (zh) | 2020-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976787A (zh) | 应用程序升级方法、装置、终端及计算机可读存储介质 | |
CN110163004B (zh) | 一种区块链生成的方法、相关设备及系统 | |
CN105528229B (zh) | 提高移动终端首次开机速度的方法及装置 | |
CN108632253A (zh) | 基于移动终端的客户数据安全访问方法及装置 | |
CN109408132A (zh) | 一种配置文件处理方法及服务器、用户终端、存储介质 | |
CN112767135B (zh) | 规则引擎的配置方法及装置、存储介质、计算机设备 | |
CN110334542B (zh) | 一种网络证据保全、网络证据存证校验方法及装置 | |
CN106406940A (zh) | 系统升级方法、装置及终端 | |
CN110099414A (zh) | 网络资源传输方法、装置、计算机设备和存储介质 | |
CN110347645B (zh) | 一种电子文件存证方法及装置 | |
CN106454541A (zh) | 呼叫方法、装置及系统 | |
CN104978378B (zh) | 一种网页访问方法和装置 | |
CN104636249A (zh) | 一种应用程序调试信息生成系统和方法 | |
CN109194706A (zh) | 网络资源拨测方法及终端 | |
CN108616657A (zh) | 移动终端中实现软电话拨打的方法及装置 | |
CN104182331A (zh) | 浏览器性能测试方法、系统及终端 | |
CN110147368A (zh) | 用于服务器的数据获取方法和装置 | |
CN107463524A (zh) | 一种访问数据的方法及相关设备 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
US11738268B2 (en) | Game development method and apparatus, game running method and apparatus, and electronic device | |
CN113391860A (zh) | 服务请求处理方法、装置、电子设备及计算机存储介质 | |
CN109558375A (zh) | 一种优化的文件存储方法、存储介质、设备及系统 | |
CN111064675A (zh) | 访问流量控制方法、装置、网络设备及存储介质 | |
CN110399161A (zh) | 一种映射关系的生成方法、调用方法及装置 | |
CN114422637B (zh) | 媒体请求处理方法和跨平台引擎系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 201, room 518000, building A, No. 1, front Bay Road, Qianhai Shenzhen Guangdong Shenzhen Hong Kong cooperation zone (Qianhai business secretary) Applicant after: Pingan Pu Hui Enterprise Management Co., Ltd. Address before: 518000 Guangdong city of Shenzhen province Qianhai Shenzhen Hong Kong cooperation zone before Bay Road No. 1 building 201 room A Applicant before: Pingan Pu Hui Enterprise Management Co., Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |