CN116560699A - Method and device for quick repair through SDK version mixing - Google Patents

Method and device for quick repair through SDK version mixing Download PDF

Info

Publication number
CN116560699A
CN116560699A CN202310833744.0A CN202310833744A CN116560699A CN 116560699 A CN116560699 A CN 116560699A CN 202310833744 A CN202310833744 A CN 202310833744A CN 116560699 A CN116560699 A CN 116560699A
Authority
CN
China
Prior art keywords
library
sub
package
packages
bug
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
Application number
CN202310833744.0A
Other languages
Chinese (zh)
Other versions
CN116560699B (en
Inventor
骆林昊
白剑
黄海亮
梁瑛玮
张海林
鲁和平
李长杰
陈焕然
李乐
王浩
洪行健
冷冬
丁一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yifang Information Technology Co ltd
Original Assignee
Yifang Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yifang Information Technology Co ltd filed Critical Yifang Information Technology Co ltd
Priority to CN202310833744.0A priority Critical patent/CN116560699B/en
Publication of CN116560699A publication Critical patent/CN116560699A/en
Application granted granted Critical
Publication of CN116560699B publication Critical patent/CN116560699B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

The invention provides a method and a device for quick repair by SDK version mixing, wherein the method comprises the following steps: splitting a main library package of the SDK according to at least a first preset rule to generate a plurality of sub library packages; determining a current SDK version at least according to the main library and a plurality of sub-library packages, wherein the SDK version depends on the main library or the plurality of sub-library packages alternatively; determining a sub-library package in which the bug is located according to the bug event; when the sub-library package where the bug is located is updated, switching the dependent mode of the current SDK version from the main library package to the sub-library package; and selecting a sub-library package in which the bug is located for updating operation. The device uses the method. The invention saves a great deal of labor cost and time cost.

Description

Method and device for quick repair through SDK version mixing
Technical Field
The invention relates to the technical field of software development, in particular to a method and a device for quick repair through SDK version mixing.
Background
For developers using SDKs (software development kits), the quality of the SDKs is related to the overall App stability. Whenever there is a problem with the SDK (such as crash flash, data error, traffic anomalies, etc.), the common schemes currently available are: and the developer of the research and development party emergently repairs the Bug and upgrades the SDK version, and then the developer of the calling party emergently upgrades, retests and puts on the App again.
The traditional bug repair mode has larger risks and hidden hazards for calling parties and developing parties:
in terms of calling parties, since the upgrade of the SDK version usually comprises not only Bug repair but also a large amount of other changes such as new business logic, new functions and the like, when calling party personnel find Bug, the calling party can only overcome the existing Bug by upgrading the complete SDK version, so that the calling party needs to bear huge version change risk, and in the scene of needing urgent repair of the on-line problem, difficult selection is often needed to be made: step one, retesting and walking inspection are carried out during arrangement; and in the second scheme, risk direct online repair is not considered. The scheme one needs to verify and pass all functions of the SDK of the whole new version to be on-line to the App, the process is time-consuming and labor-consuming, the on-line problem cannot be repaired in time, and the scheme two has huge potential risks because the SDK version which is newly on-line is not verified.
At the research and development side's point of view, if a Bug exists in an early version (e.g., V1.0.0) and after the early version is released for a long period of time (three months, six months or longer), the caller will find that the research and development side has received the relevant Bug repair application and has been developing a version that is more distant (e.g., V1.5.0 or even higher). At this time, the research and development party also needs to make difficult selections: the first scheme is used for repairing the version of the calling party to output a customized version in man-hour arrangement, and the second scheme is used for repairing the latest version directly. According to the scheme, the research and development party needs to maintain two identical codes, so that the number of the codes needing to be maintained is increased along with the increase of the bug repair requests of the calling party. The second scheme makes the calling party spend a lot of manpower cost and time cost to carry out code adaptation.
Disclosure of Invention
Aiming at the defects of the prior art, the invention provides a method for quickly repairing by mixing SDK versions, which comprises the following steps:
splitting a main library package of the SDK according to at least a first preset rule to generate a plurality of sub library packages;
determining a current SDK version at least according to the main library and a plurality of sub-library packages, wherein the SDK version depends on the main library or the plurality of sub-library packages alternatively;
determining a sub-library package in which the bug is located according to the bug event;
when the sub-library package where the bug is located is updated, switching the dependent mode of the current SDK version from the main library package to the sub-library package;
and selecting a sub-library package in which the bug is located for updating operation.
In one embodiment, the step of splitting the main library package of the SDK according to at least the first preset rule to generate a plurality of sub library packages includes:
a. performing architecture splitting on a multi-architecture document package of a main library package of the SDK to obtain a plurality of single-architecture document packages;
b. class splitting is carried out on each single-structure document package, and a plurality of original classes are obtained;
c. performing class recombination on the original class according to a second preset rule to obtain a target single-structure document package;
d. repeatedly executing the step c according to different frameworks to obtain a plurality of single-framework document packages;
e. merging the plurality of single-architecture document packages to obtain a multi-architecture document package meeting a second preset rule;
f. generating a sub-library package according to the multi-architecture document package;
g. and c, repeatedly executing the steps c-f, and generating a plurality of sub-library packages meeting a second preset rule.
In one embodiment, the step of determining the current SDK version according to at least the main library and the plurality of sub-library packages, where the SDK version depends on the main library or the plurality of sub-library packages alternatively includes:
distributing a plurality of sub-library packages through a CocoaPod package management platform;
and determining a current SDK version at least according to the main library and the distributed sub-library packages, wherein the SDK version is alternatively dependent on the main library or the distributed sub-library packages.
In one embodiment, when it is determined that there is an update in the sub-library package in which the bug is located, the step of switching the dependency scheme of the current SDK version from the main library package to the sub-library package specifically includes:
when the fact that the main library package or the sub library package where the bug is located is updated is detected, and the update information comprises the repair of the bug event, the dependency code is executed to switch the dependency scheme from the main library package to the sub library package.
In one embodiment, the step of selecting the sub-library package in which the bug is located to perform the update operation includes:
acquiring the update information;
and executing an update code, and performing update operation on the sub-library package where the bug is located according to the update information.
In one embodiment, the step of performing class reorganization on the original class according to the second preset rule to obtain the target list architecture document package includes:
performing preliminary recombination on the original class according to the service class;
and performing secondary recombination on the primary recombined original class according to the updating frequency to obtain a target single-structure document package.
The invention also provides a device for quick repair by SDK version mixing, which comprises:
the generation module is used for splitting the main library package of the SDK at least according to a first preset rule to generate a plurality of sub library packages;
the first determining module is used for determining a current SDK version at least according to the main library and the plurality of sub-library packages, wherein the SDK version depends on the main library or the plurality of sub-library packages alternatively;
the second determining module is used for determining a sub-library package where the bug is located according to the bug event;
the switching module is used for switching the dependent mode of the current SDK version from the main library package to the sub library package when the sub library package where the bug is located is updated;
and the updating module is used for selecting the sub-library package where the bug is located to perform updating operation.
In one embodiment, the generating module further includes:
the first acquisition unit is used for carrying out architecture splitting on the multi-architecture document package of the main library package of the SDK to acquire a plurality of single-architecture document packages;
the second acquisition unit is used for carrying out class splitting on each single-structure document package to acquire a plurality of original classes;
the third acquisition unit is used for carrying out class recombination on the original class according to a second preset rule to acquire a target single-structure document package;
a fourth obtaining unit, configured to repeatedly execute the third obtaining unit according to different configurations, to obtain a plurality of document packages with single configuration;
a fifth obtaining unit, configured to combine the plurality of single-architecture document packages to obtain a multi-architecture document package that satisfies a second preset rule;
the first generation unit is used for generating a sub-library package according to the multi-architecture document package;
and the second generation unit is used for generating a plurality of sub-library packages meeting a second preset rule.
The invention also provides a computer device, which comprises a memory, a processor and a computer program stored in the memory and capable of running on the processor, wherein the processor realizes the method for repairing rapidly by the SDK version shuffle when executing the computer program.
The invention also provides a computer storage medium, on which a computer program is stored, which when executed by a processor implements the above-described method for quick repair by SDK version shuffling.
According to the embodiment of the invention, the main library package of the SDK is split through the first preset rule to generate a plurality of sub-library packages, the current SDK version is determined at least according to the main library and the plurality of sub-library packages, and the SDK version is independent of the main library or the plurality of sub-library packages, so that when the bug time occurs, the sub-library packages which do not contain the bug can be independent and are not influenced, when the sub-library package where the bug is located is determined, and the sub-library package where the bug is located is updated, the dependent mode of the current SDK version is switched from the main library package to the sub-library package, the sub-library package where the bug is located is selected for updating operation, and for a calling party of the SDK, the upgrade SDK can be upgraded as required, and has higher flexibility. For the research and development party of the SDK, the sub-library package where the bug is located can be maintained in a shorter time, the code maintenance amount is obviously reduced, and a great deal of labor cost and time cost are saved.
Drawings
In order to more clearly illustrate the embodiments of the invention or the technical solutions of the prior art, the drawings which are used in the description of the embodiments or the prior art will be briefly described, it being obvious that the drawings in the description below are only some embodiments of the invention, and that other drawings can be obtained according to these drawings without inventive faculty for a person skilled in the art.
FIG. 1 is a flow chart of a method for quick repair by SDK version mashup in accordance with a first embodiment of the present invention;
fig. 2 is a detailed flowchart of S11 according to the first embodiment of the present invention;
FIG. 3 is a detailed flowchart of S12 of the first embodiment of the present invention;
FIG. 4 is a block diagram of an apparatus for quick repair by SDK version shuffle in accordance with a second embodiment of the present invention;
fig. 5 is a block diagram of a generating module according to a second embodiment of the present invention.
Fig. 6 is a schematic diagram showing the internal structure of a computer according to still another embodiment of the present invention.
Detailed Description
The following description of the embodiments of the present invention will be made clearly and fully with reference to the accompanying drawings, in which it is evident that the embodiments described are only some, but not all embodiments of the invention, and that well-known modules, units and their connections, links, communications or operations with each other are not shown or described in detail. Also, the described features, architectures, or functions may be combined in any manner in one or more implementations. It will be appreciated by those skilled in the art that the various embodiments described below are for illustration only and are not intended to limit the scope of the invention. It will be further appreciated that the modules or units or processes of the embodiments described herein and illustrated in the drawings may be combined and designed in a wide variety of different configurations. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
First embodiment:
referring to fig. 1 to 3, an embodiment of the present invention discloses a method for performing quick repair by SDK version mashup, which includes:
s11, splitting the main library package of the SDK at least according to a first preset rule to generate a plurality of sub library packages.
When all the sub-library packages of the embodiment of the invention are relied on, all the functions of the main library package can be independently executed, and based on the understanding, the first preset rule needs to meet that the generated plurality of sub-library packages can completely provide all the functions of the main library package, otherwise, the functions enjoyed by a calling party are lost.
In this embodiment, a frame packet (referred to as plvfounationsdk) is taken as an example for exemplary explanation, and it should be noted that the present invention does not limit the specific type of the frame packet.
As a specific supplement to the first preset rule, but not limited to, as shown in fig. 2, the step S11 further includes steps S111-S117, wherein:
s111, carrying out architecture splitting on a multi-architecture document package of a main library package of the SDK to obtain a plurality of single-architecture document packages.
A multi-architecture document package is a collection of target files. One architecture corresponds to one set, and a multi-architecture document package generally comprises a plurality of target file sets of the architecture, namely the original body of the static library, which is the core file of the static library. The present embodiment finds a multi-architecture document package from plvfoundsdk. The method further includes the steps of carrying out architecture splitting on the multi-architecture document package, for example, using a lipo command tool, wherein codes are "lipo multi-architecture document package path xxx-thin architecture name xxx-output single-architecture document package output path xxx", and a plurality of single-architecture document packages are obtained.
S112, carrying out class splitting on each single-structure document package to obtain a plurality of original classes.
The class of this embodiment refers to a foundation for implementing information encapsulation, including a data description and a set of functions that operate on data or transfer messages. As an implementation scheme of a specific code, in step S112, class splitting is performed on the single architecture packet after architecture splitting. Using the ar command tool, code "ar-v-x-l single construct document package path", multiple original classes are obtained.
S113, performing class recombination on the original class according to a second preset rule to obtain the target single-structure document package.
The second preset rule in this embodiment is included in the first preset rule, and includes performing preliminary recombination on the original class according to the service class; and performing secondary recombination on the primary recombined original class according to the updating frequency to obtain a target single-structure document package. In this embodiment, according to the division of the calling party service, if the calling party itself divides the modules such as tools, error codes, logs, etc., then the frame packet also divides the tool modules, error code modules, network request modules, log modules, etc. And then, according to the updating frequency of the calling party, if the color sub-module, the data conversion sub-module, the graphic sub-module and the like in the tool module are updated at a higher frequency, dividing the tool module into three small sub-modules.
Finally, exemplary partitioning schemes include, but are not limited to, color sub-modules, data conversion sub-modules, graphics sub-modules, error code modules, network request modules, log modules.
Meanwhile, the customization scheme requires that the submodule does not allow function migration in principle, and if the function migration exists, the scheme requires to be driven into the same sub-library package, so that the feasibility of landing of the subsequent scheme is ensured.
As an implementation scheme of a specific code, a framework is selected first, then an ar command tool is used, the code is 'ar-r-v-l new single-framework document package path certain target file aaa certain target file bbb certain target file ccc', and taking a color sub-module as an example, the target files aaa, bbb, ccc are all of the classes belonging to the color sub-module.
And S114, repeatedly executing the step S113 according to different frameworks to obtain a plurality of single-framework document packages.
The above step S113 obtains a single structured document package of the color sub-module, such as plvfoudationcolorsdk. A single architecture document package of other architecture is still required, and thus other architecture is selected, and step S113 is repeated. In this embodiment, there are four architectures, x84_64, i386, arm64, arm 7. Step S113 is performed 4 times in total. A single structured document package of four structured color sub-modules is obtained.
S115, merging the plurality of single-framework document packages to obtain a multi-framework document package meeting a second preset rule.
Corresponding to the explanation of the above step S114, the present step merges the single-structured document packages of the color sub-modules of the four architectures, specifically, a lipo tool may be used, and the code is "lipo-create single-structured document package path x86—64 single-structured document package path i386 single-structured document package path arm64 single-structured document package path arm 7-output new multi-structured document package storage path". A multi-architecture document package of color sub-modules is obtained.
S116, generating a sub-library package according to the multi-architecture document package.
As an example and not by way of limitation, this step creates a corresponding sub-library package by creating a folder, renamed plvfoudationcolorsdk.
S117, repeatedly executing the steps S113-S116, and generating a plurality of sub-library packages meeting the second preset rule.
By repeating the above steps S113 to S116, a frame packet of each module, for example, a multi-frame document packet plvfoudationcolor sdk.frame packet of the color sub-module, a multi-frame document packet plvfoudationdata.frame packet of the data conversion sub-module, a multi-frame document packet plvfoudationgraphsdk.frame packet of the graphic sub-module, a multi-frame document packet plvfoudationcodesdk.frame packet of the error code module, a multi-frame document packet plvfoudationnetwork sdk.frame packet of the network request module, and a multi-frame document packet plvfoudationlowsdk.frame packet of the log module can be obtained.
And S12, determining a current SDK version at least according to the main library and the sub-library packages, wherein the SDK version depends on the main library or the sub-library packages alternatively.
The current SDK version contains a main library and a plurality of sub-library packages including but not limited to S117, when the SDK version runs, the dependent main library or the sub-library packages are selected, and when no bug occurs in the SDK version, the SDK version depends on the main library package, and when the bug occurs in the SDK version, the dependent scheme can be automatically or manually changed into the sub-library packages.
Further, referring to fig. 3, the present step S12 further includes steps S121-S122, wherein:
s121, distributing the plurality of sub-library packages through the CocoaPod package management platform.
And distributing the obtained multiple sub-frame packages through a CocoaPod package management platform. Then a declaration podep file needs to be defined, the key code is as follows:
s.subspec ‘Color’ do |ss|
ss.vendored_frameworks = "Frameworks/MiniFramework/PLVFoundationColorSDK.framework"
end
s.subspec ‘Data’ do |ss|
ss.vendored_frameworks = "Frameworks/MiniFramework/PLVFoundationDataSDK.framework"
end
s.subspec ‘Graph’ do |ss|
ss.vendored_frameworks = "Frameworks/MiniFramework/PLVFoundationGraphSDK.framework"
end
s.subspec ‘ErrorCode’ do |ss|
ss.vendored_frameworks="Frameworks/MiniFramework/PLVFoundationErrorCodeSDK.framework"
end
s.subspec ‘Network’ do |ss|
ss.vendored_frameworks="Frameworks/MiniFramework/PLVFoundationNetworkSDK.framework"
end
s.subspec ‘Log’ do |ss|
ss.vendored_frameworks ="Frameworks/MiniFramework/PLVFoundationLogSDK.framework"
end
s.default_subspec = 'Color', 'Data', 'Graph', 'ErrorCode', 'Network', 'Log'
s122, determining a current SDK version at least according to the main library and the distributed sub-library packages, wherein the SDK version is dependent on the main library or the distributed sub-library packages.
S13, determining a sub-library package where the bug is located according to the bug event.
S14, when the sub-library package where the bug is located is updated, the dependent scheme of the current SDK version is switched from the main library package to the sub-library package.
The step S14 may specifically be: when the fact that the main library package or the sub library package where the bug is located is detected to have update, and the update information comprises repair of the bug event, the dependency code is executed to switch the dependency scheme from the main library package to the sub library package.
The dependent code of this step may be, for example, pod 'PLVFoudateSDK', '1.0.0'. When the dependent code is executed, all sub-frame packages are automatically relied upon by default.
S15, selecting a sub-library package where the bug is located for updating operation.
For example, if the caller encounters a Bug in the color sub-module, it is found that the latest version V1.6.0 of plvfounationsdk restores the Bug, and the client does not want to upgrade directly, because the current SDK versions V1.0.0 to V1.6.0 are too much changed in code, require much time, and require stability test verification, and can be online, and the caller can only select to update the sub-library package in which the Bug is located.
The step S15 may specifically be: when the fact that the main library package or the sub library package where the bug is located is detected to have update, and the update information comprises repair of the bug event, the dependency code is executed to switch the dependency scheme from the main library package to the sub library package.
Customers want to repair only the Bug of the color sub-module and to be on line in an emergency. At this time, the client may use codes such as pod 'PLVFoudatSDK/Color', '1.6.0' pod 'PLVFoudatSDK/Data', '1.0.0' pod 'PLVFoudatSDK/Graph', '1.0.0' pod 'PLVFoudatSDK/error code', '1.0.0' pod 'PLVFoudatSDK/Network', '1.0.0' pod 'PLVFoudatsdK/Log', '1.0.0'
Only the color submodule is upgraded to the V1.6.0 module and the remaining modules remain old versions, minimizing the scope of changes as much as possible.
According to the embodiment of the invention, the main library package of the SDK is split through the first preset rule to generate a plurality of sub-library packages, the current SDK version is determined at least according to the main library and the plurality of sub-library packages, and the SDK version is independent of the main library or the plurality of sub-library packages, so that when the bug time occurs, the sub-library packages which do not contain the bug can be independent and are not influenced, when the sub-library package where the bug is located is determined, and the sub-library package where the bug is located is updated, the dependent mode of the current SDK version is switched from the main library package to the sub-library package, the sub-library package where the bug is located is selected for updating operation, and for a calling party of the SDK, the upgrade SDK can be upgraded as required, and has higher flexibility. For the research and development party of the SDK, the sub-library package where the bug is located can be maintained in a shorter time, the code maintenance amount is obviously reduced, and a great deal of labor cost and time cost are saved.
Second embodiment:
referring to fig. 4 and fig. 5, the present invention further provides an apparatus 100 for performing quick repair by SDK version shuffling, which includes a generating module 110, a first determining module 120, a second determining module 130, a switching module 140, and an updating module 150, wherein:
the generating module 110 is connected to the first determining module 120, and is configured to split the main library package of the SDK according to at least a first preset rule to generate a plurality of sub library packages;
the first determining module 120 is connected to the second determining module 130, and is configured to determine a current SDK version according to at least the main library and the plurality of sub-library packages, where the SDK version depends on the main library or the plurality of sub-library packages;
the second determining module 130 is connected to the switching module 140, and is configured to determine a sub-library package in which the bug is located according to the bug event;
the switching module 140 is connected with the updating module 150 and is used for switching the dependent mode of the current SDK version from the main library package to the sub library package when the sub library package where the bug is located is updated;
and the updating module 150 is used for selecting the sub-library package where the bug is located to perform updating operation.
As a preferred solution, but not limiting, the generating module 110 further comprises a first acquiring unit 111, a second acquiring unit 112, a third acquiring unit 113, a fourth acquiring unit 114, a fifth acquiring unit 115, a first generating unit 116 and a second generating unit 117, wherein:
the first obtaining unit 111 is connected to the second obtaining unit 112, and is configured to perform architecture splitting on a multi-architecture document package of a main library package of the SDK, so as to obtain a plurality of single-architecture document packages.
The second obtaining unit 112 is connected to the third obtaining unit 113, and is configured to split the classes of each single-structure document package, and obtain a plurality of original classes.
The third obtaining unit 113 is connected to the fourth obtaining unit 114, and is configured to perform class reorganization on the original class according to a second preset rule, so as to obtain a target list architecture document package.
A fourth obtaining unit 114, connected to the third obtaining unit 113, for repeatedly executing the third obtaining unit according to different configurations to obtain a plurality of single-configuration document packages.
A fifth obtaining unit 115, connected to the first generating unit 116, is configured to combine the plurality of single-architecture document packages to obtain a multi-architecture document package that satisfies the second preset rule.
The first generating unit 116 is connected to the second generating unit 117, and is configured to generate a sub-library package according to the multi-architecture document package.
A second generating unit 117, configured to generate a plurality of sub-library packages that satisfy a second preset rule.
The modules in this embodiment are the same as the corresponding steps in the above method embodiment, and are not described here again.
According to the embodiment of the invention, the main library package of the SDK is split through the first preset rule to generate a plurality of sub-library packages, the current SDK version is determined at least according to the main library and the plurality of sub-library packages, and the SDK version is independent of the main library or the plurality of sub-library packages, so that when the bug time occurs, the sub-library packages which do not contain the bug can be independent and are not influenced, when the sub-library package where the bug is located is determined, and the sub-library package where the bug is located is updated, the dependent mode of the current SDK version is switched from the main library package to the sub-library package, the sub-library package where the bug is located is selected for updating operation, and for a calling party of the SDK, the upgrade SDK can be upgraded as required, and has higher flexibility. For the research and development party of the SDK, the sub-library package where the bug is located can be maintained in a shorter time, the code maintenance amount is obviously reduced, and a great deal of labor cost and time cost are saved.
It will be apparent to those skilled in the art that, for convenience and brevity of description, only the above-described division of the functional modules is illustrated, and in practical application, the above-described functional allocation may be performed by different functional modules according to needs, i.e. the internal structure of the apparatus is divided into different functional modules to perform all or part of the functions described above. The specific working processes of the above-described systems, devices and units may refer to the corresponding processes in the foregoing method embodiments, which are not described herein.
The embodiment of the invention also provides a computer storage medium, on which a computer program is stored, which when executed by a processor, implements the method for quick repair by SDK version shuffling in the above embodiments.
Those skilled in the art will appreciate that implementing all or part of the above-described embodiment methods may be accomplished by instructing the associated hardware by a computer program, which may be stored on a non-volatile computer readable storage medium, which when executed may include the above-described embodiment methods of rapid repair by SDK version shuffle. Any reference to memory, storage, database, or other medium used in the various embodiments provided herein may include non-volatile and/or volatile memory. The nonvolatile memory can include Read Only Memory (ROM), programmable ROM (PROM), electrically Programmable ROM (EPROM), electrically Erasable Programmable ROM (EEPROM), or flash memory. Volatile memory can include Random Access Memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in a variety of forms such as Static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double Data Rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous Link DRAM (SLDRAM), memory bus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), among others.
Alternatively, the above-described integrated units of the present invention may be stored in a computer-readable storage medium if implemented in the form of software functional modules and sold or used as separate products. Based on such understanding, the technical solution of the embodiments of the present invention may be essentially or part contributing to the related art, and the computer software product may be stored in a storage medium, and include several instructions to cause a computer device (which may be a personal computer, a terminal, or a network device) to execute all or part of the methods of the embodiments of the present invention. And the aforementioned storage medium includes: various media capable of storing program code, such as a removable storage device, RAM, ROM, magnetic or optical disk.
Corresponding to the above computer storage medium, in one embodiment, there is further provided a computer device, where the computer device includes a memory, a processor, and a computer program stored on the memory and capable of running on the processor, where the processor executes the program to implement the method for performing quick repair by SDK version shuffle in the above embodiments.
The computer device may be a terminal, and its internal structure may be as shown in fig. 6. The computer device includes a processor, a memory, a network interface, a display screen, and an input device connected by a system bus. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage media. The network interface of the computer device is used for communicating with an external terminal through a network connection. The computer program, when executed by a processor, implements a method for quick repair by SDK version shuffling. The display screen of the computer equipment can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer equipment can be a touch layer covered on the display screen, can also be keys, a track ball or a touch pad arranged on the shell of the computer equipment, and can also be an external keyboard, a touch pad or a mouse and the like.
According to the embodiment of the invention, the main library package of the SDK is split through the first preset rule to generate a plurality of sub-library packages, the current SDK version is determined at least according to the main library and the plurality of sub-library packages, and the SDK version is independent of the main library or the plurality of sub-library packages, so that when the bug time occurs, the sub-library packages which do not contain the bug can be independent and are not influenced, when the sub-library package where the bug is located is determined, and the sub-library package where the bug is located is updated, the dependent mode of the current SDK version is switched from the main library package to the sub-library package, the sub-library package where the bug is located is selected for updating operation, and for a calling party of the SDK, the upgrade SDK can be upgraded as required, and has higher flexibility. For the research and development party of the SDK, the sub-library package where the bug is located can be maintained in a shorter time, the code maintenance amount is obviously reduced, and a great deal of labor cost and time cost are saved.
The technical features of the above embodiments may be arbitrarily combined, and all possible combinations of the technical features in the above embodiments are not described for brevity of description, however, as long as there is no contradiction between the combinations of the technical features, they should be considered as the scope of the description.
The foregoing examples illustrate only a few embodiments of the invention, which are described in detail and are not to be construed as limiting the scope of the invention. It should be noted that it will be apparent to those skilled in the art that several variations and modifications can be made without departing from the spirit of the invention, which are all within the scope of the invention. Accordingly, the scope of protection of the present invention is to be determined by the appended claims.

