CN110806888A - Application program upgrading method and device and electronic equipment - Google Patents
Application program upgrading method and device and electronic equipment Download PDFInfo
- Publication number
- CN110806888A CN110806888A CN201911340761.0A CN201911340761A CN110806888A CN 110806888 A CN110806888 A CN 110806888A CN 201911340761 A CN201911340761 A CN 201911340761A CN 110806888 A CN110806888 A CN 110806888A
- Authority
- CN
- China
- Prior art keywords
- executable file
- main executable
- application program
- upgrading
- name
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000009434 installation Methods 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004140 cleaning Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
The embodiment of the invention provides an application program upgrading method and device and electronic equipment, and belongs to the technical field of application programs. The application program upgrading method comprises the following steps: downloading and decompressing an upgrade installation package of the target application program to acquire a new version program file of the target application program; storing a second main executable file in the new version program file in a first folder; storing second program files except the second main executable file in the new version program files in a second folder; and under the condition of meeting the preset condition, replacing the first main executable file with the second main executable file to finish upgrading. The technical scheme provided by the embodiment of the invention can reduce the influence of the upgrading operation on the application program used by the user.
Description
Technical Field
The present invention relates to the technical field of application programs, and in particular, to an application program upgrading method and apparatus, and an electronic device.
Background
With the development of scientific technology and the increase in user demand, application programs having various functions have been developed. The development of the application program is convenient for users to use. For example, the application program with the function of beautifying can enable the user to obtain more beautiful portrait photos; for another example, the application program with online payment can facilitate daily fee payment of the user, and cash use is omitted.
With the development of the original functions and the new functions of the application program by the developer, a new version of the application program is released. In this case, if the user wants to enjoy a better function of the application, the application needs to be upgraded.
In the prior art, when a new version application program is installed, an upgrade installation package needs to be downloaded and decompressed to obtain a new version program file, and for version upgrade, the new version program file is generally stored in a folder where an old version program file is located by default, so that the old version program file needs to be deleted first, then the upgrade installation package is decompressed to obtain the new version program file, and the new version program file is stored in the folder. For the upgrading process in the prior art, the processing process is complex and time-consuming. Before the upgrade is not completed, the user cannot use the application program, and the user has a long waiting time to influence the use of the application program by the user.
Disclosure of Invention
The invention provides an upgrading method and device of an application program and electronic equipment, and aims to solve the problem that the upgrading of the current application program is long in time consumption to a certain extent.
In a first aspect of the present invention, there is provided an application program upgrading method, including:
downloading and decompressing an upgrade installation package of a target application program to acquire a new version program file of the target application program;
storing a second main executable file in the new version program file in a first folder; storing second program files, except the second main executable file, in the new version program files in a second folder; before the second main executable file is stored in the first folder, a first main executable file in an old version program file is also stored in the first folder, and the name of the first main executable file is different from that of the second main executable file in the first folder; storing first program files except the first main executable file in a third folder in the old version program files, wherein the second folder and the third folder are different folders;
under the condition that a preset condition is met, replacing the first main executable file with the second main executable file to finish upgrading; wherein the preset conditions at least include: detecting a closing operation of the target application program or detecting a starting operation of the target application program.
Optionally, the storing the second main executable file in the new version program file in the first folder includes:
modifying the first name of the second main executable file into a second name;
storing the second main executable file with the modified name and the first main executable file into the first folder; wherein the name of the first main executable file is the first name.
Optionally, before the modifying the first name of the second main executable file into the second name, the upgrading method of the application program further includes:
detecting the running state of the target application program;
and under the condition that the target application program is detected to be in a starting state, executing the step of modifying the first name of the second main executable file into a second name.
Optionally, in the case that a preset condition is met, replacing the first main executable file with the second main executable file to complete upgrading, including:
and under the condition that the preset condition is met, modifying the first name of the first main executable file into a third name, modifying the second name of the second main executable file into the first name, and finishing upgrading.
Optionally, after completing the upgrade, the method for upgrading the application program further includes:
and deleting the old version program file and the third folder under the condition that the upgraded target application program is detected to be in a closed state.
In a second aspect of the present invention, there is provided an apparatus for upgrading an application program, including:
the first upgrading module is used for downloading and decompressing an upgrading installation package of a target application program and acquiring a new version program file of the target application program;
the second upgrading module is used for storing a second main executable file in the new version program file into a first folder; storing second program files, except the second main executable file, in the new version program files in a second folder; before the second main executable file is stored in the first folder, a first main executable file in an old version program file is also stored in the first folder, and the name of the first main executable file is different from that of the second main executable file in the first folder; storing first program files except the first main executable file in a third folder in the old version program files, wherein the second folder and the third folder are different folders;
the third upgrading module is used for replacing the first main executable file with the second main executable file under the condition that a preset condition is met, and upgrading is completed; wherein the preset conditions at least include: detecting a closing operation of the target application program or detecting a starting operation of the target application program.
Optionally, the second upgrade module includes:
the first upgrading unit is used for modifying the first name of the second main executable file into a second name;
the second upgrading unit is used for storing the second main executable file with the modified name and the first main executable file into the first folder; wherein the name of the first main executable file is the first name.
Optionally, the apparatus for upgrading an application further includes:
the detection module is used for detecting the running state of the target application program;
and the control module is used for controlling the first upgrading unit to execute the step of modifying the first name of the second main executable file into a second name under the condition that the detection module detects that the target application program is in a starting state.
Optionally, the third upgrade module includes:
and the third upgrading unit is used for modifying the first name of the first main executable file into a third name and modifying the second name of the second main executable file into the first name under the condition that the preset condition is met, so that upgrading is completed.
Optionally, the apparatus for upgrading an application further includes:
and the cleaning module is used for deleting the old version program file and the third folder under the condition that the upgraded target application program is detected to be in a closed state.
In a third aspect of the present invention, there is also provided an electronic device, including a processor, a communication interface, a memory, and a communication bus, where the processor, the communication interface, and the memory complete communication with each other through the communication bus;
a memory for storing a computer program;
and the processor is used for realizing the steps in the upgrading method of the application program when executing the program stored in the memory.
In a fourth aspect implemented by the present invention, there is also provided a computer-readable storage medium, on which a computer program is stored, which when executed by a processor, implements the method for upgrading an application program as described above.
In a fifth aspect of the embodiments of the present invention, there is also provided a computer program product containing instructions which, when run on a computer, cause the computer to perform the method for upgrading an application program as described above.
Aiming at the prior art, the invention has the following advantages:
in the embodiment of the invention, when the application program is upgraded, the upgrade installation package is downloaded and decompressed to obtain the new version program file. The main executable program in the new version program file and the main executable program in the old version program file are stored in the same folder; and the program files except the main executable file in the old version program file and the program files except the main executable file in the new version program file are respectively stored in different folders. Because the first program file and the second program file are not in the same folder, the first program file and the second program file do not conflict with each other, and the names of the main executable files of the new version and the old version are different, so the first program file and the second program file do not conflict with each other, and the new version program file does not influence the operation of the old version application program.
For the subsequent upgrading process provided by the embodiment of the invention, under the condition of meeting the preset condition, the upgrading can be completed by replacing the old version of the main executable file with the new version of the main executable file, and the upgrading process is simple, fast and short in time consumption.
As can be seen from the foregoing analysis, the application upgrading method provided in the embodiment of the present invention may complete part of the upgrading operations, and then complete the remaining upgrading operations when a suitable time is reached. For the partial upgrading operation which is completed firstly, the partial upgrading operation can be completed in the starting state of the application program and can also be completed in the closing state of the application program, and the use of the application program by a user is not influenced; and for the upgrading operation performed when the appropriate time is waited for, only the main executable file of the new version is needed to replace the main executable file of the old version, the upgrading speed is high, the time consumption is short, and the influence of the upgrading operation on the use of the application program by the user can be reduced no matter the time is the exit of the application program or the starting operation of the application program.
The foregoing description is only an overview of the technical solutions of the present invention, and the embodiments of the present invention are described below in order to make the technical means of the present invention more clearly understood and to make the above and other objects, features, and advantages of the present invention more clearly understandable.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments will be briefly described below.
Fig. 1 is a schematic flowchart of an application program upgrading method according to an embodiment of the present invention;
fig. 2 is a schematic flowchart of another method for upgrading an application according to an embodiment of the present invention;
FIG. 3 is a schematic block diagram of a system provided by an embodiment of the present invention;
FIG. 4 is a schematic flow chart of an example provided by an embodiment of the present invention;
fig. 5 is a block diagram of an application program upgrading apparatus according to an embodiment of the present invention;
fig. 6 is a block diagram of an upgrading apparatus for an application according to another embodiment of the present invention;
fig. 7 is a block diagram of an electronic device provided in an embodiment of the invention.
Detailed Description
Exemplary embodiments of the present invention will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the invention are shown in the drawings, it should be understood that the invention can be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
Fig. 1 is a schematic flowchart of an application program upgrading method according to an embodiment of the present invention. As shown in fig. 1, the method for upgrading the application program may include:
step 101: and downloading and decompressing the upgrade installation package of the target application program to acquire a new version program file of the target application program.
In the embodiment of the invention, when the target application program is detected to have a new version, prompt information can be generated and displayed to remind a user whether to confirm the upgrade, the upgrade installation package is downloaded when the upgrade confirmation operation input by the user is received, and after the upgrade installation package is downloaded, the decompression is automatically carried out to obtain a new version program file of the target application program so as to carry out the version upgrade; and when the target application program is detected to have a new version, the upgrade installation package can be automatically downloaded and decompressed, and a new version program file of the target application program is obtained. In particular, the method may be selected according to actual requirements, and the embodiment of the present invention does not limit this.
The target application described herein may be any application installed in the electronic device. Electronic devices described herein include, but are not limited to: notebook computers, desktop computers, vehicle-mounted terminals, mobile phones, tablet computers, personal digital assistants, wearable devices, and the like.
Step 102: storing a second main executable file in the new version program file in a first folder; and storing the second program files except the second main executable file in the new version program files in a second folder.
Before the second main executable file is stored in the first folder, the first main executable file in the old version program file is also saved in the first folder. In the first folder, the name of the first main executable file is different from the name of the second main executable file. The first program files except the first main executable file in the old version program files are stored in a third folder, and the second folder and the third folder are different folders. The old version program file is a program file of a target application program stored in the electronic device before the new version program file is obtained.
In the embodiment of the invention, the main executable files in the new version program file and the old version program file are stored in the same folder (namely the first folder), and the conflict between the two files is avoided through different names. And other program files except the main executable file in the new and old version program files are respectively stored in different folders to avoid the conflict between the files. Therefore, the new version program file does not influence the operation of the old version application program, so that the upgrading process is not limited to be carried out in the closed state of the old version application program, but also can be carried out in the operation process of the old version application program, the use of the old version application program by a user is not influenced, and the subsequent upgrading process does not need to be carried out immediately, and the upgrading is finished after waiting for a proper time. In addition, in the embodiment of the invention, the processing process of isolating the program file is simpler, the data processing amount is small, and the time consumption is short.
Optionally, the first main executable file and the second main executable file are stored in an installation directory, and the first program file and the second program file are stored in a working directory in the installation directory, that is, the first folder, the second folder, and the third folder are different folders. When the upgrade installation package is decompressed, a folder (namely a second folder) for storing the new version program file is created under the installation directory, and then the new version program file is stored in the folder. And establishing an association relationship between the first main executable file and the first program file, and establishing an association relationship between the second main executable file and the second program file.
Step 103: and under the condition of meeting the preset condition, replacing the first main executable file with the second main executable file to finish upgrading.
The preset conditions described herein may be: detecting the closing operation of the target application program, namely: the second main executable file can replace the first main executable file to complete the upgrade when detecting that the user actively quits the target application program of the old version. The user actively quits the target application program, which indicates that the user does not need to use the target application program at this time, so that the use of the target application program by the user is not influenced by performing the rest of upgrading operation at this time.
The preset conditions described herein may also be: detecting the starting operation of the target application program, namely: or, in the case that it is detected that the program entry of the old version of the target application program is triggered, before the first main executable file of the old version is not loaded, replacing the first main executable file with the second main executable file, and completing the upgrade. At this time, the second main executable file can be directly loaded, that is, the new version program file is started to work, and the operation parameters of the user are transferred to the new version program file. Due to the switching operation between the new version and the old version, the processing process is simple, the data volume is small, and therefore the method can be completed quickly. Experiments prove that the method can be completed only by 200ms generally, the consumed time is short, the user is difficult to perceive, and the waiting time is short. Therefore, even if the user quits the target application program due to misoperation and restarts the application program in a short time, the use of the application program by the user is not influenced due to program upgrading, and the user can directly use the application program of a new version when restarting the application program.
Optionally, replacing the first main executable file with the second main executable file may be: and deleting the first main executable file and reserving the second main executable file.
The application upgrading method provided by the embodiment of the invention can complete part of upgrading operation firstly, and then complete the rest of upgrading operation when the appropriate time is reached. For the partial upgrading operation which is completed firstly, the partial upgrading operation can be completed in the starting state of the application program and can also be completed in the closing state of the application program, and the use of the application program by a user is not influenced; and for the upgrading operation performed when waiting to reach a proper time, only the main executable file of the new version is needed to replace the main executable file of the old version, the upgrading speed is high, the time consumption is short, the influence of the upgrading operation on the application program used by the user can be reduced no matter the time is the exit of the application program or the starting operation of the application program is detected, the upgrading of the application program can be completed unconsciously by the user, and the user can be upgraded invisibly.
Fig. 2 is a schematic flowchart of another method for upgrading an application program according to an embodiment of the present invention. As shown in fig. 2, the method for upgrading the application program may include:
step 201: and downloading and decompressing the upgrade installation package of the target application program to acquire a new version program file of the target application program.
In the embodiment of the invention, when the target application program is detected to have a new version, a prompt message can be generated and displayed to remind a user whether to confirm the upgrade, and when the upgrade confirmation operation input by the user is received, the upgrade installation package is downloaded. And after the upgrade installation package is downloaded, automatically decompressing to obtain a new version program file of the target application program so as to upgrade the version. In the embodiment of the invention, when the target application program is detected to have a new version, the upgrade installation package can be automatically downloaded and decompressed, and a new version program file of the target application program is obtained so as to carry out version upgrade. It is understood that the two ways described above can be selected according to actual requirements, and the embodiments of the present invention do not limit this.
The target application described herein may be any application installed in the electronic device. Electronic devices described herein include, but are not limited to: notebook computers, desktop computers, vehicle-mounted terminals, mobile phones, tablet computers, personal digital assistants, wearable devices, and the like.
Step 202: and modifying the first name of the second main executable file into a second name, and storing the modified second main executable file and the first main executable file in the first folder.
The name of the first main executable file is a first name, and the first name is a main executable file in an old version program file of the target application program. The second main executable file is a main executable file in the new version program file of the target application program.
The main executable generally has a unique and identical name, whether it is an old version application or a new version application. When the application program is started, the main executable program is determined and loaded according to the unique name. For example, as shown in fig. 3, program entries for applications in a personal computer, such as desktop shortcuts, start menus, command lines, opening modes, etc., are associated with the main executable program having the unique name, i.e., the main executable program having the unique name is loaded when the applications are entered through the program entries. Therefore, the first main executable file and the second main executable file originally have the same name, but in order to enable the two files to be stored in the same folder at the same time without conflict, in the embodiment of the invention, the first name of the second main executable file is modified into the second name, and then the second main executable file modified into the second name and the first main executable file with the first name are stored in the first folder. For example, the first and second main executable file original names are: exe (i.e., first name), in order to allow two files to be stored in the same folder at the same time without conflict, the name of the second main executable file may be modified to: exe (i.e., second name), while the first main executable retains the original name. As shown in fig. 3, xyz.exe in the figure is a first main executable file, xyz _ new.exe in the figure is a second main executable file, folders in which xyz.exe and xyz _ new.exe are located are first folders, 1.0.0.1 in the figure is a third folder, and 1.0.0.2 in the figure is a second folder.
Alternatively, when modifying the file name of the second main executable file, the following rule may be set: the second main executable file is identical to the file name body of the first main executable file, for example, the file name bodies of the first main executable file are all 'xyz', and the file name of the second main executable file is added with a recognizable suffix, for example, 'new', compared with the file name of the first main executable file, so that the upgrading state of the target application program can be directly and quickly recognized in the upgrading process.
Step 203: and storing the second program files except the second main executable file in the new version program files in a second folder.
And storing the first program files except the first main executable file in the old version program files in a third folder, wherein the second folder and the third folder are different folders.
In the embodiment of the invention, the main executable files in the new version program file and the old version program file are stored in the same folder (namely the first folder), and the conflict between the two files is avoided through different names. And other program files except the main executable file in the new and old version program files are respectively stored in different folders to avoid the conflict between the files. Therefore, the new version program file does not influence the operation of the old version application program, so that the upgrading process is not limited to be carried out in the closed state of the old version application program, but also can be carried out in the operation process of the old version application program, the use of the old version application program by a user is not influenced, and the subsequent upgrading process does not need to be carried out immediately, and the upgrading is finished after waiting for a proper time. In addition, in the embodiment of the invention, the processing process of isolating the program file is simpler, the data processing amount is small, and the time consumption is short.
Step 204: and under the condition of meeting the preset condition, modifying the first name of the first main executable file into a third name, modifying the second name of the second main executable file into the first name, and finishing upgrading.
In the embodiment of the present invention, when performing an upgrade, a first name of a first main executable file is modified to a third name, a second name of a second main executable file is modified to the first name, for example, the first name xyz.exe of the first main executable file is modified to: and xyz _ old.exe, modifying the second name xyz _ new.exe of the second main executable file into the first name: exe, thereby causing the second main executable to replace the first main executable. Thus, when the target application program is restarted, the main executable file of the new version can be directly loaded.
Wherein the first name xyz.exe of the first main executable file is modified to: the purpose of persisting xyz _ old.exe is to: the first main executable file is used as a backup file, so that the first main executable file can be restarted when the upgrading fails, and the normal operation of the target application program is ensured.
The preset conditions described herein may be: detecting the closing operation of the target application program, namely: the second main executable file can replace the first main executable file to complete the upgrade when detecting that the user actively quits the target application program of the old version. The user actively quits the target application program, which indicates that the user does not need to use the target application program at this time, so that the use of the target application program by the user is not influenced by performing the rest of upgrading operation at this time.
The preset conditions described herein may also be: detecting the starting operation of the target application program, namely: or, in the case that it is detected that the program entry of the old version of the target application program is triggered, before the first main executable file of the old version is not loaded, replacing the first main executable file with the second main executable file, and completing the upgrade. At this time, the second main executable file can be directly loaded, that is, the new version program file is started to work, and the operation parameters of the user are transferred to the new version program file. Due to the switching operation between the new version and the old version, the processing process is simple, the data volume is small, and therefore the method can be completed quickly. Experiments prove that the method can be completed only by 200ms generally, the consumed time is short, the user is difficult to perceive, and the waiting time is short. Therefore, even if the user quits the target application program due to misoperation and restarts the application program in a short time, the use of the application program by the user is not influenced due to program upgrading, and the user can directly use the application program of a new version when restarting the application program, so that the user can realize the senseless upgrading.
The application upgrading method provided by the embodiment of the invention can complete part of upgrading operation firstly, and then complete the rest of upgrading operation when the appropriate time is reached. For the partial upgrading operation which is completed firstly, the partial upgrading operation can be completed in the starting state of the application program and can also be completed in the closing state of the application program, and the use of the application program by a user is not influenced; and for the upgrading operation performed when waiting to reach a proper time, only the main executable file of the new version is needed to replace the main executable file of the old version, the upgrading speed is high, the time consumption is short, the influence of the upgrading operation on the application program used by the user can be reduced no matter the time is the exit of the application program or the starting operation of the application program is detected, the upgrading of the application program can be completed unconsciously by the user, and the user can be upgraded invisibly.
Optionally, the first main executable file and the second main executable file are stored in an installation directory, and the first program file and the second program file are stored in a working directory in the installation directory, that is, the first folder, the second folder, and the third folder are different folders. When the upgrade installation package is decompressed, a folder (namely a second folder) for storing the new version program file is created under the installation directory, and then the new version program file is stored in the folder. And establishing an association relationship between the first main executable file and the first program file, and establishing an association relationship between the second main executable file and the second program file.
Optionally, before modifying the first name of the second main executable file into the second name, the method for upgrading the application program further includes:
in the embodiment of the invention, before the first name of the second main executable file is modified into the second name, the running state of the target application program can be detected. And under the condition that the target application program is detected to be in the starting state, modifying the first name of the second main executable file into a second name.
Under the condition that the target application program is in a closed state, the second main executable file can directly replace the first main executable file, namely, the first name xyz.exe of the first main executable file can be directly modified into: xyz _ old.exe, and the second main executable file is directly stored under the installation directory under the first name xyz.exe without performing the step of modifying the first name to the second name. However, when the target application program is in the starting state, the second main executable file cannot directly replace the first main executable file, and the step of modifying the first name of the second main executable file into the second name is performed at this time.
Optionally, after completing the upgrade, the method for upgrading the application program further includes: and deleting the old version program file and the second folder under the condition that the upgraded target application program is detected to be in a closed state.
In the embodiment of the present invention, in order to avoid occupation of the old version program file on the storage space, under the condition that the upgrade is successful and the upgraded target application program is in the closed state, a cleaning operation is performed to delete the old version program file and the folder (i.e., the third folder) storing the old version program file, so as to reduce occupation of the files on the memory space of the electronic device. The purpose of cleaning operation when the upgraded target application program is in a closed state is as follows: the problem that the user experiences when using the application program due to the fact that competitive consumption of resources such as a CPU (central processing unit), a memory and the like caused by cleaning operation is generated in the process of using the target application program is avoided.
In order to better understand the technical solutions provided by the embodiments of the present invention, an example is described below.
As shown in fig. 4, this example includes:
As shown in fig. 3, the executable file update.exe in the old version program file of the application program a may call update.dll, perform checking of the upgrade condition, and download the upgrade installation package when the upgrade condition is satisfied. Wherein, update.exe is an upgrading main program, and update.dll is a calling program for realizing upgrading service.
As shown in fig. 3, after the upgrade installation package is downloaded, the upgrade installation package is decompressed through the upgrade installation package executable file (i.e., upgrade package. exe), so as to obtain a new version program file, and a folder named 1.0.0.2 is generated, and all the program files in the new version program file except for the second main executable file xyz.
Program files other than the first main executable file xyz.exe among the old version program files of the application program a are stored in a folder named 1.0.0.1. The first main executable file xyz.
Step 403: the operating state of the application a is determined, and then step 404 or step 405 is entered.
Step 404: if the application program A is detected to be in the closed state, the second main executable file xyz.
The second main executable file can replace the first main executable file in at least two ways as follows:
the first is that: the first main executable file xyz.exe under the installation directory can be directly deleted, the second main executable file xyz.exe replaces the first main executable file xyz.exe and is left under the installation directory to be used as a key conflict file during next version update, and the upgrading process is completed.
Secondly, the following steps: the name xyz.exe of the first main executable file may also be modified to: and the xyz _ old.exe is used as a backup, the second main executable file xyz.exe replaces the first main executable file and is reserved in the installation directory to be used as a key conflict file during next version updating, and the upgrading process is completed.
Wherein, when the second main executable file replaces the first main executable file, the process can be completed through update.
Step 405: if the application program A is detected to be in the starting state, modifying the name xyz.exe of the second main executable file to be: exe, then step 406 or step 407.
When the application program a is in a start state, the second main executable file xyz.exe cannot replace the first main executable file xyz.exe, and the upgrade package exe may modify the name xyz.exe of the second main executable file to: xyz _ new.exe, and storing the second main executable file xyz _ new.exe in the same folder as the first main executable file xyz.exe.
Step 406: and under the condition that the closing operation of the application program A is detected, modifying the name xyz.exe of the first main executable file into xyz _ old.exe, modifying the name xyz _ new.exe of the second main executable file into xyz.exe, and replacing the first main executable file with the second main executable file to finish the upgrading process.
As shown in fig. 3, when the detection application program exits, update.exe in the new version program file is called, so that the second main executable file replaces the first main executable file, and the upgrade process is completed.
Step 407: if the starting operation of the application program A is detected, the name xyz.exe of the first main executable file is modified to xyz _ old.exe, the name xyz _ new.exe of the second main executable file is modified to xyz.exe, the second main executable file replaces the first main executable file, and the parameters of the user operation are transferred to the new version program file.
Sometimes, the upgrade may not be performed at a time of waiting for the shutdown operation of the application program a, and if the application program a is still in the startup state, the user directly shuts down the electronic device, and in this case, the upgrade may be continued when the application program a is restarted. At this time, if it is detected that the second main executable file xyz _ new.exe exists, the update.exe in the new version program file is called, so that the second main executable file replaces the first main executable file, and the upgrading process is completed. In this way, although the user starts the old version application program, the user really uses the new version application program in the starting process of the application program because the upgrading is completed in the starting process, and the whole process does not need user intervention operation and consumes less time.
Finally, it should be noted that main.dll in fig. 3 is a main calling program, and is mainly used for implementing program services, such as a starting process, page interaction, a calling process, and the like.
In summary, the application upgrading method provided in the embodiment of the present invention may complete part of the upgrading operations, and then complete the remaining upgrading operations after waiting for a suitable time. For the partial upgrading operation which is completed firstly, the partial upgrading operation can be completed in the starting state of the application program and can also be completed in the closing state of the application program, and the use of the application program by a user is not influenced; and for the upgrading operation performed when waiting to reach a proper time, only the main executable file of the new version is needed to replace the main executable file of the old version, the upgrading speed is high, the time consumption is short, the influence of the upgrading operation on the application program used by the user can be reduced no matter the time is the exit of the application program or the starting operation of the application program is detected, the upgrading of the application program can be completed unconsciously by the user, and the user can be upgraded invisibly.
It should be noted that, for simplicity of description, the method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present invention is not limited by the illustrated order of acts, as some steps may occur in other orders or concurrently in accordance with the embodiments of the present invention. Further, those skilled in the art will appreciate that the embodiments described in the specification are presently preferred and that no particular act is required to implement the invention.
Fig. 5 is a block diagram of an application upgrading apparatus according to an embodiment of the present invention, and as shown in fig. 5, the image processing apparatus 500 may include:
the first upgrade module 501 is configured to download and decompress an upgrade installation package of a target application program, and obtain a new version program file of the target application program.
A second upgrade module 502, configured to store a second main executable file in the new version program file in a first folder; and storing second program files except the second main executable file in the new version program files in a second folder.
Before the second main executable file is stored in the first folder, a first main executable file in an old version program file is also stored in the first folder, the name of the first main executable file is different from that of the second main executable file in the first folder, the first program files except the first main executable file in the old version program file are stored in a third folder, and the second folder and the third folder are different folders.
A third upgrading module 503, configured to replace the first main executable file with the second main executable file to complete upgrading when a preset condition is met.
Wherein the preset conditions at least include: detecting a closing operation of the target application program or detecting a starting operation of the target application program.
The application upgrading device provided by the embodiment of the invention can complete part of upgrading operation firstly, and then complete the rest of upgrading operation when the appropriate time is reached. For the partial upgrading operation which is completed firstly, the partial upgrading operation can be completed in the starting state of the application program and can also be completed in the closing state of the application program, and the use of the application program by a user is not influenced; and for the upgrading operation performed when waiting to reach a proper time, only the main executable file of the new version is needed to replace the main executable file of the old version, the upgrading speed is high, the time consumption is short, the influence of the upgrading operation on the application program used by the user can be reduced no matter the time is the exit of the application program or the starting operation of the application program is detected, the upgrading of the application program can be completed unconsciously by the user, and the user can be upgraded invisibly.
Fig. 6 is a block diagram of an upgrading apparatus for another application according to an embodiment of the present invention, and as shown in fig. 6, the image processing apparatus 600 may include:
the first upgrade module 601 is configured to download and decompress an upgrade installation package of a target application program, and obtain a new version program file of the target application program.
A second upgrade module 602, configured to store a second main executable file in the new version program file in a first folder; and storing second program files except the second main executable file in the new version program files in a second folder.
Before the second main executable file is stored in the first folder, a first main executable file in an old version program file is also stored in the first folder, the name of the first main executable file is different from that of the second main executable file in the first folder, the first program files except the first main executable file in the old version program file are stored in a third folder, and the second folder and the third folder are different folders.
A third upgrading module 603, configured to replace the first main executable file with the second main executable file to complete upgrading when a preset condition is met.
Wherein the preset conditions at least include: detecting a closing operation of the target application program or detecting a starting operation of the target application program.
Optionally, the second upgrade module 602 includes:
a first upgrade unit 6021 configured to modify the first name of the second main executable file into a second name.
A second upgrade unit 6022, configured to store the second main executable file with the modified name in the first folder together with the first main executable file.
Wherein the name of the first main executable file is the first name.
Optionally, the apparatus for upgrading an application 600 further includes:
a detecting module 604, configured to detect an operating state of the target application.
A control module 605, configured to control the first upgrade unit 6021 to execute the step of modifying the first name of the second main executable file into a second name when the detection module 604 detects that the target application program is in a start state.
Optionally, the third upgrade module 603 includes:
a third upgrading unit 6031, configured to modify the first name of the first main executable file into a third name and modify the second name of the second main executable file into the first name when the preset condition is met, and complete upgrading.
Optionally, the apparatus for upgrading an application 600 further includes:
a cleaning module 606, configured to delete the old version program file and the third folder when it is detected that the upgraded target application program is in a closed state.
The application upgrading device provided by the embodiment of the invention can complete part of upgrading operation firstly, and then complete the rest of upgrading operation when the appropriate time is reached. For the partial upgrading operation which is completed firstly, the partial upgrading operation can be completed in the starting state of the application program and can also be completed in the closing state of the application program, and the use of the application program by a user is not influenced; and for the upgrading operation performed when waiting to reach a proper time, only the main executable file of the new version is needed to replace the main executable file of the old version, the upgrading speed is high, the time consumption is short, the influence of the upgrading operation on the application program used by the user can be reduced no matter the time is the exit of the application program or the starting operation of the application program is detected, the upgrading of the application program can be completed unconsciously by the user, and the user can be upgraded invisibly.
For the above device embodiments, since they are basically similar to the method embodiments, reference may be made to the partial description of the method embodiments for relevant points.
An embodiment of the present invention further provides an electronic device, as shown in fig. 7, including a processor 701, a communication interface 702, a memory 703 and a communication bus 704, where the processor 701, the communication interface 702, and the memory 703 complete mutual communication through the communication bus 704.
A memory 703 for storing a computer program;
the processor 701 is configured to implement the following steps when executing the program stored in the memory 703:
downloading and decompressing an upgrade installation package of a target application program to acquire a new version program file of the target application program;
storing a second main executable file in the new version program file in a first folder; storing second program files, except the second main executable file, in the new version program files in a second folder; before the second main executable file is stored in the first folder, a first main executable file in an old version program file is also stored in the first folder, the name of the first main executable file is different from that of the second main executable file in the first folder, the first program files except the first main executable file in the old version program file are stored in a third folder, and the second folder and the third folder are different folders;
under the condition that a preset condition is met, replacing the first main executable file with the second main executable file to finish upgrading; wherein the preset conditions at least include: and detecting the closing of the target application program or detecting the starting operation of the target application program.
Optionally, the storing, in a first folder, a first main executable file in the old version program file of the target application program and a second main executable file in the new version program file includes:
modifying the first name of the second main executable file into a second name;
storing the second main executable file with the modified name and the first main executable file into the first folder; wherein the name of the first main executable file is the first name.
Optionally, before the first name of the second main executable file is modified to the second name, when the processor 701 executes the program stored in the memory 703, the following steps are further implemented:
detecting the running state of the target application program;
and under the condition that the target application program is detected to be in a starting state, executing the step of modifying the first name of the second main executable file into a second name.
Optionally, in the case that a preset condition is met, replacing the first main executable file with the second main executable file to complete upgrading, including:
and under the condition that the preset condition is met, modifying the first name of the first main executable file into a third name, modifying the second name of the second main executable file into the first name, and finishing upgrading.
Optionally, after the upgrade is completed, when the processor 701 executes the program stored in the memory 703, the following steps are further implemented:
and deleting the old version program file and the third folder under the condition that the upgraded target application program is detected to be in a closed state.
The communication bus mentioned in the electronic device may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The communication bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown, but this does not mean that there is only one bus or one type of bus.
The communication interface is used for communication between the terminal and other equipment.
The Memory may include a Random Access Memory (RAM) or a non-volatile Memory (non-volatile Memory), such as at least one disk Memory. Optionally, the memory may also be at least one memory device located remotely from the processor.
The Processor may be a general-purpose Processor, and includes a Central Processing Unit (CPU), a Network Processor (NP), and the like; the device can also be a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other Programmable logic device, a discrete Gate or transistor logic device, or a discrete hardware component.
In still another embodiment provided by the present invention, a computer-readable storage medium is further provided, which stores instructions that, when executed on a computer, cause the computer to execute the method for upgrading an application program described in the above embodiment.
In yet another embodiment provided by the present invention, a computer program product containing instructions is also provided, which when run on a computer, causes the computer to execute the method for upgrading an application program described in the above embodiment.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the invention to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., Solid State Disk (SSD)), among others.
It is noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
All the embodiments in the present specification are described in a related manner, and the same and similar parts among the embodiments may be referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only for the preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, improvement and the like made within the spirit and principle of the present invention are included in the protection scope of the present invention.
Claims (12)
1. An application program upgrading method, comprising:
downloading and decompressing an upgrade installation package of a target application program to acquire a new version program file of the target application program;
storing a second main executable file in the new version program file in a first folder; storing second program files, except the second main executable file, in the new version program files in a second folder; before the second main executable file is stored in the first folder, a first main executable file in an old version program file is also stored in the first folder, and the name of the first main executable file is different from that of the second main executable file in the first folder; storing first program files except the first main executable file in a third folder in the old version program files, wherein the second folder and the third folder are different folders;
under the condition that a preset condition is met, replacing the first main executable file with the second main executable file to finish upgrading; wherein the preset conditions at least include: detecting a closing operation of the target application program or detecting a starting operation of the target application program.
2. The method for upgrading an application program according to claim 1, wherein storing the second main executable file in the new version program file in the first folder comprises:
modifying the first name of the second main executable file into a second name;
storing the second main executable file with the modified name and the first main executable file in the first folder; wherein the name of the first main executable file is the first name.
3. The method for upgrading an application program according to claim 2, wherein before the modifying the first name of the second main executable file into the second name, the method for upgrading an application program further comprises:
detecting the running state of the target application program;
and under the condition that the target application program is detected to be in a starting state, executing the step of modifying the first name of the second main executable file into a second name.
4. The method for upgrading the application program according to claim 2, wherein in the case that a preset condition is met, replacing the first main executable file with the second main executable file to complete upgrading comprises:
and under the condition that the preset condition is met, modifying the first name of the first main executable file into a third name, modifying the second name of the second main executable file into the first name, and finishing upgrading.
5. The method for upgrading an application program according to claim 1, wherein after the upgrading is completed, the method for upgrading an application program further comprises:
and deleting the old version program file and the third folder under the condition that the upgraded target application program is detected to be in a closed state.
6. An apparatus for upgrading an application program, comprising:
the first upgrading module is used for downloading and decompressing an upgrading installation package of a target application program and acquiring a new version program file of the target application program;
the second upgrading module is used for storing a second main executable file in the new version program file into a first folder; storing second program files, except the second main executable file, in the new version program files in a second folder; before the second main executable file is stored in the first folder, a first main executable file in an old version program file is also stored in the first folder, and the name of the first main executable file is different from that of the second main executable file in the first folder; storing first program files except the first main executable file in a third folder in the old version program files, wherein the second folder and the third folder are different folders;
the third upgrading module is used for replacing the first main executable file with the second main executable file under the condition that a preset condition is met, and upgrading is completed; wherein the preset conditions at least include: detecting a closing operation of the target application program or detecting a starting operation of the target application program.
7. The apparatus for upgrading an application program according to claim 6, wherein the second upgrading module comprises:
the first upgrading unit is used for modifying the first name of the second main executable file into a second name;
the second upgrading unit is used for storing the second main executable file with the modified name and the first main executable file into the first folder; wherein the name of the first main executable file is the first name.
8. The apparatus for upgrading an application program according to claim 7, further comprising:
the detection module is used for detecting the running state of the target application program;
and the control module is used for controlling the first upgrading unit to execute the step of modifying the first name of the second main executable file into a second name under the condition that the detection module detects that the target application program is in a starting state.
9. The apparatus for upgrading an application program according to claim 7, wherein the third upgrading module comprises:
and the third upgrading unit is used for modifying the first name of the first main executable file into a third name and modifying the second name of the second main executable file into the first name under the condition that the preset condition is met, so that upgrading is completed.
10. The apparatus for upgrading an application program according to claim 6, further comprising:
and the cleaning module is used for deleting the old version program file and the third folder under the condition that the upgraded target application program is detected to be in a closed state.
11. An electronic device is characterized by comprising a processor, a communication interface, a memory and a communication bus, wherein the processor and the communication interface are used for realizing mutual communication by the memory through the communication bus;
a memory for storing a computer program;
a processor for implementing the steps of the method for upgrading an application program according to any one of claims 1 to 5 when executing the program stored in the memory.
12. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out a method of upgrading an application program as claimed in any one of claims 1 to 5.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911340761.0A CN110806888A (en) | 2019-12-23 | 2019-12-23 | Application program upgrading method and device and electronic equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911340761.0A CN110806888A (en) | 2019-12-23 | 2019-12-23 | Application program upgrading method and device and electronic equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110806888A true CN110806888A (en) | 2020-02-18 |
Family
ID=69493317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911340761.0A Pending CN110806888A (en) | 2019-12-23 | 2019-12-23 | Application program upgrading method and device and electronic equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110806888A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328284A (en) * | 2020-11-13 | 2021-02-05 | 杭州萤石软件有限公司 | Application program upgrading method, system, equipment and storage medium |
CN112346765A (en) * | 2020-11-06 | 2021-02-09 | 北京奇艺世纪科技有限公司 | Application program upgrading method and device, electronic equipment and readable storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955702A (en) * | 2011-08-23 | 2013-03-06 | 腾讯科技(深圳)有限公司 | Method and device for installing and upgrading software |
CN106502725A (en) * | 2016-09-30 | 2017-03-15 | 歌尔科技有限公司 | The upgrade method of application program, equipment and electronic equipment |
CN107239295A (en) * | 2016-03-29 | 2017-10-10 | 腾讯科技(深圳)有限公司 | The method and software updating apparatus of a kind of software upgrading |
CN107479933A (en) * | 2017-08-21 | 2017-12-15 | 惠州Tcl移动通信有限公司 | A kind of application program for mobile terminal upgrade method, storage device and mobile terminal |
CN107506221A (en) * | 2017-09-28 | 2017-12-22 | 阿里巴巴集团控股有限公司 | Application program updating method, apparatus and equipment |
-
2019
- 2019-12-23 CN CN201911340761.0A patent/CN110806888A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955702A (en) * | 2011-08-23 | 2013-03-06 | 腾讯科技(深圳)有限公司 | Method and device for installing and upgrading software |
CN107239295A (en) * | 2016-03-29 | 2017-10-10 | 腾讯科技(深圳)有限公司 | The method and software updating apparatus of a kind of software upgrading |
CN106502725A (en) * | 2016-09-30 | 2017-03-15 | 歌尔科技有限公司 | The upgrade method of application program, equipment and electronic equipment |
CN107479933A (en) * | 2017-08-21 | 2017-12-15 | 惠州Tcl移动通信有限公司 | A kind of application program for mobile terminal upgrade method, storage device and mobile terminal |
CN107506221A (en) * | 2017-09-28 | 2017-12-22 | 阿里巴巴集团控股有限公司 | Application program updating method, apparatus and equipment |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346765A (en) * | 2020-11-06 | 2021-02-09 | 北京奇艺世纪科技有限公司 | Application program upgrading method and device, electronic equipment and readable storage medium |
CN112346765B (en) * | 2020-11-06 | 2024-03-01 | 北京奇艺世纪科技有限公司 | Application program upgrading method and device, electronic equipment and readable storage medium |
CN112328284A (en) * | 2020-11-13 | 2021-02-05 | 杭州萤石软件有限公司 | Application program upgrading method, system, equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10242023B2 (en) | Programming model for synchronizing browser caches across devices and web services | |
US9098370B2 (en) | Apparatus and methods for improving uninstall process | |
US20150278033A1 (en) | Terminal and application restoring method | |
CN105867947A (en) | Data processing method and device after upgrades of preset applications | |
CN105740425A (en) | File storage method and apparatus | |
CN107291481B (en) | Component updating method, device and system | |
CN103631617A (en) | Method and device for unloading system application on terminal equipment | |
CN109522500B (en) | Webpage display method, device, terminal and storage medium | |
WO2002075531A1 (en) | Method for loading and executing an application in an embedded environment | |
US20210271491A1 (en) | Application processing method, device, electronic device and storage medium | |
CN109117153B (en) | Application processing method, device, terminal and storage medium | |
CN110806888A (en) | Application program upgrading method and device and electronic equipment | |
CN111666516A (en) | Page loading method and device, electronic equipment and storage medium | |
CN112486552A (en) | Server hot update method, device, equipment and storage medium | |
CN102968321A (en) | Application program installation device and application program installation method | |
CN112181467B (en) | Method and device for upgrading memory firmware of terminal, terminal and storage medium | |
CN111400091B (en) | Factory setting restoration method, factory setting restoration device and mobile terminal | |
CN106155808B (en) | Method and device for managing computer system resources | |
JP2007034623A (en) | Detection method for computer virus, program, recording medium with its program stored and detection device for computer virus | |
CN109408155B (en) | Application starting method and device | |
CN113138785A (en) | Application program updating method and device | |
CN109976790B (en) | Application updating method, device, terminal and storage medium | |
CN112667421A (en) | Authorization detection method, device, terminal and storage medium | |
CN113721959A (en) | Information processing method and device and electronic equipment | |
CN112100479A (en) | Application access method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200218 |