Vehicle update package processing method, electronic device and vehicle
By screening the high-frequency and new version software packages of the vehicle controller to generate differential update packages, the problems of low OTA upgrade efficiency and waste of storage resources are solved, and efficient OTA upgrades and resource optimization are achieved.
Patent Information
- Application Number
- CN202411360450.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-27
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2044-09-27
AI Technical Summary
As the number of vehicle controller software versions increases, OTA upgrade efficiency decreases, and storage space and computing resources are wasted.
By obtaining the attribute data of each version of the software package, the target software packages with high usage frequency and recent versions are screened out, and differential update packages are generated and stored only for these software packages, reducing the number of differential update packages, optimizing storage resource utilization, and sending the differential update packages directly to the vehicle end for upgrade.
It reduces storage costs, shortens user waiting time, and improves OTA update efficiency and user satisfaction.
Smart Images

Figure CN119987825B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of vehicle technology, and in particular to a method for processing a vehicle update package, an electronic device, and a vehicle. Background Art
[0002] With the development of intelligent connected vehicles, the Internet of Vehicles (IoV) is becoming increasingly important. Software updates for vehicle controllers (ECUs) are becoming increasingly rapid. Over-the-Air (OTA) technology provides an online upgrade solution, making it as convenient and efficient as updating mobile phone apps.
[0003] However, as the number of vehicle controller software versions (i.e., OTA update packages) increases, the efficiency of OTA upgrades has gradually decreased.
[0004] Therefore, this application is specially filed. Summary of the Invention
[0005] In view of this, the purpose of this application is to propose a vehicle update package processing method, electronic device and vehicle, which is conducive to improving the efficiency of vehicle OTA updates, reducing user waiting time, optimizing the utilization of server resources, reducing storage costs, and being more adaptable to fast-paced update iterations, thereby improving the update quality of vehicle software and user satisfaction.
[0006] Based on the above objectives, in a first aspect, the present application provides a method for processing a vehicle update package, comprising:
[0007] Get the attribute data of each version of the software package;
[0008] determining a target software package among multiple versions of software packages based on the attribute data;
[0009] Generate and store the corresponding differential update package for the target software package.
[0010] Here, the "multiple" in "multiple version software packages" does not refer to a part of all version software packages, but means that the number of all version software packages is multiple.
[0011] Furthermore, the attribute data includes usage frequency and version date, and determining a target software package from multiple versions of software packages based on the attribute data includes:
[0012] Determine the first candidate software package based on the usage frequency of each version of the software package;
[0013] Determine the second candidate software package based on the version date of each version software package;
[0014] The target software package is determined according to the first candidate software package and / or the second candidate software package.
[0015] Furthermore, determining the first candidate software package according to the usage frequency of each version of the software package includes:
[0016] Sort the software packages of each version in descending order of their frequency of use;
[0017] A first preset number of version software packages ranked at the top are determined as the first candidate software packages; or a version software package whose usage frequency reaches a frequency threshold is determined as the first candidate software package.
[0018] Furthermore, determining the second candidate software package according to the version date of each version software package includes:
[0019] Sort the software packages in descending order of their version dates.
[0020] A second preset number of version software packages ranked higher in the ranking are determined as the second candidate software packages; or, version software packages with version dates between the current time point and a historical time point are determined as the second candidate software packages.
[0021] Furthermore, determining the target software package according to the first candidate software package and / or the second candidate software package includes:
[0022] determining the first candidate software package as the target software package;
[0023] Alternatively, determining the second candidate software package as the target software package;
[0024] Alternatively, a union of the first candidate software package and the second candidate software package is determined as the target software package;
[0025] Alternatively, the intersection of the first candidate software package and the second candidate software package is determined as the target software package.
[0026] Furthermore, it also includes:
[0027] In response to the storage of differential update packages corresponding to non-target software packages other than the target software package, the differential update packages corresponding to the non-target software packages are deleted.
[0028] Furthermore, generating and storing a corresponding differential update package for the target software package includes:
[0029] Determining the difference data and the location of the difference data between every two target software packages, or determining the difference data and the location of the difference data between every two adjacent versions of the target software packages;
[0030] The difference data and the location of the difference data are recorded to obtain a differential update package between the two target software packages.
[0031] Furthermore, it also includes:
[0032] In response to receiving an update instruction from the vehicle, determining a first identity identifier of an old software package to be updated and a second identity identifier of a new software package to be updated to;
[0033] determining, according to the first identity identifier and the second identity identifier, whether a differential update package between the old software package and the new software package is stored;
[0034] In response to storing a differential update package between the old software package and the new software package, sending the differential update package to the vehicle;
[0035] In response to the fact that a differential update package between the old software package and the new software package is not stored, a differential update package between the old software package and the new software package is calculated online, and the differential update package is sent to the vehicle.
[0036] Based on the above objectives, in a second aspect, the present application further provides a method and apparatus for processing a vehicle update package, comprising:
[0037] The acquisition module is used to obtain the attribute data of each version of the software package;
[0038] a determination module, configured to determine a target software package among multiple versions of software packages based on the attribute data;
[0039] The generation module is used to generate and store the corresponding differential update package for the target software package.
[0040] Based on the above purpose, in the third aspect, the present application also provides an electronic device, including a memory, a processor and a computer program stored in the memory and runnable on the processor, wherein when the processor executes the program, the vehicle update package processing method as described in the first aspect above is implemented.
[0041] Based on the above purpose, in a fourth aspect, the present application also provides a vehicle, comprising the electronic device as described in the third aspect above.
[0042] Based on the above purpose, in a fifth aspect, the present application also provides a computer-readable storage medium, which stores computer instructions, and the computer instructions are used to enable a computer to execute the vehicle update package processing method as described in any one of the first aspects above.
[0043] As can be seen from the above, the vehicle update package processing method provided by the present application does not pre-generate and store corresponding differential update packages for all versions of the software packages, but selects some from all versions of the software packages as target software packages, and only pre-generates and stores corresponding differential update packages for the target software packages. This can reduce the storage quantity of differential update packages, thereby reducing the storage cost of the server and optimizing the resource utilization of the server. By pre-generating and storing differential update packages, when the vehicle side needs to be updated and upgraded, the differential update package can be directly sent to the vehicle side, which can save the time consumed in generating differential update packages, reduce the user's waiting time, and improve the update efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] In order to more clearly illustrate the technical solutions in this application or related technologies, the following briefly introduces the drawings required for use in the embodiments or related technical descriptions. Obviously, the drawings described below are merely embodiments of this application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0045] Figure 1 A schematic diagram of a vehicle update package processing method according to an embodiment of the present application Figure 1 ;
[0046] Figure 2 A schematic diagram of a vehicle update package processing method according to an embodiment of the present application Figure 2 ;
[0047] Figure 3 A schematic diagram of a vehicle update package processing method according to an embodiment of the present application Figure 3 ;
[0048] Figure 4 A schematic diagram of a vehicle update package processing method according to an embodiment of the present application Figure 4 ;
[0049] Figure 5 A schematic diagram of a vehicle update package processing method according to an embodiment of the present application Figure 5 ;
[0050] Figure 6 A schematic diagram of a vehicle update package processing method according to an embodiment of the present application Figure 6 ;
[0051] Figure 7 A schematic diagram of a vehicle update package processing method according to an embodiment of the present application Figure 7 ;
[0052] Figure 8 A schematic diagram of a vehicle update package processing method according to an embodiment of the present application Figure 8 ;
[0053] Figure 9 A schematic diagram of a method and apparatus for processing a vehicle update package according to an embodiment of the present application;
[0054] Figure 10 This is a schematic structural diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION
[0055] In order to make the objectives, technical solutions and advantages of this application more clear, this application is further described in detail below in combination with specific embodiments and with reference to the accompanying drawings.
[0056] It should be noted that, unless otherwise defined, the technical terms or scientific terms used in the embodiments of the present application should have the usual meanings understood by people with ordinary skills in the field to which this application belongs. The "first", "second" and similar words used in the embodiments of the present application do not indicate any order, quantity or importance, but are only used to distinguish different components. "Include" or "comprise" and similar words mean that the elements or objects appearing before the word cover the elements or objects listed after the word and their equivalents, without excluding other elements or objects. "Connect" or "connected" and similar words are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.
[0057] Currently, vehicle controller ECU software updates are iterating at an increasingly rapid pace. OTA (Over the Air) technology provides an online upgrade method, making vehicle controller upgrades as convenient and efficient as upgrading mobile phone apps. However, the increasing number of vehicle controller software versions (i.e., OTA update packages) has gradually reduced the efficiency of OTA upgrades.
[0058] Specifically, vehicle OTA update methods include full updates and differential updates. A full update involves sending the entire new version of the software package to the vehicle for installation. Its advantage is a relatively simple and straightforward update process, less prone to compatibility issues. However, its disadvantages are also significant: full update packages are typically larger, take longer to download, consume more network data, and require more storage space in the vehicle.
[0059] Differential updates only send the differences between the new and old versions (i.e., differential update packages). The advantage of this method is that the update package is smaller, so the download speed is fast, saving network traffic and vehicle storage space. However, the generation and application of differential updates are relatively complex, requiring precise version comparison and processing. As the number of versions increases, the number of differential update packages increases exponentially. For example, for a certain controller software of a vehicle, there are a total of n versions, and the number of differential update packages that may appear is n(n-1) / 2. If all differential update packages are generated in advance and stored on the server, it will take up a large storage space. If the differential update packages are not generated and stored in advance, then the differential update package needs to be calculated online each time the terminal requests it, which will obviously waste more time and occupy more computing power, resulting in reduced update efficiency.
[0060] Therefore, if a single update method is adopted without fully considering the software usage rate, version differences and actual needs of users, it will lead to either low update efficiency or waste of storage space or computing power during the update process.
[0061] In response to the above problems, an embodiment of the present application provides a method for processing a vehicle update package. The method for processing a vehicle update package provided by the embodiment of the present application can improve the efficiency of vehicle OTA updates, reduce user waiting time, optimize the utilization of server resources, reduce storage costs, and be more adaptable to fast-paced update iterations, thereby improving the update quality of vehicle software and user satisfaction.
[0062] Figure 1 A flow chart of a method for processing a vehicle update package is shown. The method for processing a vehicle update package can be executed by a vehicle update package processing device. The vehicle update package processing device can be implemented in the form of software and / or hardware and integrated into a server.
[0063] like Figure 1 As shown, the method for processing the vehicle update package includes the following steps:
[0064] S110: Obtain attribute data of each version of the software package.
[0065] Here, each version software package refers to a data package for different versions of the same vehicle controller software. For example, if a certain vehicle controller software includes 20 versions in total, then each version software package refers to any version of the 20 versions.
[0066] Software package attribute data includes data indicating the package's popularity or vehicle user demand. For example, software package attribute data can include the number of times a package has been installed and used in vehicles, the frequency of installation, and so on. It can also include the package's rating, the version date, and so on. A higher rating indicates greater user popularity, or in other words, a greater demand for the package among vehicle users. A software package's version date is closer to the current time, indicating a newer version. Vehicle users generally have a higher demand for newer versions, making them more popular. The more times a software package has been installed and used in vehicles, the more popular it is. Similarly, the more frequently a software package is installed and used, the more popular it is.
[0067] S120: Determine a target software package from multiple versions of software packages based on the attribute data.
[0068] Specifically, multiple versions of software packages are screened with reference to the attribute data to obtain a target software package.
[0069] In some embodiments, based on the attribute data, target software packages that are more frequently installed and used in vehicles are screened out from multiple versions of software packages, or in other words, target software packages that are more popular with users are screened out, thereby achieving the goal of reducing the number of target software packages to less than the number of all software packages.
[0070] S130: Generate and store a corresponding differential update package for the target software package.
[0071] A differential update package refers to a data package that records the differences between two software packages. Specifically, the differential update package described in this embodiment refers to a data package that records the differences between each two target software packages. For example, if the target software packages are software package A, software package B, and software package C, generating and storing corresponding differential update packages for the target software packages means calculating and storing the differential update package between software packages A and B, calculating and storing the differential update package between software packages A and C, and calculating and storing the differential update package between software packages B and C.
[0072] Compared to generating and storing corresponding differential update packages for all versions of the software package, only generating and storing the corresponding differential update package for the target software package reduces the number of stored differential update packages, thereby reducing storage costs and lowering the storage capacity requirements on the server side. At the same time, by pre-generating and storing the corresponding differential update package for the target software package, when the vehicle side needs to be updated, there is no need to calculate the differential update package online. Instead, the stored differential update package is directly read and sent to the vehicle. This saves more time and reduces the waiting time for vehicle users, thereby improving update efficiency and user experience. In addition, by using differential update packages for updates, the amount of data downloaded by the vehicle side is less, which further saves time and improves overall efficiency.
[0073] The vehicle update package processing method provided in the embodiment of the present application does not pre-generate and store corresponding differential update packages for all versions of the software package. Instead, some versions of the software package are selected as target software packages, and corresponding differential update packages are pre-generated and stored only for the target software packages. This can reduce the number of differential update packages to be stored, thereby reducing the storage cost of the server and optimizing the resource utilization of the server. By pre-generating and storing the differential update package, when the vehicle side needs to be updated and upgraded, the differential update package can be directly sent to the vehicle side. This can save the time consumed in generating the differential update package, reduce the user's waiting time, and improve the update efficiency.
[0074] Based on the above embodiment, this embodiment provides an optional implementation method for step S120 "determining a target software package from multiple versions of software packages based on the attribute data", such as Figure 2 FIG2 is a flow chart of a method for processing a vehicle update package, wherein the method comprises the following steps:
[0075] S210: Obtain attribute data of each version of the software package.
[0076] Exemplarily, the attribute data includes the usage frequency and version date of the software package. The closer the version date is to the current time, the newer the version of the corresponding software package is, and the newer version of the software package is usually what the user needs. The usage frequency of a certain software package may specifically refer to the ratio of the number of times the software package has been installed and used by the vehicle to the total number of times all software packages have been installed and used by the vehicle in the past six months. Alternatively, the number of times a certain software package has been installed and used by a vehicle in the past six months can be used to represent its usage frequency. The more times a software package is installed and used by a vehicle, or the higher the frequency of use, the more popular the software package is with the vehicle. For software packages that are more popular with vehicles, corresponding differential update packages are pre-generated and stored, so that when a vehicle needs to install and use the software package, the corresponding differential update package can be directly sent to the vehicle for installation and use by the vehicle. This can save the time consumed by online calculation of the differential update package, improve the overall update efficiency, reduce user waiting time, and enhance the user experience.
[0077] S220: Determine a first candidate software package according to the usage frequency of each version of the software package.
[0078] Specifically, a software package that is used more frequently may be determined as the first candidate software package to screen out a software package that is more popular with vehicles.
[0079] S230: Determine a second candidate software package according to the version date of each version software package.
[0080] Optionally, a software package with a newer version date may be determined as a second candidate software package to screen out a software package that is more likely to be required by the vehicle.
[0081] S240: Determine the target software package according to the first candidate software package and / or the second candidate software package.
[0082] In some implementations, the first candidate software package is determined as the target software package.
[0083] In some implementations, the second candidate software package is determined as the target software package.
[0084] In some implementations, both the first candidate software package and the second candidate software package are determined as the target software package. For example, assuming that the first candidate software package includes software package A and software package B, and the second candidate software package includes software package B and software package C, software package A, software package B, and software package C are determined as the target software packages.
[0085] In some implementations, the intersection of the first and second candidate software packages is determined as the target software package to further improve the accuracy of target software package determination. This determines that the target software package is more likely to be required by the vehicle. For example, if the first candidate software package includes software package A and software package B, and the second candidate software package includes software package B and software package C, software package B is determined as the target software package.
[0086] S250: Generate and store a corresponding differential update package for the target software package.
[0087] The vehicle update package processing method provided in the embodiment of the present application filters the target software package from multiple software packages based on the usage frequency and / or version date of the software package, thereby achieving the purpose of obtaining software packages that are more popular with vehicles, and then pre-generates and stores corresponding differential update packages for such software packages. When a vehicle needs to install a certain software package, the corresponding differential update package can be directly sent to the vehicle, which saves the time of online real-time calculation of the differential update package, reduces the user's waiting time, improves the overall update efficiency, and is conducive to improving the user's vehicle experience.
[0088] Based on the above embodiment, this embodiment provides an optional implementation method for step S220 "determining the first candidate software package according to the usage frequency of each version of the software package", such as Figure 3 FIG2 is a flow chart of a method for processing a vehicle update package, wherein the method comprises the following steps:
[0089] S310: Obtain attribute data of each version of the software package.
[0090] S320: Sort the version software packages in descending order of usage frequency; determine a first preset number of version software packages that are ranked top as the first candidate software packages; or determine a version software package whose usage frequency reaches a frequency threshold as the first candidate software package.
[0091] The first preset number is determined based on the remaining storage space of the server.
[0092] In some implementations, the number of differential update packages that can be stored is estimated based on the remaining storage space of the server, and the first preset number is determined based on the number of differential update packages that can be stored. Finally, the top N ranked software packages are determined as the first candidate software packages, where N is the first preset number.
[0093] In some implementations, if there are a large number of version software packages whose usage frequencies reach a frequency threshold, a first preset number of version software packages may be selected as first candidate software packages to take into account the storage capacity of the server.
[0094] S330: Determine a second candidate software package according to the version date of each version software package.
[0095] S340: Determine the target software package according to the first candidate software package and / or the second candidate software package.
[0096] S350: Generate and store a corresponding differential update package for the target software package.
[0097] The vehicle update package processing method provided in the embodiment of the present application estimates the number of differential update packages that can be stored based on the remaining storage space on the server, further determines the first preset number N based on the number of differential update packages that can be stored, and finally determines the top N ranked software packages as the first candidate software packages. This achieves the goal of taking into account the storage capacity of the server and reduces the storage capacity requirements of the server.
[0098] Based on the above embodiment, this embodiment provides an optional implementation method for step S230 "determining the second candidate software package according to the version date of each version software package", such as Figure 4 FIG2 is a flow chart of a method for processing a vehicle update package, wherein the method comprises the following steps:
[0099] S410: Obtain attribute data of each version of the software package.
[0100] S420: Determine a first candidate software package according to the usage frequency of each version of the software package.
[0101] S430: Sort the version software packages in descending order of their version dates; determine a second preset number of version software packages that are ranked top as the second candidate software packages; or determine the version software packages whose version dates are between the current time point and a historical time point as the second candidate software packages.
[0102] The second preset number is determined based on the remaining storage space on the server. Specifically, the number of differential update packages that can be stored is estimated based on the remaining storage space on the server, and the second preset number is determined based on the number of differential update packages that can be stored. Finally, the top N ranked software packages are determined as the second candidate software packages, where N is the second preset number.
[0103] The closer the version date is to the current time, the newer the corresponding software package is. Newer software packages are more likely to be the software packages that the vehicle needs to install and use. Therefore, by screening multiple software packages based on their version dates, newer software packages are selected as second-candidate software packages, making the second-candidate software packages more likely to be the software packages that the vehicle needs to install and use. For such software packages, differential update packages are pre-generated and stored. When the vehicle needs to install and use them, the pre-stored differential update packages can be directly sent to the vehicle, eliminating the need for real-time online calculation of the differential update packages. This saves time, reduces user waiting time, and improves overall update efficiency.
[0104] In some implementations, software packages with version dates within the past six months may be determined as the second candidate software packages. If there are a large number of software packages with version dates within the past six months, some of them may be selected as the second candidate software packages. Specifically, the software packages may be screened based on version date to ensure that the second candidate software packages have newer version dates.
[0105] S440: Determine the target software package according to the first candidate software package and / or the second candidate software package.
[0106] S450: Generate and store a corresponding differential update package for the target software package.
[0107] The vehicle update package processing method provided in an embodiment of the present application sorts the version software packages in descending order of version date, and determines a second preset number of version software packages ranked at the top as the second candidate software packages; or determines the version software packages with version dates between the current time point and the historical time point as the second candidate software packages. This achieves the purpose of filtering multiple version software packages based on version date, so that the filtering results are software packages with newer version dates, so as to obtain software packages that are more likely to be required for installation and use in the vehicle.
[0108] Based on the above embodiment, this embodiment provides an optional implementation method for step S240 of "determining the target software package according to the first candidate software package and / or the second candidate software package", such as Figure 5 FIG2 is a flow chart of a method for processing a vehicle update package, wherein the method comprises the following steps:
[0109] S510: Obtain attribute data of each version of the software package.
[0110] S520: Determine a first candidate software package according to the usage frequency of each version of the software package.
[0111] S530: Determine a second candidate software package according to the version date of each version software package.
[0112] S540: Determine the first candidate software package as the target software package; or determine the second candidate software package as the target software package; or determine the union of the first candidate software package and the second candidate software package as the target software package; or determine the intersection of the first candidate software package and the second candidate software package as the target software package.
[0113] In some implementations, the first candidate software package is determined as the target software package.
[0114] In some implementations, the second candidate software package is determined as the target software package.
[0115] In some implementations, both the first candidate software package and the second candidate software package are determined as the target software package. For example, assuming that the first candidate software package includes software package A and software package B, and the second candidate software package includes software package B and software package C, software package A, software package B, and software package C are determined as the target software packages.
[0116] In some implementations, the intersection of the first and second candidate software packages is determined as the target software package to further improve the accuracy of target software package determination. This determines that the target software package is more likely to be required by the vehicle. For example, if the first candidate software package includes software package A and software package B, and the second candidate software package includes software package B and software package C, software package B is determined as the target software package.
[0117] S550: Generate and store a corresponding differential update package for the target software package.
[0118] The vehicle update package processing method provided in the embodiment of the present application achieves the purpose of fully determining the target software package based on the software package's usage frequency and version date by determining the first candidate software package as the target software package; or determining the second candidate software package as the target software package; or determining the union of the first candidate software package and the second candidate software package as the target software package; or determining the intersection of the first candidate software package and the second candidate software package as the target software package. This ensures that the target software package is a software package with a high usage frequency and a newer version date, and maximizes the search for software packages that meet the vehicle's installation and use requirements, thereby achieving a balance between vehicle software update efficiency and server-side storage capacity. That is, while not storing differential update packages for all software packages, thereby reducing the server-side storage capacity requirements, it can also store differential update packages for software packages that the vehicle needs to install and use, thereby improving vehicle software update efficiency.
[0119] Based on the above embodiment, this embodiment adds the following step: "In response to storing a differential update package corresponding to a non-target software package other than the target software package, deleting the differential update package corresponding to the non-target software package", such as Figure 6 FIG2 is a flow chart of a method for processing a vehicle update package, wherein the method comprises the following steps:
[0120] S610: Obtain attribute data of each version of the software package.
[0121] S620: Determine a first candidate software package according to the usage frequency of each version of the software package.
[0122] S630: Determine a second candidate software package according to the version date of each version software package.
[0123] S640: Determine the target software package according to the first candidate software package and / or the second candidate software package.
[0124] S650: Generate and store a corresponding differential update package for the target software package.
[0125] S660: In response to the storage of differential update packages corresponding to non-target software packages other than the target software package, delete the differential update packages corresponding to the non-target software packages.
[0126] As time goes by, the usage frequency of some software packages will change, and their version dates will become older and older, so the target software package will change. When it is detected that there are differential update packages corresponding to non-target software packages other than the target software package, the differential update packages corresponding to the non-target software packages will be deleted to free up storage space, thereby achieving rational use of storage resources and allowing limited storage space to be used to store differential update packages corresponding to software packages that are more likely to be installed and used by the vehicle.
[0127] The vehicle update package processing method provided in the embodiment of the present application adds an operation for dynamically processing differential update packages. In response to storing differential update packages corresponding to non-target software packages other than the target software package, the differential update packages corresponding to the non-target software packages are deleted to free up storage space, thereby achieving rational utilization of storage resources and allowing limited storage space to be used to store differential update packages corresponding to software packages that are more likely to be installed and used by the vehicle.
[0128] Based on the above embodiment, this embodiment provides an optional implementation method for the above step S130 "generating and storing a corresponding differential update package for the target software package". Figure 7 FIG2 is a flow chart of a method for processing a vehicle update package, wherein the method comprises the following steps:
[0129] S710: Obtain attribute data of each version of the software package.
[0130] S720: Determine a first candidate software package according to the usage frequency of each version of the software package.
[0131] S730: Determine a second candidate software package according to the version date of each version software package.
[0132] S740: Determine the target software package according to the first candidate software package and / or the second candidate software package.
[0133] S750: Determine the difference data and the location of the difference data between each two target software packages, or determine the difference data and the location of the difference data between each two target software packages with adjacent versions; record the difference data and the location of the difference data, and obtain a differential update package between the corresponding two target software packages.
[0134] In some implementations, for example, if the target software packages are arranged in descending order by version date, namely A, B, C, and D, the difference data and the location of the difference data between A and B are calculated, recorded, and the differential update package between A and B is obtained. Similarly, the differential update package between A and C, the differential update package between A and D, the differential update package between B and C, the differential update package between B and D, and the differential update package between C and D are calculated. In other words, the differential update package between each two target software packages is determined.
[0135] In some implementations, for example, if the target software packages are arranged in descending order of version date, namely A, B, C, and D, the differential update package between A and B, the differential update package between B and C, and the differential update package between C and D are calculated, respectively. In other words, the differential update package between two software packages of adjacent versions is determined.
[0136] In some implementations, for example, a software package has 20 versions, ranging from ver1.0, ver1.1, ver1.2, and so on to ver2.9. There may be 190 possible combinations of differential versions. If all of these 190 combinations were pre-generated as differential update packages and stored on the server, a lot of storage space would be wasted. Therefore, a strategy could be formulated to store only the 20 differential update packages with the highest probability of being installed and used by vehicles, such as the 10 differential update packages corresponding to the 10 combinations between the five most recent versions, and the 10 differential update packages corresponding to the 10 combinations between the five most frequently used versions in the past six months. If the differential update package that a vehicle needs to install and use is one of these 20 packages, it will be distributed directly from the server to the vehicle. If it is not, two complete software packages will be used to generate differential update packages in real time and distributed.
[0137] The vehicle update package processing method provided in the embodiments of the present application calculates a corresponding differential update package for each pair of target software packages, or for each pair of adjacent target software packages. Specifically, the method determines the difference data and the location of the difference data between the two target software packages, records the difference data and the location of the difference data, and obtains the corresponding differential update package between the two target software packages.
[0138] Based on the above embodiment, this embodiment adds a differential update package distribution step. Specifically, when a vehicle needs to upgrade a certain software package, the server searches for a pre-stored differential update package between the software package currently in use on the vehicle (i.e., the software package to be upgraded) and the software package the vehicle expects to upgrade to. If a corresponding differential update package is pre-stored, it is sent directly to the vehicle. Otherwise, the differential update package between the two is calculated in real time based on the complete two software packages and then distributed. Figure 8 FIG2 is a flow chart of a method for processing a vehicle update package, wherein the method comprises the following steps:
[0139] S810: Obtain attribute data of each version of the software package.
[0140] S820: Determine a first candidate software package according to the usage frequency of each version of the software package.
[0141] S830: Determine a second candidate software package according to the version date of each version software package.
[0142] S840: Determine the target software package according to the first candidate software package and / or the second candidate software package.
[0143] S850: Generate and store a corresponding differential update package for the target software package.
[0144] S860: In response to receiving an update instruction from a vehicle, determining a first identity identifier of an old software package to be updated and a second identity identifier of a new software package to be updated to; determining whether a differential update package between the old software package and the new software package is stored based on the first identity identifier and the second identity identifier; in response to a stored differential update package between the old software package and the new software package, sending the differential update package to the vehicle; in response to a stored differential update package between the old software package and the new software package, calculating the differential update package between the old software package and the new software package online, and sending the differential update package to the vehicle.
[0145] The vehicle's update command can be initiated by the vehicle or the server. The old software package to be updated refers to the software package currently in use by the vehicle (assuming it is version A), and the new software package to be updated refers to the software package that the vehicle is preparing to install and use (assuming it is version B). The server first searches the pre-stored differential update packages to see if there is a differential update package between version A and version B. If so, it directly reads the differential update package and sends it to the vehicle. If not, it calculates the differential update package between the complete software package of version A and the complete software package of version B online. After the calculation is completed, the obtained differential update package is sent to the vehicle.
[0146] The first identity identifier and the second identity identifier may specifically be version numbers of a software package.
[0147] By pre-generating and storing corresponding differential update packages for target software packages with higher usage frequencies and newer version dates, when a vehicle needs to be upgraded, it can be directly read and distributed, saving the time consumed in calculating the differential update package, reducing the user's waiting time, and improving upgrade efficiency.
[0148] It should be noted that the method of the embodiment of the present application can be performed by a single device, such as a computer or server. The method of this embodiment can also be applied in a distributed scenario and performed by multiple devices working together. In such a distributed scenario, one of the multiple devices may only perform one or more steps of the method of the embodiment of the present application, and the multiple devices will interact with each other to complete the method.
[0149] It should be noted that the above description is limited to some embodiments of the present application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in an order different from that described in the above embodiments and still achieve the desired results. Furthermore, the processes depicted in the accompanying drawings do not necessarily require the specific order or sequential order shown to achieve the desired results. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0150] Based on the same inventive concept, corresponding to any of the above-mentioned embodiment methods, the present application also provides a vehicle update package processing device, which can be implemented in the form of software and / or hardware and integrated into the server.
[0151] refer to Figure 9 , the processing device of the vehicle update package includes:
[0152] An acquisition module 910 is used to acquire attribute data of each version of the software package;
[0153] A determination module 920 is configured to determine a target software package from among multiple versions of software packages based on the attribute data;
[0154] The generating module 930 is configured to generate and store a corresponding differential update package for the target software package.
[0155] In some embodiments, the attribute data includes usage frequency and version date, and the determination module 920 includes: a first determination unit, configured to determine a first candidate software package based on the usage frequency of each version of the software package; a second determination unit, configured to determine a second candidate software package based on the version date of each version of the software package; and a third determination unit, configured to determine the target software package based on the first candidate software package and / or the second candidate software package.
[0156] Furthermore, the first determining unit is specifically configured to: sort the version software packages in descending order of usage frequency; determine a first preset number of version software packages ranked at the top as the first candidate software packages; or determine a version software package whose usage frequency reaches a frequency threshold as the first candidate software package.
[0157] The second determining unit is specifically configured to: sort the version software packages in descending order of their version dates; determine a second preset number of version software packages that are ranked top as the second candidate software packages; or determine a version software package with a version date between a current time point and a historical time point as the second candidate software package.
[0158] The third determining unit is specifically configured to: determine the first candidate software package as the target software package;
[0159] Alternatively, determining the second candidate software package as the target software package;
[0160] Alternatively, a union of the first candidate software package and the second candidate software package is determined as the target software package;
[0161] Alternatively, the intersection of the first candidate software package and the second candidate software package is determined as the target software package.
[0162] Furthermore, the vehicle update package processing device further includes: a deletion module for deleting the differential update package corresponding to the non-target software package other than the target software package in response to storing the differential update package corresponding to the non-target software package.
[0163] Furthermore, the generation module 930 is specifically used to: determine the difference data between each two target software packages and the location of the difference data, or determine the difference data between each two adjacent versions of the target software packages and the location of the difference data; record the difference data and the location of the difference data, and obtain the differential update package between the corresponding two target software packages.
[0164] Furthermore, the processing device for the vehicle update package also includes: a search module for determining, in response to receiving an update instruction from the vehicle, a first identity identifier of an old software package to be updated and a second identity identifier of a new software package to be updated; determining, based on the first identity identifier and the second identity identifier, whether a differential update package between the old software package and the new software package is stored; a sending module for sending the differential update package to the vehicle in response to a differential update package between the old software package and the new software package being stored; and an online calculation module for calculating the differential update package between the old software package and the new software package online in response to no differential update package between the old software package and the new software package being stored, and sending the differential update package to the vehicle.
[0165] For the convenience of description, the above devices are described as being divided into various modules according to their functions. Of course, when implementing this application, the functions of each module can be implemented in the same or multiple software and / or hardware.
[0166] The apparatus of the above embodiment is used to implement the corresponding vehicle update package processing method in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be described in detail here.
[0167] For the convenience of description, the above devices are described as being divided into various modules according to their functions. Of course, when implementing this application, the functions of each module can be implemented in the same or multiple software and / or hardware.
[0168] The apparatus of the above embodiment is used to implement the corresponding vehicle update package processing method in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be described in detail here.
[0169] Based on the same inventive concept, corresponding to any of the above-mentioned embodiment methods, the present application also provides a vehicle, which includes the above-mentioned vehicle update package processing method device.
[0170] Based on the same inventive concept, corresponding to any of the above-mentioned embodiments, the present application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and runnable on the processor, wherein when the processor executes the program, the vehicle update package processing method described in any of the above embodiments is implemented.
[0171] Figure 10 10 is a schematic diagram showing a more specific hardware structure of an electronic device provided in this embodiment. The device may include: a processor 1010, a memory 1020, an input / output interface 1030, a communication interface 1040, and a bus 1050. The processor 1010, the memory 1020, the input / output interface 1030, and the communication interface 1040 are communicatively connected to each other within the device via the bus 1050.
[0172] The processor 1010 can be implemented using a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this specification.
[0173] The memory 1020 can be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory), static storage devices, dynamic storage devices, etc. The memory 1020 can store an operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program code is stored in the memory 1020 and is called and executed by the processor 1010.
[0174] The input / output interface 1030 is used to connect input / output modules to implement information input and output. The input / output modules can be configured as components within the device (not shown in the figure) or can be externally connected to the device to provide corresponding functions. Input devices may include a keyboard, mouse, touch screen, microphone, various sensors, etc., and output devices may include a display, speaker, vibrator, indicator light, etc.
[0175] The communication interface 1040 is used to connect to a communication module (not shown) to enable communication between the device and other devices. The communication module can communicate via a wired method (such as USB, network cable, etc.) or a wireless method (such as mobile network, WiFi, Bluetooth, etc.).
[0176] The bus 1050 comprises a path for transmitting information between the various components of the device (eg, the processor 1010 , the memory 1020 , the input / output interface 1030 , and the communication interface 1040 ).
[0177] It should be noted that although the above device only shows the processor 1010, the memory 1020, the input / output interface 1030, the communication interface 1040, and the bus 1050, in a specific implementation, the device may also include other components necessary for normal operation. In addition, it will be understood by those skilled in the art that the above device may only include the components necessary to implement the embodiments of this specification, and does not necessarily include all the components shown in the figure.
[0178] The electronic device of the above embodiment is used to implement the corresponding vehicle update package processing method in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be repeated here.
[0179] Based on the same inventive concept, corresponding to any of the above-mentioned embodiment methods, the present application also provides a non-transitory computer-readable storage medium, which stores computer instructions, and the computer instructions are used to enable the computer to execute the vehicle update package processing method described in any of the above embodiments.
[0180] The computer-readable media of this embodiment include permanent and non-permanent, removable and non-removable media that can be used to store information by any method or technology. The information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.
[0181] The computer instructions stored in the storage medium of the above embodiment are used to enable the computer to execute the vehicle update package processing method described in any of the above embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.
[0182] Those skilled in the art should understand that the discussion of any of the above embodiments is merely illustrative and is not intended to imply that the scope of the present application (including the claims) is limited to these examples. Within the scope of the present application, the technical features in the above embodiments or different embodiments may be combined, the steps may be implemented in any order, and there are many other variations of the different aspects of the embodiments of the present application as described above, which are not provided in detail for the sake of simplicity.
[0183] In addition, for simplicity of description and discussion, and in order not to make the embodiment of the application difficult to understand, the known power supply / ground connection with integrated circuit (IC) chip and other components may or may not be shown in the accompanying drawings provided. In addition, the device can be shown in the form of a block diagram to avoid making the embodiment of the application difficult to understand, and this also takes into account the following fact, that is, the details of the embodiment of these block diagram devices are highly dependent on the platform to be implemented in the embodiment of the application (that is, these details should be fully within the scope of understanding of those skilled in the art). When specific details (for example, circuit) are set forth to describe exemplary embodiments of the application, it will be apparent to those skilled in the art that the embodiment of the application can be implemented without these specific details or when these specific details are changed. Therefore, these descriptions should be considered to be illustrative rather than restrictive.
[0184] Although the present invention has been described in conjunction with specific embodiments thereof, many alternatives, modifications, and variations of these embodiments will be apparent to those skilled in the art based on the foregoing description. For example, other memory architectures (e.g., dynamic RAM (DRAM)) may utilize the embodiments discussed.
[0185] The embodiments of the present application are intended to cover all such substitutions, modifications, and variations that fall within the broad scope of the appended claims. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the embodiments of the present application should be included in the scope of protection of this application.
Claims
1. A method for processing a vehicle update package, applied to a server, characterized in that: include: Obtaining attribute data of each version of the software package; the attribute data includes usage frequency and version date; Determine the first candidate software package based on the usage frequency of each version of the software package; Determine the second candidate software package based on the version date of each version software package; determining a union of the first candidate software package and the second candidate software package as a target software package; Alternatively, the intersection of the first candidate software package and the second candidate software package is determined as the target software package; Generate and store the corresponding differential update package for the target software package.
2. The method for processing a vehicle update package according to claim 1, characterized in that: The determining of the first candidate software package according to the usage frequency of each version of the software package includes: Sort the software packages of each version in descending order of their frequency of use; A first preset number of version software packages ranked at the top are determined as the first candidate software packages; or a version software package whose usage frequency reaches a frequency threshold is determined as the first candidate software package.
3. The method for processing a vehicle update package according to claim 1, characterized in that: The determining of the second candidate software package according to the version date of each version software package includes: Sort the software packages in descending order of their version dates. A second preset number of version software packages ranked higher in the ranking are determined as the second candidate software packages; or, version software packages with version dates between the current time point and a historical time point are determined as the second candidate software packages.
4. The method for processing a vehicle update package according to claim 1, wherein: Also includes: In response to the storage of differential update packages corresponding to non-target software packages other than the target software package, the differential update packages corresponding to the non-target software packages are deleted.
5. The method for processing a vehicle update package according to claim 1, characterized in that: Generating and storing a corresponding differential update package for the target software package includes: Determining the difference data and the location of the difference data between every two target software packages, or determining the difference data and the location of the difference data between every two adjacent versions of the target software packages; The difference data and the location of the difference data are recorded to obtain a differential update package between the two target software packages.
6. The method for processing a vehicle update package according to claim 1, characterized in that: Also includes: In response to receiving an update instruction from the vehicle, determining a first identity identifier of an old software package to be updated and a second identity identifier of a new software package to be updated to; determining, according to the first identity identifier and the second identity identifier, whether a differential update package between the old software package and the new software package is stored; In response to storing a differential update package between the old software package and the new software package, sending the differential update package to the vehicle; In response to the fact that a differential update package between the old software package and the new software package is not stored, a differential update package between the old software package and the new software package is calculated online, and the differential update package is sent to the vehicle.
7. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the method for processing the vehicle update package according to any one of claims 1 to 6 is implemented.
8. A vehicle, characterized in that: The vehicle includes the electronic device according to claim 7.
Citation Information
Patent Citations
Differential on-air software upgrading method based on cloud computing
CN102215480A
Object upgrading method and device, equipment and storage medium
CN112925551A
Software upgrading method and device, server and computer readable storage medium
CN114296777A