Claims (10)

1. A method for quick repair by SDK version mashup, comprising:
splitting a main library package of the SDK according to at least a first preset rule to generate a plurality of sub library packages;
determining a current SDK version at least according to the main library and a plurality of sub-library packages, wherein the SDK version depends on the main library or the plurality of sub-library packages alternatively;
determining a sub-library package in which the bug is located according to the bug event;
when the sub-library package where the bug is located is updated, switching the dependent mode of the current SDK version from the main library package to the sub-library package;
and selecting a sub-library package in which the bug is located for updating operation.
2. The method of claim 1, wherein the step of splitting the main library package of the SDK according to at least a first preset rule to generate a plurality of sub library packages comprises:
a. performing architecture splitting on a multi-architecture document package of a main library package of the SDK to obtain a plurality of single-architecture document packages;
b. class splitting is carried out on each single-structure document package, and a plurality of original classes are obtained;
c. performing class recombination on the original class according to a second preset rule to obtain a target single-structure document package;
d. repeatedly executing the step c according to different frameworks to obtain a plurality of single-framework document packages;
e. merging the plurality of single-architecture document packages to obtain a multi-architecture document package meeting a second preset rule;
f. generating a sub-library package according to the multi-architecture document package;
g. and c, repeatedly executing the steps c-f, and generating a plurality of sub-library packages meeting a second preset rule.
3. The method of claim 2, wherein the step of determining a current SDK version based at least on the master library and the plurality of sub-library packages, the SDK version alternatively relying on the master library or the plurality of sub-library packages comprises:
distributing a plurality of sub-library packages through a CocoaPod package management platform;
and determining a current SDK version at least according to the main library and the distributed sub-library packages, wherein the SDK version is alternatively dependent on the main library or the distributed sub-library packages.
4. The method of claim 3, wherein the step of switching the dependency scheme of the current SDK version from the main library package to the sub library package when it is determined that there is an update in the sub library package in which the bug is located, is specifically:
when the fact that the main library package or the sub library package where the bug is located is updated is detected, and the update information comprises the repair of the bug event, the dependency code is executed to switch the dependency scheme from the main library package to the sub library package.
5. The method of claim 4, wherein the step of selecting the sub-library package in which the bug is located for an update operation comprises:
acquiring the update information;
and executing an update code, and performing update operation on the sub-library package where the bug is located according to the update information.
6. The method of claim 5, wherein the step of obtaining the target list architecture document package by class reorganizing the original class according to a second preset rule comprises:
performing preliminary recombination on the original class according to the service class;
and performing secondary recombination on the primary recombined original class according to the updating frequency to obtain a target single-structure document package.
7. An apparatus for quick repair by SDK version mashup, comprising:
the generation module is used for splitting the main library package of the SDK at least according to a first preset rule to generate a plurality of sub library packages;
the first determining module is used for determining a current SDK version at least according to the main library and the plurality of sub-library packages, wherein the SDK version depends on the main library or the plurality of sub-library packages alternatively;
the second determining module is used for determining a sub-library package where the bug is located according to the bug event;
the switching module is used for switching the dependent mode of the current SDK version from the main library package to the sub library package when the sub library package where the bug is located is updated;
and the updating module is used for selecting the sub-library package where the bug is located to perform updating operation.
8. The apparatus of claim 7, wherein the generating module further comprises:
the first acquisition unit is used for carrying out architecture splitting on the multi-architecture document package of the main library package of the SDK to acquire a plurality of single-architecture document packages;
the second acquisition unit is used for carrying out class splitting on each single-structure document package to acquire a plurality of original classes;
the third acquisition unit is used for carrying out class recombination on the original class according to a second preset rule to acquire a target single-structure document package;
a fourth obtaining unit, configured to repeatedly execute the third obtaining unit according to different configurations, to obtain a plurality of document packages with single configuration;
a fifth obtaining unit, configured to combine the plurality of single-architecture document packages to obtain a multi-architecture document package that satisfies a second preset rule;
the first generation unit is used for generating a sub-library package according to the multi-architecture document package;
and the second generation unit is used for generating a plurality of sub-library packages meeting a second preset rule.
9. A computer device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, wherein the processor implements the method of rapid repair by SDK version shuffling as claimed in any of claims 1 to 6 when the computer program is executed.
10. A computer storage medium having stored thereon a computer program which, when executed by a processor, implements a method of fast repair by SDK version shuffling as claimed in any of claims 1 to 6.
CN202310833744.0A 2023-07-10 2023-07-10 Method and device for quick repair through SDK version mixing Active CN116560699B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310833744.0A CN116560699B (en) 2023-07-10 2023-07-10 Method and device for quick repair through SDK version mixing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310833744.0A CN116560699B (en) 2023-07-10 2023-07-10 Method and device for quick repair through SDK version mixing

