WO2020181814A1 - 应用程序升级方法、装置、终端及计算机可读存储介质 - Google Patents

应用程序升级方法、装置、终端及计算机可读存储介质 Download PDF

Info

Publication number
WO2020181814A1
WO2020181814A1 PCT/CN2019/118040 CN2019118040W WO2020181814A1 WO 2020181814 A1 WO2020181814 A1 WO 2020181814A1 CN 2019118040 W CN2019118040 W CN 2019118040W WO 2020181814 A1 WO2020181814 A1 WO 2020181814A1
Authority
WO
WIPO (PCT)
Prior art keywords
version
party sdk
installation package
test
sdk
Prior art date
Application number
PCT/CN2019/118040
Other languages
English (en)
French (fr)
Inventor
彭东远
Original Assignee
平安普惠企业管理有限公司
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 平安普惠企业管理有限公司 filed Critical 平安普惠企业管理有限公司
Publication of WO2020181814A1 publication Critical patent/WO2020181814A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • This application relates to the technical field of version testing, and in particular to an application program upgrade method, device, terminal, and computer-readable storage medium.
  • the application in addition to its own integration of general application functions, it also integrates some additional application functions by loading a third-party SDK (Software Development Kit, software tool development kit), for example, additional application functions It can be face recognition, etc., and then as the application installation package (APK, Android Packet) runs on the terminal, the third-party SDK is deployed on the terminal, so that the third-party SDK can be loaded when the application starts and runs on the terminal To provide users with these additional application functions.
  • a third-party SDK Software Development Kit, software tool development kit
  • API application installation package
  • Android Packet Android Packet
  • the third-party SDK will upgrade the old and new versions, and in order to verify whether the new version is better than the old version, before the official upgrade, the old and new third-party SDKs often need to coexist for A/B TEST (New and old version testing).
  • the inventor realizes that the prior art still has the following problems: if the new and old versions of the third-party SDK are only functionally modified and have the same name, there will inevitably be a problem of class conflicts when they are packaged into the installation package at the same time If it is packaged in the installation package with a different name, the installation package will be too large, which is not conducive to improving the transmission efficiency of the installation package.
  • embodiments of the present application provide an application upgrade method, device, terminal, and computer-readable storage medium.
  • an application program upgrade method includes: a terminal initiates an application program upgrade request to a server side, so that the server side returns a test installation package of the application program in response to the application program upgrade request, and the test
  • the installation package only encapsulates one version of the third-party SDK, and the test installation package is used to test the old and new versions of the third-party SDK; run the test installation package to start the application; based on the started application, follow
  • the loading method corresponding to the terminal loads the third-party SDK of the corresponding version, and enters the new and old version test of the third-party SDK by loading the corresponding version of the third-party SDK to verify whether the new version of the third-party SDK is better than the old version;
  • the upgrade installation package of the application program is received, and the application program upgrade is realized by running the upgrade installation package.
  • the upgrade installation package is the second largest conversion rate of the server based on the user conversion rate.
  • the corresponding version of the three-party SDK is returned
  • an application program upgrade device includes: a request initiation module configured to: a terminal initiates an application program upgrade request to a server side, so that the server side returns the application program in response to the application program upgrade request
  • the test installation package only encapsulates one version of the third-party SDK, and the test installation package is configured to: test the old and new versions of the third-party SDK
  • the program startup module is configured to: run the test installation Package to start the application
  • the SDK loading module is configured to load the corresponding version of the third-party SDK according to the loading method corresponding to the terminal based on the started application, and enter through the loading of the corresponding version of the third-party SDK
  • the new and old version of the third-party SDK is tested to verify whether the new version of the third-party SDK is better than the old version
  • the program upgrade module is configured to receive the upgrade installation package of the application when the test cycle of the new and old version of the third-party SDK is met ,
  • the application program is upgraded by running the upgrade installation package,
  • a terminal in a third aspect, includes a processor and a memory, and computer-readable instructions are stored on the memory, and the computer-readable instructions implement the above-mentioned application program upgrade method when executed by the processor.
  • a computer non-volatile readable storage medium has a computer program stored thereon, and when the computer program is executed by a processor, the application program upgrade method described above is implemented.
  • the terminal initiates an application upgrade request to the server, so that the server responds to the application upgrade request and returns a test installation package of the application, and then starts the application by running the test installation package to follow the determined
  • the loading method corresponding to the terminal loads the third-party SDK of the corresponding version.
  • the application is upgraded by running the upgrade installation package returned by the server, that is, in the third-party SDK
  • the new and old versions of the third-party SDK are loaded based on different loading methods, and the new and old versions of the third-party SDK are loaded into the new and old version of the third-party SDK to verify whether the new version of the third-party SDK is better than the old version.
  • This allows only one version of the third-party SDK to be encapsulated in the test installation package, so that regardless of whether the name of the new and old version of the third-party SDK is the same, there will be no problem of class conflict.
  • Fig. 1 is a schematic diagram of the implementation environment involved in this application.
  • Fig. 2 is a block diagram showing a hardware structure of a terminal according to an exemplary embodiment.
  • Fig. 3 is a flow chart showing a method for upgrading an application program according to an exemplary embodiment.
  • FIG. 4 is a flowchart of one embodiment of step 350 in the embodiment corresponding to FIG. 3.
  • FIG. 5 is a flowchart of one embodiment of step 353 in the embodiment corresponding to FIG. 4.
  • Fig. 6 is a flow chart showing another method for upgrading an application according to an exemplary embodiment.
  • FIG. 7 is a flowchart of one embodiment of step 410 in the embodiment corresponding to FIG. 6.
  • FIG. 8 is a flowchart of an embodiment of step 430 in the embodiment corresponding to FIG. 6.
  • Fig. 9 is a block diagram showing an application program upgrading apparatus according to an exemplary embodiment.
  • Fig. 10 is a block diagram showing a terminal according to an exemplary embodiment.
  • Figure 1 is a schematic diagram of an implementation environment involved in an application program upgrade method.
  • the implementation environment includes a terminal 110 and a server 130.
  • the terminal 110 can be used to run application programs, and may be a desktop computer, a notebook computer, a tablet computer, a smart phone, a personal digital assistant, a palmtop computer, etc., which is not limited herein.
  • the terminal 110 and the server 130 establish a wireless or wired network connection in advance, and realize data transmission between the terminal 110 and the server 130 through this network connection.
  • the data to be transmitted includes application upgrade requests, test installation packages, upgrade installation packages, SDK components, test data, and so on.
  • the server 130 may be one server, or a server cluster composed of multiple servers, or a cloud computing center composed of multiple servers.
  • This server refers to a computer device that provides users with background services.
  • background services include services provided by installation packages.
  • the terminal 110 will initiate an application upgrade request to the server 130, so that the server 130 can return an upgrade installation package of the application, so that the terminal 110 can upgrade the application by running the upgrade installation package.
  • FIG. 2 is a block diagram showing a hardware structure of a terminal according to an exemplary embodiment. This type of terminal is suitable for the terminal 110 in the implementation environment shown in FIG. 1.
  • this type of terminal is only an example adapted to this application, and cannot be considered as providing any restriction on the scope of use of this application. Nor can this type of terminal be interpreted as being dependent on or having one or more components in the exemplary terminal 100 shown in FIG. 2.
  • the terminal 100 includes a memory 101, a storage controller 103, one or more (only one is shown in FIG. 2) processors 105, a peripheral interface 107, a radio frequency module 109, a positioning module 111, and a camera module 113. , Audio module 115, touch screen 117 and key module 119. These components communicate with each other through one or more communication buses/signal lines 121.
  • the memory 101 can be used to store computer programs and modules, such as computer-readable instructions and modules corresponding to the application program upgrading method and device in the exemplary embodiment of the present application.
  • the processor 105 runs the computer-readable instructions stored in the memory 101 Instructions to perform various functions and data processing, that is, complete the application program upgrade method.
  • the memory 101 may be a random access memory, such as a high-speed random access memory, a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other solid-state memories.
  • the storage method can be short-term storage or permanent storage.
  • the memory 101 may store third-party SDKs of different versions.
  • the peripheral interface 107 may include at least one wired or wireless network interface, at least one serial-parallel conversion interface, at least one input/output interface, and at least one USB interface, etc., for coupling various external input/output devices to the memory 101 and the processor. 105 to achieve communication with various external input/output devices. For example, communicating with the server 130 in the implementation environment shown in FIG. 1.
  • the radio frequency module 109 is used to send and receive electromagnetic waves, realize mutual conversion between electromagnetic waves and electric signals, and communicate with other devices through a communication network.
  • the communication network includes a cellular telephone network, a wireless local area network, or a metropolitan area network.
  • the aforementioned communication network may use various communication standards, protocols, and technologies.
  • the positioning module 111 is used to obtain the current geographic location of the terminal 100.
  • Examples of the positioning module 111 include, but are not limited to, global satellite positioning system (GPS), positioning technology based on wireless local area networks or mobile communication networks.
  • GPS global satellite positioning system
  • the camera module 113 is attached to a camera and is used to take pictures or videos.
  • the captured pictures or videos can be stored in the memory 101, and can also be sent to the host computer through the radio frequency module 109.
  • the audio module 115 provides an audio interface to the user, which may include one or more microphone interfaces, one or more speaker interfaces, and one or more earphone interfaces. Interact audio data with other devices through the audio interface.
  • the audio data can be stored in the memory 101, and can also be sent through the radio frequency module 109.
  • the touch screen 117 provides an input and output interface between the terminal 100 and the user. Specifically, the user may perform an input operation through the touch screen 117, such as a gesture operation such as tap, touch, and slide, so that the terminal 100 can respond to the input operation.
  • the terminal 100 displays output content formed by any form or combination of text, picture, or video to the user through the touch screen 117.
  • the key module 119 includes at least one key to provide an interface for the user to input to the terminal 100, and the user can press different keys to make the terminal 100 perform different functions.
  • the sound adjustment button allows the user to adjust the volume of the sound played by the terminal 100.
  • FIG. 2 is only for illustration, and the terminal 100 may also include more or fewer components than those shown in FIG. 2, or have different components from those shown in FIG. 2.
  • the components shown in FIG. 2 can be implemented by hardware, software, or a combination thereof.
  • an application program upgrade method is applicable to a terminal in the implementation environment shown in FIG. 1, and the structure of the terminal may be as shown in FIG.
  • This application program upgrade method can be executed by the terminal and can include the following steps:
  • Step 310 The terminal initiates an application program upgrade request to the server.
  • the application program upgrade request is used to indicate the application program requested to be upgraded on the server side, so that the server side responds to the application program upgrade request and returns a test installation package of the application program requested to be upgraded by the terminal, and the test installation package is used for New and old versions of the third-party SDK are tested.
  • the corresponding request initiation entry will be set for the application upgrade. Then, when the user desires to upgrade the application, the corresponding operation can be triggered at the corresponding request initiation entry, and then the application upgrade request will be initiated to the server. .
  • a virtual button is displayed on the touch screen configured in the terminal.
  • the virtual button is regarded as a request to initiate an entry
  • a click operation is regarded as a related operation triggered by the user.
  • This input device can be a mouse, keyboard, touch screen, etc.
  • the related operations triggered by the user can be mechanical operations such as clicking, double-clicking, dragging, etc., or gesture operations such as sliding and clicking. This embodiment does not This constitutes no specific limitation.
  • the server can receive the application upgrade request, and by responding to the application upgrade request, the test installation package of the application requested to be upgraded by the terminal is returned To the terminal.
  • test installation package only encapsulates one version of the third-party SDK.
  • either the new version of the third-party SDK is packaged in the test installation package, or the old version of the third-party SDK is packaged in the test installation package.
  • Step 330 Run the test installation package to start the application.
  • the terminal can receive the test installation package, and as the test installation package runs on the terminal, the application program is started accordingly.
  • Step 350 Load a third-party SDK of a corresponding version according to the loading mode corresponding to the terminal based on the started application.
  • a terminal can only use the new version to upgrade the application program after fully verifying that the new version is better than the old version, otherwise it still depends on the old version to achieve the application upgrade.
  • This loading method refers to the way the SDK is loaded into the terminal memory, including dynamic loading and local loading.
  • local loading means that as the test installation package of the application runs on the terminal, one of the versions of the third-party SDK encapsulated in the test installation package is deployed on the terminal, and then when the application starts, the version of the third-party SDK is deployed on the terminal.
  • the third-party SDK is loaded into the terminal memory.
  • Dynamic loading means that as the test installation package of the application runs on the terminal, one version of the third-party SDK packaged in the test installation package is deployed on the terminal, and when the application starts running, the other version of the third-party SDK The SDK was downloaded from the server and deployed on the terminal instead of one of the third-party SDKs, and then loaded into the terminal memory.
  • the local loading is to load the third-party SDK that has been deployed in the terminal into the terminal memory
  • the dynamic loading is to load the third-party SDK in the server side into the terminal memory
  • Step 370 When the test cycle of the new and old version of the third-party SDK is met, receive the upgrade installation package of the application program, and realize the upgrade of the application program by running the upgrade installation package. Wherein, the upgrade installation package is returned by the server according to the corresponding version of the third-party SDK with a large user conversion rate.
  • the server will calculate the user conversion rate in real time for the old and new versions of the third-party SDK, and then return the upgrade installation package to the terminal according to the corresponding version of the third-party SDK with high user conversion rate. For example, if the user conversion rate of the new version is high, the new version of the third-party SDK is encapsulated in the returned upgrade installation package.
  • This user conversion rate is related to the user behavior of the application, and can be expressed by indicators such as transaction rate, click rate, search rate, and browse rate.
  • the terminal can receive the upgrade installation package, and then implement the formal upgrade of the application based on the upgrade installation package.
  • the new and old versions of the third-party SDK are loaded based on different loading methods, so that only one version of the third-party SDK can be encapsulated in the test installation package, regardless of the new or old version. Whether the version of the third-party SDK has the same name, there will be no problem of class conflict.
  • step 350 may include the following steps:
  • Step 351 Obtain the type of the test user group to which the terminal user belongs, and determine the loading mode corresponding to the terminal according to the obtained type.
  • test user group refers to the user group randomly generated by the server for the A/B test of the old and new versions of the third-party SDK.
  • test user group includes the first test user group and the second test user group.
  • first test user group will be tested for the new version of the third-party SDK
  • second test user group will be for The old version of the third-party SDK is tested.
  • the old version of the third-party SDK is encapsulated in the test installation package, as the test installation package runs, the old version of the third-party SDK is deployed in the terminal.
  • the new version of the third-party SDK is not packaged in the test installation package, but is stored on the server. Therefore, a new version of the third-party SDK needs to be dynamically loaded in the terminal it holds.
  • the old version of the third-party SDK since the old version of the third-party SDK is tested, the old version of the third-party SDK has been deployed in the terminal because it is packaged in the test installation package.
  • the supported terminal can load the old third-party SDK locally.
  • step 353 is executed.
  • step 355 is executed.
  • Step 353 Dynamically load the third-party SDK of the second version stored in the server through the launched application, so as to execute the application functions provided by the third-party SDK of the second version on the terminal held by the end user.
  • Step 355 Through the started application, locally load the third-party SDK of the first version packaged in the test installation package, so as to execute the application functions provided by the first version of the third-party SDK on the terminal held by the end user .
  • the determination of the loading method is realized based on the type of the test user group, so that different versions of third-party SDKs can be loaded into different terminals, so that the coexistence of the third-party SDK's A/B test can be realized. achieve.
  • step 353 may include the following steps:
  • Step 3531 Request the server to return an SDK component through the started application program, and the SDK component encapsulates the third-party SDK of the second version.
  • the third-party SDK of the second version is pre-stored on the server side, and is downloaded from the server side to the terminal through dynamic loading only when the application is started, thereby avoiding the second version of the third-party SDK.
  • the third-party SDK and the first version of the third-party SDK are packaged in the same test installation package at the same time.
  • step 3533 the third-party SDK of the second version packaged in the SDK component is loaded locally.
  • the first version of the third-party SDK will be deployed in the terminal.
  • the third-party SDK of the second version will replace the third-party SDK of the first version and be deployed on the terminal.
  • the essence of local loading into the terminal memory is the SDK component
  • the second version of the third-party SDK is not the first version of the third-party SDK packaged in the test installation package.
  • the coexistence of the class conflict problem when performing the A/BTEST of the third-party SDK is realized through dynamic loading, and only one version of the third-party SDK is encapsulated based on the test installation package, which effectively reduces The volume of the test installation package improves the transmission efficiency of the test installation package.
  • the method described above may further include the following steps:
  • Step 410 When the test cycle of the new and old version of the third-party SDK is met, the server side calculates the user conversion rate of different test user groups for the old and new versions of the third-party SDK.
  • terminal users in different test user groups have implemented different versions of the application functions provided by the third-party SDK.
  • terminal users in the first test user group have implemented the application functions provided by the new version of the third-party SDK
  • terminal users in the second test user group have implemented the old version of the third-party SDK.
  • Application features. are bound to occur during the execution of application functions.
  • user behaviors include purchase behavior, click behavior, search behavior, browsing behavior, and so on.
  • the user conversion rate is related to the above-mentioned user behavior and can be expressed by indicators such as transaction rate, click rate, search rate, and browse rate. Then, for the server side, when the test cycle is met, the user conversion rate of different test user groups for different versions of the third-party SDK can be calculated in real time through the above user behavior.
  • the test cycle refers to the time for testing the old and new versions of the third-party SDK, that is, the time for co-existing the A/B test of the third-party SDK. It can be flexibly set according to the actual needs of the application scenario. For example, the test cycle is one month. This is not limited.
  • step 410 may include the following steps:
  • Step 411 Obtain test data of different test user groups for the old and new versions of the third-party SDK.
  • the terminal records accordingly through a behavior log, and then generates test data related to the user behavior.
  • the test data reported by the terminal can be received and stored to facilitate subsequent reading.
  • Step 413 Perform a significance check on the acquired test data to obtain a first user conversion rate corresponding to the new version and a second user conversion rate corresponding to the old version.
  • Significance verification is to verify which version of the third-party SDK is better. The essence is to calculate the user conversion rate based on test data.
  • the user conversion rate is any one or a combination of several of the transaction rate, the click rate, the search rate, and the browse rate.
  • the conversion rate of the first user corresponding to the new version is calculated from the test data of the first test user group for the new version of the third-party SDK.
  • the second user conversion rate corresponding to the old version is calculated from the test data of the second test user group for the old version of the third-party SDK.
  • Step 430 Generate an upgrade installation package of the application program according to the calculated user conversion rate, and send it to the terminal. Specifically, the higher the user conversion rate of the corresponding version, the better the third-party SDK of that version. For this reason, the third-party SDK of the version with high user conversion rate is encapsulated in the upgrade installation package.
  • step 430 may include the following steps:
  • Step 431 If the conversion rate of the first user is greater than the conversion rate of the second user, package the new version of the third-party SDK into the upgrade installation package.
  • Step 433 If the conversion rate of the second user is greater than the conversion rate of the first user, package the third-party SDK of the old version into the upgrade installation package.
  • the terminal can receive the upgrade installation package to implement the application upgrade based on the upgrade installation package.
  • the essence of the application upgrade is that the new version of the third-party SDK replaces the old version of the third-party SDK, that is, the new version is loaded in the terminal memory. Version of the third-party SDK.
  • the upgrade installation package encapsulates the old version of the third-party SDK, because the old version of the third-party SDK is already loaded in the terminal memory before the application is upgraded, the application upgrade is only compared to the third-party SDK There is no substantial change in the version number of, that is, the old third-party SDK is still loaded in the terminal memory.
  • the generation process of the upgrade installation package on the server side is realized, which lays the foundation for the upgrade of the application program in the terminal.
  • an application program upgrade apparatus 900 includes but is not limited to: a request initiation module 910, a program startup module 930, an SDK loading module 950, and a program upgrade module 970.
  • the request initiation module 910 is configured to: the terminal initiates an application program upgrade request to the server side, so that the server side returns a test installation package of the application program in response to the application program upgrade request, and the test installation package Only one version of the third-party SDK is encapsulated, and the test installation package is configured to test the old and new versions of the third-party SDK.
  • the program starting module 930 is configured to run the test installation package to start the application program.
  • the SDK loading module 950 is configured to: determine the loading mode corresponding to the terminal, load the corresponding version of the third-party SDK through the launched application program according to the determined loading mode, and enter the third-party SDK by loading the corresponding version of the third-party SDK Test the old and new versions of the SDK to verify whether the new version of the third-party SDK is better than the old version.
  • the program upgrade module 970 is configured to: when the test cycle of the new and old version of the third-party SDK is met, receive the upgrade installation package of the application program, and realize the upgrade of the application program through the operation of the upgrade installation package.
  • the installation package is returned by the server according to the corresponding version of the third-party SDK with a large user conversion rate.
  • the SDK loading module includes: a mode determining unit configured to: obtain the type of the test user group to which the terminal user belongs, and determine the loading mode corresponding to the terminal according to the obtained type; dynamic loading The unit is configured to: if the determined loading mode is dynamic loading, dynamically load the third-party SDK of the second version stored in the server through the launched application.
  • the dynamic loading unit includes: a component request subunit configured to request the server to return an SDK component through the started application program, and the SDK component encapsulates the first The third-party SDK of the second version; the local loading subunit is configured to locally load the third-party SDK of the second version encapsulated in the SDK component.
  • the SDK loading module further includes: a local loading unit configured to: if the determined loading mode is local loading, the local loading is encapsulated in the launched application program. Test the first version of the third-party SDK in the installation package.
  • the device further includes: a conversion rate calculation module configured to: when the test cycle of the new and old version of the third-party SDK is met, the server-side calculates different test user groups for the new and old versions of the third-party SDK The user conversion rate; the installation package generation module is configured to generate an upgrade installation package of the application program according to the calculated user conversion rate, and send it to the terminal.
  • a conversion rate calculation module configured to: when the test cycle of the new and old version of the third-party SDK is met, the server-side calculates different test user groups for the new and old versions of the third-party SDK The user conversion rate
  • the installation package generation module is configured to generate an upgrade installation package of the application program according to the calculated user conversion rate, and send it to the terminal.
  • the conversion rate calculation module includes: a data acquisition unit configured to: acquire test data of different test user groups for the new and old versions of the third-party SDK; the data verification unit is configured to: The acquired test data is checked for significance, and the first user conversion rate corresponding to the new version and the second user conversion rate corresponding to the old version are obtained.
  • the installation package generation module includes: a first generation unit configured to: if the conversion rate of the first user is greater than the conversion rate of the second user, the third-party The SDK is packaged in the upgrade installation package; or, the second generation unit is configured to: if the second user conversion rate is greater than the first user conversion rate, package an old third-party SDK into the upgrade Installation package.
  • a terminal 1000 includes at least one processor 1001, at least one memory 1002, and at least one communication bus 1003.
  • the memory 1002 stores computer-readable instructions, and the processor 1001 reads the computer-readable instructions stored in the memory 1002 through the communication bus 1003.
  • a computer non-volatile readable storage medium has a computer program stored thereon, and when the computer program is executed by a processor, the application program upgrade method in the foregoing embodiments is implemented.

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

一种应用程序升级方法、装置、终端及计算机可读存储介质,适用于版本测试技术领域,所述应用程序升级方法包括:终端向服务器端发起应用程序升级请求,以使服务器端响应于应用程序升级请求返回应用程序的测试安装包(310),所述测试安装包用于第三方SDK新旧版本测试;运行测试安装包,以启动应用程序(330);基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK(350);当满足第三方SDK新旧版本测试的测试周期,接收应用程序的升级安装包,通过升级安装包的运行实现应用程序的升级(370),升级安装包是服务器端根据用户转化率大的第三方SDK对应版本返回的。采用所述方法解决了现有技术中应用程序升级中存在的类冲突问题。

Description

应用程序升级方法、装置、终端及计算机可读存储介质 技术领域
本申请要求2019年3月12日递交、发明名称为“应用程序升级方法、装置、终端及计算机可读存储介质”的中国专利申请CN201910185009.7的优先权,在此通过引用将其全部内容合并于此。
本申请涉及版本测试技术领域,尤其涉及一种应用程序升级方法、装置、终端及计算机可读存储介质。
背景技术
随着计算机技术的发展,终端上可安装的应用程序越来越丰富,并且每一种应用程序所能提供的应用程序功能也逐渐增多,以更好地提供终端用户娱乐体验。
目前,应用程序中,除了自身集成通用的应用程序功能之外,还会通过加载第三方SDK(Software Development Kit,软件工具开发包)来集成一些附加的应用程序功能,例如,附加的应用程序功能可以是人脸识别等等,进而随着应用程序的安装包(APK,Android Packet)在终端运行,而将第三方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是否名字相同,都不会存在类冲突的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
发明的有益效果
对附图的简要说明
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。
图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/B TEST得以实现。
请参阅图5,在一示例性实施例中,步骤353可以包括以下步骤:
步骤3531,通过启动的所述应用程序,请求所述服务器端返回SDK组件,所述SDK组件中封装有第二版本的第三方SDK。
也就是说,第二版本的第三方SDK作为独立的SDK组件,预先存储于服务器端,仅在应用程序启动时才通过动态加载方式,由服务器端下载至终端,从而避免了第二版本的第三方SDK与第一版本的第三方SDK同时封装于同一个测试安装包中所产生的类冲突问题。
步骤3533,本地加载封装于所述SDK组件中第二版本的第三方SDK。
如前所述,随着测试安装包的运行,第一版本的第三方SDK将部署于终端中。然而,通过SDK组件返回至终端,第二版本的第三方SDK将取代第一版本的第三方SDK而被部署于终端,那么,在动态加载方式中,本地加载至终端内存的实质是SDK组件中的第二版本的第三方SDK,而并非封装于测试安装包中的第一版本的第三方SDK。
在上述实施例的作用下,通过动态加载方式实现并存进行第三方SDK的A/BTEST时存在的类冲突问题,而且基于测试安装包仅封装了其中一个版本的第三方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对应版本返回的。
需要说明的是,上述实施例所提供的应用程序升级装置在进行应用程序升级处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即应用程序升级装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。
另外,上述实施例所提供的应用程序升级装置与应用程序升级方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
在一示例性实施例中,所述SDK加载模块,包括:方式确定单元,被配置为:获取终端用户所属测试用户群的类型,根据获取到的类型确定所述终端对应的加载方式;动态加载单元,被配置为:如果所确定的加载方式为动态加载,则通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK。
在一示例性实施例中,所述动态加载单元,包括:组件请求子单元,被配置为:通过启动的所述应用程序,请求所述服务器端返回SDK组件,所述SDK组件中封装有第二版本的第三方SDK;本地加载子单元,被配置为:本地加载封装于所述SDK组件中第二版本的第三方SDK。
在一示例性实施例中,所述SDK加载模块,还包括:本地加载单元,被配置为:如果所确定的加载方式为本地加载,则通过启动的所述应用程序,本地加载封装于所述测试安装包中第一版本的第三方SDK。
在一示例性实施例中,所述装置还包括:转化率计算模块,被配置为:当满足第三方SDK新旧版本测试的测试周期,所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率;安装包生成模块,被配置为:根据计算得到的用户转化率生成所述应用程序的升级安装包,并发送至所述终端。
在一示例性实施例中,所述转化率计算模块,包括:数据获取单元,被配置为:获取不同测试用户群针对第三方SDK新旧版本的测试数据;数据校验单元,被配置为:对获取到的测试数据进行显著性校验,得到对应于新版本的第一用户转化率和对应于旧版本的第二用户转化率。
在一示例性实施例中,所述安装包生成模块,包括:第一生成单元,被配置为:如果所述第一用户转化率大于所述第二用户转化率,则将新版本的第三方SDK 封装至所述升级安装包;或者,第二生成单元,被配置为:如果所述第二用户转化率大于所述第一用户转化率,则将旧版本的第三方SDK封装至所述升级安装包。
请参阅图10,在一示例性实施例中,一种终端1000,包括至少一处理器1001、至少一存储器1002、以及至少一通信总线1003。
其中,存储器1002上存储有计算机可读指令,处理器1001通过通信总线1003读取存储器1002中存储的计算机可读指令。
该计算机可读指令被处理器1001执行时实现上述各实施例中的应用程序升级方法。
在一示例性实施例中,一种计算机非易失性可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例中的应用程序升级方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。

Claims (28)

  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. 如权利要求8所述的装置,其中,所述SDK加载模块,包括:方式确定单元,被配置为:获取终端用户所属测试用户群的类型,根据获取到的类型确定所述终端对应的加载方式;动态加载单元,被配置为:如果所确定的加载方式为动态加载,则通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK。
  10. 如权利要求9所述的装置,其中,所述动态加载单元,包括:
    组件请求子单元,被配置为:通过启动的所述应用程序,请求所述服务器端返回SDK组件,所述SDK组件中封装有第二版本的第三方SDK;
    本地加载子单元,被配置为:本地加载封装于所述SDK组件中第二版本的第三方SDK。
  11. 如权利要求9所述的装置,其中,所述SDK加载模块,还包括:
    本地加载单元,被配置为:如果所确定的加载方式为本地加载,则通过启动的所述应用程序,本地加载封装于所述测试安装包中第一版本的第三方SDK。
  12. 如权利要求8至11任一项所述的装置,其中,所述装置还包括:
    转化率计算模块,被配置为:当满足第三方SDK新旧版本测试的测试周期,所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率;
    安装包生成模块,被配置为:根据计算得到的用户转化率生成所述应用程序的升级安装包,并发送至所述终端。
  13. 如权利要求12所述的装置,其中,所述转化率计算模块,包括:
    数据获取单元,被配置为:获取不同测试用户群针对第三方SDK新旧版本的测试数据;
    数据校验单元,被配置为:对获取到的测试数据进行显著性校验,得到对应于新版本的第一用户转化率和对应于旧版本的第二用户转化率。
  14. 如权利要求13所述的装置,其中,所述安装包生成模块,包括:
    第一生成单元,被配置为:如果所述第一用户转化率大于所述第二用户转化率,则将新版本的第三方SDK封装至所述升级安装包;或者,
    第二生成单元,被配置为:如果所述第二用户转化率大于所述第一用户转化率,则将旧版本的第三方SDK封装至所述升级安装包。
  15. 一种终端,其中,包括:处理器;及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如下的步骤:
    终端向服务器端发起应用程序升级请求,以使所述服务器端响应于所述应用程序升级请求返回所述应用程序的测试安装包,所述测试安装包仅封装了其中一个版本的第三方SDK,所述测试安装包用于第三方SDK新旧版本测试;运行所述测试安装包,以启动所述应用程序;基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK,通过第三方SDK对应版本的加载进入第三方SDK新旧版本测试,以验证第三方SDK的新版本是否优于旧版本;当满足第三方SDK新旧版本测试的测试周期,接收所述应用程序的升级安装包,通过所述升级安装包的运行实现所述应用程序的升级,所述升级安装包是所述服务器端根据用户转化率大的第三方SDK对应版本返回的。
  16. 如权利要求15所述的终端,其中,在所述基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK的步骤中,所述处理器被配置为:
    获取终端用户所属测试用户群的类型,根据获取到的类型确定所述终端对应的加载方式;如果所确定的加载方式为动态加载,则通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK。
  17. 如权利要求16所述的终端,其中,在所述通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK的步骤 中,所述处理器被配置为:
    通过启动的所述应用程序,请求所述服务器端返回SDK组件,所述SDK组件中封装有第二版本的第三方SDK;本地加载封装于所述SDK组件中第二版本的第三方SDK。
  18. 如权利要求16所述的终端,其中,在所述基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK的步骤中,所述处理器还被配置为:
    如果所确定的加载方式为本地加载,则通过启动的所述应用程序,本地加载封装于所述测试安装包中第一版本的第三方SDK。
  19. 如权利要求15至18任一项所述的终端,其中,所述处理器还被配置为:
    当满足第三方SDK新旧版本测试的测试周期,所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率;根据计算得到的用户转化率生成所述应用程序的升级安装包,并发送至所述终端。
  20. 如权利要求19所述的终端,其中,在所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率的步骤中,所述处理器被配置为:获取不同测试用户群针对第三方SDK新旧版本的测试数据;对获取到的测试数据进行显著性校验,得到对应于新版本的第一用户转化率和对应于旧版本的第二用户转化率。
  21. 如权利要求20所述的终端,其中,在所述根据计算得到的用户转化率生成所述应用程序的升级安装包的步骤中,所述处理器被配置为:
    如果所述第一用户转化率大于所述第二用户转化率,则将新版本的第三方SDK封装至所述升级安装包;或者,
    如果所述第二用户转化率大于所述第一用户转化率,则将旧版本的第三方SDK封装至所述升级安装包。
  22. 一种计算机非易失性可读存储介质,其上存储有计算机程序,所 述计算机程序被处理器执行时实现如下的步骤:
    终端向服务器端发起应用程序升级请求,以使所述服务器端响应于所述应用程序升级请求返回所述应用程序的测试安装包,所述测试安装包仅封装了其中一个版本的第三方SDK,所述测试安装包用于第三方SDK新旧版本测试;运行所述测试安装包,以启动所述应用程序;基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK,通过第三方SDK对应版本的加载进入第三方SDK新旧版本测试,以验证第三方SDK的新版本是否优于旧版本;当满足第三方SDK新旧版本测试的测试周期,接收所述应用程序的升级安装包,通过所述升级安装包的运行实现所述应用程序的升级,所述升级安装包是所述服务器端根据用户转化率大的第三方SDK对应版本返回的。
  23. 如权利要求22所述的计算机非易失性可读存储介质,其中,在所述基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK的步骤中,所述处理器被配置为:
    获取终端用户所属测试用户群的类型,根据获取到的类型确定所述终端对应的加载方式;如果所确定的加载方式为动态加载,则通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK。
  24. 如权利要求23所述的计算机非易失性可读存储介质,其中,在所述通过启动的所述应用程序,动态加载存储于所述服务器端中第二版本的第三方SDK的步骤中,所述处理器被配置为:
    通过启动的所述应用程序,请求所述服务器端返回SDK组件,所述SDK组件中封装有第二版本的第三方SDK;本地加载封装于所述SDK组件中第二版本的第三方SDK。
  25. 如权利要求23所述的计算机非易失性可读存储介质,其中,在所述基于启动的所述应用程序,按照所述终端对应的加载方式加载对应版本的第三方SDK的步骤中,所述处理器还被配置为:如果所 确定的加载方式为本地加载,则通过启动的所述应用程序,本地加载封装于所述测试安装包中第一版本的第三方SDK。
  26. 如权利要求22至25任一项所述的计算机非易失性可读存储介质,其中,所述处理器还被配置为:
    当满足第三方SDK新旧版本测试的测试周期,所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率;根据计算得到的用户转化率生成所述应用程序的升级安装包,并发送至所述终端。
  27. 如权利要求26所述的计算机非易失性可读存储介质,其中,在所述服务器端计算不同测试用户群针对第三方SDK新旧版本的用户转化率的步骤中,所述处理器被配置为:
    获取不同测试用户群针对第三方SDK新旧版本的测试数据;对获取到的测试数据进行显著性校验,得到对应于新版本的第一用户转化率和对应于旧版本的第二用户转化率。
  28. 如权利要求27所述的计算机非易失性可读存储介质,其中,在所述根据计算得到的用户转化率生成所述应用程序的升级安装包的步骤中,所述处理器被配置为:
    如果所述第一用户转化率大于所述第二用户转化率,则将新版本的第三方SDK封装至所述升级安装包;或者,
    如果所述第二用户转化率大于所述第一用户转化率,则将旧版本的第三方SDK封装至所述升级安装包。
PCT/CN2019/118040 2019-03-12 2019-11-13 应用程序升级方法、装置、终端及计算机可读存储介质 WO2020181814A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910185009.7 2019-03-12
CN201910185009.7A CN109976787B (zh) 2019-03-12 2019-03-12 应用程序升级方法、装置、终端及计算机可读存储介质

Publications (1)

Publication Number Publication Date
WO2020181814A1 true WO2020181814A1 (zh) 2020-09-17

Family

ID=67078620

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/118040 WO2020181814A1 (zh) 2019-03-12 2019-11-13 应用程序升级方法、装置、终端及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN109976787B (zh)
WO (1) WO2020181814A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486520A (zh) * 2020-12-07 2021-03-12 深圳市欢太科技有限公司 应用程序升级方法及其装置、移动终端和服务器
CN113890825A (zh) * 2021-09-16 2022-01-04 深圳Tcl新技术有限公司 设备的交互升级测试方法、装置、存储介质及电子设备
US20230102816A1 (en) * 2021-09-30 2023-03-30 Vmware, Inc. Automatic updating of application functionality

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976787B (zh) * 2019-03-12 2022-04-19 平安普惠企业管理有限公司 应用程序升级方法、装置、终端及计算机可读存储介质
CN111857772B (zh) * 2020-06-29 2023-06-09 湖南中联重科智能技术有限公司 终端边缘应用程序远程传输及动态加载方法及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677877A (zh) * 2012-09-12 2014-03-26 腾讯科技(深圳)有限公司 一种本地广告软件开发包升级的方法及装置
CN105763626A (zh) * 2016-04-11 2016-07-13 苏州云清伟业网络科技有限公司 适用于应用客户端支付的sdk初始化方法
WO2018185743A1 (en) * 2017-04-02 2018-10-11 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 北京奇虎科技有限公司 一种应用测试方法和装置
CN109976787A (zh) * 2019-03-12 2019-07-05 平安普惠企业管理有限公司 应用程序升级方法、装置、终端及计算机可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262555B (zh) * 2011-08-22 2013-11-20 迈普通信技术股份有限公司 加载java三方库的不同版本的方法和装置
WO2014159943A2 (en) * 2013-03-14 2014-10-02 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 阿里巴巴集团控股有限公司 一种移动应用的中间件升级方法及装置
CN106648724B (zh) * 2016-09-05 2020-05-01 Tcl集团股份有限公司 应用程序的热修复方法及终端
CN107870787B (zh) * 2016-09-26 2021-04-27 平安科技(深圳)有限公司 应用程序插件化加载方法及系统
CN108108181B (zh) * 2017-12-14 2022-03-01 深圳市雷鸟网络传媒有限公司 应用程序的功能更新方法、装置及计算机可读存储介质
CN108491236A (zh) * 2018-03-23 2018-09-04 努比亚技术有限公司 一种插件加载方法、装置及计算机可读存储介质
CN108628623A (zh) * 2018-04-04 2018-10-09 苏州天魂网络科技股份有限公司 一种基于马尔可夫链蒙特卡洛分包技术算法的移动平台整包热更新的解决方法
CN109002320B (zh) * 2018-08-20 2021-07-06 思必驰科技股份有限公司 用于软件开发包的更新方法、系统、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677877A (zh) * 2012-09-12 2014-03-26 腾讯科技(深圳)有限公司 一种本地广告软件开发包升级的方法及装置
CN105763626A (zh) * 2016-04-11 2016-07-13 苏州云清伟业网络科技有限公司 适用于应用客户端支付的sdk初始化方法
WO2018185743A1 (en) * 2017-04-02 2018-10-11 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 北京奇虎科技有限公司 一种应用测试方法和装置
CN109976787A (zh) * 2019-03-12 2019-07-05 平安普惠企业管理有限公司 应用程序升级方法、装置、终端及计算机可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486520A (zh) * 2020-12-07 2021-03-12 深圳市欢太科技有限公司 应用程序升级方法及其装置、移动终端和服务器
CN113890825A (zh) * 2021-09-16 2022-01-04 深圳Tcl新技术有限公司 设备的交互升级测试方法、装置、存储介质及电子设备
CN113890825B (zh) * 2021-09-16 2023-08-01 深圳Tcl新技术有限公司 设备的交互升级测试方法、装置、存储介质及电子设备
US20230102816A1 (en) * 2021-09-30 2023-03-30 Vmware, Inc. Automatic updating of application functionality

Also Published As

Publication number Publication date
CN109976787A (zh) 2019-07-05
CN109976787B (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
WO2020181814A1 (zh) 应用程序升级方法、装置、终端及计算机可读存储介质
US11910192B2 (en) Device identifier access method and apparatus
CN109165050B (zh) 程序的运行方法、装置、计算设备以及存储介质
CN107832100B (zh) 一种apk插件的加载方法及其终端
US9843667B2 (en) Electronic device and call service providing method thereof
WO2021036706A1 (zh) 可信应用的运行方法、信息处理和内存分配方法及装置
KR101744183B1 (ko) 호스트 디바이스의 능력들의 증강
CN109669723B (zh) 硬件访问方法、装置、设备和机器可读介质
WO2019192129A1 (zh) 基于移动终端的客户数据安全访问方法及装置
CN107766747B (zh) 校验应用程序安装包完整性的方法、移动终端及服务器
US11853767B2 (en) Inter-core data processing method, system on chip and electronic device
US20230161911A1 (en) Security architecture system, security management method, and computing device
WO2019047708A1 (zh) 资源配置方法及相关产品
CN110968331A (zh) 应用程序运行的方法和装置
CN113784049B (zh) 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质
CN109889468B (zh) 网络数据的传输方法、系统、装置、设备及存储介质
US10284614B2 (en) Method for downloading contents of electronic device and electronic device thereof
CN110442407B (zh) 应用程序的处理方法及装置
CN116491110A (zh) 用于执行边缘计算服务的电子装置和电子装置的操作方法
CN113391860A (zh) 服务请求处理方法、装置、电子设备及计算机存储介质
CN108616657B (zh) 移动终端中实现软电话拨打的方法及装置
CN110120963B (zh) 一种数据处理方法、装置、设备和机器可读介质
WO2019192128A1 (zh) 网页访问方法及装置
WO2013185719A1 (zh) 一种无线上网方法及设备、服务器和无线上网系统
CN113724711A (zh) 一种语音识别服务实现方法、装置、系统、介质及设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19918989

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 21.01.2022)

122 Ep: pct application non-entry in european phase

Ref document number: 19918989

Country of ref document: EP

Kind code of ref document: A1