Publications (2)

Publication Number Publication Date
CN116560699A true CN116560699A (en) 2023-08-08
CN116560699B CN116560699B (en) 2024-02-13

Family

ID=87486527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310833744.0A Active CN116560699B (en) 2023-07-10 2023-07-10 Method and device for quick repair through SDK version mixing

Country Status (1)

Country Link
CN (1) CN116560699B (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120323796A1 (en) * 2011-06-17 2012-12-20 Sanjay Udani Methods and systems for recording verifiable documentation
US20170075686A1 (en) * 2014-05-15 2017-03-16 Sk Techx Co., Ltd. Method for updating library, and terminal and system therefor
CN111258614A (en) * 2020-05-06 2020-06-09 深圳开源互联网安全技术有限公司 Method, system, equipment and storage medium for detecting upgrade exception of project third-party library
CN113515297A (en) * 2021-08-12 2021-10-19 深圳市晨北科技有限公司 Version updating method and device, electronic equipment and storage medium
CN114816370A (en) * 2022-06-29 2022-07-29 广州易方信息科技股份有限公司 Method for splitting SDK static library at iOS end at any fine granularity
CN114840195A (en) * 2022-06-29 2022-08-02 广州易方信息科技股份有限公司 Privatization method for iOS SDK static library
CN115098158A (en) * 2022-07-21 2022-09-23 康键信息技术(深圳)有限公司 SDK packaging method and device, computer equipment and storage medium
CN115934198A (en) * 2022-12-16 2023-04-07 深圳依时货拉拉科技有限公司 SDK loading method, device, equipment and storage medium

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120323796A1 (en) * 2011-06-17 2012-12-20 Sanjay Udani Methods and systems for recording verifiable documentation
US20170075686A1 (en) * 2014-05-15 2017-03-16 Sk Techx Co., Ltd. Method for updating library, and terminal and system therefor
CN111258614A (en) * 2020-05-06 2020-06-09 深圳开源互联网安全技术有限公司 Method, system, equipment and storage medium for detecting upgrade exception of project third-party library
CN113515297A (en) * 2021-08-12 2021-10-19 深圳市晨北科技有限公司 Version updating method and device, electronic equipment and storage medium
CN114816370A (en) * 2022-06-29 2022-07-29 广州易方信息科技股份有限公司 Method for splitting SDK static library at iOS end at any fine granularity
CN114840195A (en) * 2022-06-29 2022-08-02 广州易方信息科技股份有限公司 Privatization method for iOS SDK static library
CN115098158A (en) * 2022-07-21 2022-09-23 康键信息技术(深圳)有限公司 SDK packaging method and device, computer equipment and storage medium
CN115934198A (en) * 2022-12-16 2023-04-07 深圳依时货拉拉科技有限公司 SDK loading method, device, equipment and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨智;: "一种软件版本管理模型的设计", 电子技术与软件工程, no. 11 *

Also Published As

Publication number Publication date
CN116560699B (en) 2024-02-13

Similar Documents

Publication Publication Date Title
US11733975B1 (en) System and method for migrating legacy software to a system common architecture
CN111158674B (en) Component management method, system, device and storage medium
CN110795078B (en) Architecture method of APP engineering operation system based on IOS system
US8578371B2 (en) Software distribution method and system with automatic prerequisite installation
US8839185B2 (en) Method for generating a transport track through a software system landscape and computer system with a software system landscape and a transport track
CN108319656A (en) Realize the method, apparatus and calculate node and system that gray scale is issued
US8918709B2 (en) Object templates for data-driven applications
KR20110111341A (en) Efficient patching
KR20060045811A (en) Efficient patching
US7877730B2 (en) Method for effecting a preliminary software service in a productive system of a software system landscape and computer system
CN114489704A (en) Version compiling and deploying method and device based on strategy
CN116560699B (en) Method and device for quick repair through SDK version mixing
CN110737426B (en) Program block creating method, program block creating device, computer equipment and storage medium
CN111078527B (en) Auxiliary system and method for pressure testing of server
CN111782336A (en) Cloud migration method and device of hybrid cloud and computer-storable medium
CN116974597A (en) Information processing method and system based on toolkit, storage medium and terminal equipment
US20120159445A1 (en) Aspect and system landscape capability-driven automatic testing of software applications
CN113469740B (en) Advertisement data acquisition method, device, equipment and storage medium
CN117667643A (en) Evolution method and device of test case set, computing device cluster and storage medium
US20210349808A1 (en) Source quality check service
CN114489854A (en) Modularized software development method, system, device and storage medium
CN114253599A (en) Version deployment method, version deployment device, electronic device and storage medium
CN118034679B (en) CICD method and system based on low-code development platform
CN114090419A (en) Program testing method, system, device, electronic equipment and storage medium
CN113377400A (en) Software upgrading method and device, storage medium and electronic equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant