Cockpit app componentization upgrade system based on maven management

By using a Maven-based cockpit app component upgrade system, decoupling and version management between components are achieved, solving the problem of low upgrade efficiency for cockpit app components and improving the system's development efficiency and ease of use.

CN116301998BActive Publication Date: 2025-11-28CHONGQING CHANGAN TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202310324833.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-29
Publication Date
2025-11-28
Estimated Expiration
2043-03-29

AI Technical Summary

Technical Problem

Existing cockpit app component upgrade solutions suffer from low upgrade efficiency and lack of specificity, impacting system development efficiency.

Method used

A cockpit APP component upgrade system based on Maven is adopted. Modular development and decoupling between components are achieved through component libraries, common dependency modules and Maven repositories. The Maven repository is used to automatically manage component versions and dependencies, enabling rapid component updates and version management.

Benefits of technology

It achieves complete decoupling between components, solves the problem of component version updates, and improves upgrade efficiency and system usability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116301998B_ABST
    Figure CN116301998B_ABST
Patent Text Reader

Abstract

The embodiment of the application provides a cockpit APP component-based upgrading system based on Maven management, and belongs to the technical field of cockpit application management. The cockpit APP component-based upgrading system based on Maven management comprises: a component library comprising a plurality of component sub-libraries and used for storing components based on component function splitting; a public dependent module used for, when a certain component is running, forming a dependent library by other components corresponding to the component that needs to run; wherein each component has a respective dependent library; and a Maven warehouse used for executing upgrading tasks of each component and updating component information after upgrading and dependent information between components. The scheme of the application not only realizes complete decoupling of each component between projects, but also solves the problem of version updating of each component.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of vehicle infotainment application management technology, specifically to a modular upgrade system for cockpit apps based on Maven management. Background Technology

[0002] With the continuous development of technology, and to meet the diverse needs of people, vehicle cockpit apps are becoming increasingly feature-rich. Cockpit app projects are typically developed using a component-based approach. However, as the number of components increases and their functionalities iterate, issues such as different update times and versions, and potential inter-component calls, arise. These component upgrade problems significantly inconvenience development and maintenance, even impacting system development efficiency. While some application update solutions exist for cockpit apps, these solutions generally suffer from low upgrade efficiency and a lack of specificity. Therefore, a new cockpit app component upgrade solution is needed to address these issues. Summary of the Invention

[0003] The purpose of this invention is to provide a Maven-managed cockpit app component upgrade system to solve the problems of low upgrade efficiency and lack of specificity in existing cockpit app upgrade solutions.

[0004] To achieve the above objectives, the technical solution adopted by the present invention is as follows:

[0005] This invention provides a Maven-managed cockpit app component-based upgrade system. The Maven-managed cockpit app component-based upgrade system includes: a component library, comprising multiple component sub-libraries, each used to store components after functional decomposition; a common dependency module, used to provide a dependency library composed of other components that need to run when a stored component is running; wherein each component has its own dependency library; and a Maven repository, used to execute the upgrade tasks of each component and update the upgraded component information and the dependency information between components.

[0006] Optionally, all components stored in the component library are developed based on a component-based approach.

[0007] Optionally, before storing components in each component sub-library, the functions of each component can be modularly split, and the split components can be stored in each component sub-library according to their functions.

[0008] Optionally, in the component library, if there is a function that requires a call between two components, the calling relationship between the modules is defined to obtain the defined module, and the defined module is used to implement the communication between the two components.

[0009] Optionally, the component library communicates with the common dependency module. When a component runs, it calls other corresponding modules in the common dependency library based on its dependency library.

[0010] Optionally, the Maven repository stores complete information about each component; the Maven repository is configured to: when there is a need to update a component, upload the new component to the Maven repository and update the corresponding component's configuration file; based on the updated configuration file, modify the dependencies of the corresponding component.

[0011] Optionally, the configuration file may include at least: version number, update content, and local documentation.

[0012] Optionally, modifying the dependencies of the corresponding components based on the updated configuration file includes: updating the dependencies of the current component by comparing the dependent components of the updated component with the modified local document; wherein, the dependent components are components that have a dependency relationship with the current component.

[0013] Optionally, the Maven-managed cockpit APP component upgrade system further includes: a log module for recording upgrade logs of the Maven repository; the upgrade logs include: upgrade content and upgrade configuration information.

[0014] Optionally, the Maven-managed cockpit APP component upgrade system further includes a transmission module for synchronizing the upgrade logs to a preset server in real time.

[0015] The beneficial effects of this invention are as follows: First, the invention utilizes a component-based development approach to modularize the cockpit app, allowing different functions to be independent of each component (Module). Second, by managing each component locally using Maven, when a component's functionality changes, the new version can be automatically packaged and uploaded to the Maven repository after configuring the relevant information. When using the current component in the app, only the dependency version number of the corresponding component needs to be modified to obtain the latest component functionality. Each component generates a corresponding dependency library; when other components need to use the functionality of a certain component, they can simply add the Maven dependency to the corresponding project. This approach not only achieves complete decoupling between components in the project but also solves the problem of updating each component version simultaneously. Attached Figure Description

[0016] Figure 1 A system architecture diagram of a Maven-managed cockpit APP component upgrade system provided in one embodiment of the present invention;

[0017] Figure 2 A schematic diagram of the modular breakdown of a cockpit app provided in one embodiment of the present invention;

[0018] Figure 3 This is a schematic diagram illustrating the process of performing an upgrade on a Maven repository, as provided in one embodiment of the present invention. Detailed Implementation

[0019] The embodiments of the present invention will be described below with reference to the accompanying drawings and preferred embodiments. Those skilled in the art can easily understand other advantages and effects of the present invention from the content disclosed in this specification. The present invention can also be implemented or applied through other different specific embodiments, and various details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of the present invention. It should be understood that the preferred embodiments are only for illustrating the present invention and not for limiting the scope of protection of the present invention.

[0020] With the continuous development of technology, in order to meet people's diverse needs, vehicle cockpit apps are becoming increasingly feature-rich. Typically, cockpit app projects are developed using a component-based approach. As the number of components increases and the functional versions of each component iterate, the different update times and versions of different components, as well as the possibility of mutual calls between components, often lead to numerous component upgrade issues throughout the project, causing great inconvenience to development and maintenance, and even affecting the system's development efficiency.

[0021] The application document with application number CN202210845641.1 discloses a component-based development method, device, medium and electronic device for automotive diagnostic equipment. This solution is mainly used for testing. However, by setting several functions of the automotive diagnostic equipment and generating components based on those functions, it is highly likely that the set functions will be incomplete, and the corresponding generated components will also be incomplete. Furthermore, it does not provide a detailed introduction to the component generation and packaging scheme, nor does it consider the issue of component upgrades.

[0022] The application with application number CN202110735192.0 discloses a component-based method for an in-vehicle system app. This method can effectively improve development efficiency by dividing different business functions into independent components, which greatly shortens compilation time and makes it easier to troubleshoot and locate problematic modules. While this system achieves excellent component-based management, the business layer containing a series of business components may result in a large business layer that is difficult to maintain and manage; furthermore, this method does not consider the issue of component upgrades.

[0023] It is evident that current upgrade solutions for cockpit apps generally suffer from low upgrade efficiency and a lack of specificity. To address this issue, this invention proposes a Maven-managed, component-based upgrade system for cockpit apps. Firstly, this invention uses a component-based development approach to modularize the cockpit app, ensuring different functions are independent within different components (Modules). Secondly, by managing each component locally using Maven, when a component's functionality changes, the new version can be automatically packaged and uploaded to the Maven repository after configuring the relevant information. When using the current component in the app, only the dependency version number of the corresponding component needs to be modified to obtain the latest component functionality. Each component generates a corresponding dependency library; when other components need to use a component's functionality, they simply add the Maven dependency to the corresponding project. This approach not only achieves complete decoupling between components across projects but also solves the problem of updating each component's version immediately.

[0024] Figure 1 This is a system architecture diagram of a Maven-managed cockpit app component upgrade system provided in one embodiment of the present invention. Figure 1 As shown, this embodiment of the invention provides a component-based upgrade system for a cockpit app managed by Maven. The system includes: a component library, comprising multiple component sub-libraries, each used to store components after functional decomposition; a common dependency module, used to store the dependency library of other components that need to run when each component is running; wherein each component has its own dependency library; and a Maven repository, used to execute the upgrade tasks of each component and update the upgraded component information and the dependency information between components.

[0025] In this embodiment of the invention, the technical effect desired is to facilitate component upgrades, improve version management between components, and enhance the usability of the entire system framework. Although the number of cockpit apps is increasing, they are ultimately just simple functionalities stacked together. For example, if there is a need to watch videos in the cockpit, a corresponding video app exists. When this app implements its functionality, it includes at least audio and image functions; therefore, the app is a combination of these two functions, or rather, they are mutually dependent. Based on this characteristic, this invention functionally decomposes modules and stores the decomposed components in different component sub-libraries. When a module that multiple applications commonly depend on needs updating, to avoid requiring individual updates for all applications, targeted updates can be performed based on the function. This also enables rapid component updates. For ease of explanation, modules will be used below with some component substitutions; however, in this application, a module is considered a component.

[0026] Preferably, all components stored in the component library are developed based on a component-based approach.

[0027] Preferably, before storing components in each component sub-library, the functions of each component need to be modularly decomposed, and the decomposed components are then stored in each component sub-library according to their functions.

[0028] In this invention, modularization refers to the process of dividing a complex problem into several modules layer by layer from top to bottom. These modules have multiple attributes, each reflecting its internal characteristics. Modular development means that a module is a file that implements a specific function. With modules, we can more easily use other people's code; we can load the modules that provide the desired functionality. Modular development offers advantages such as flexible architecture, separation of focus, convenient combination and decomposition of modules, convenient debugging and upgrading of individual modules, and multi-user collaboration without interference. This invention fully utilizes the advantages of modular development and, based on its characteristics, achieves efficient subsequent upgrades.

[0029] In one possible implementation, such as Figure 2 When developing a cockpit app, we used the concept of modularity to break down the various functional modules and complete the modularization of components.

[0030] Preferably, in the component library, if there is a function that requires a call between two components, the calling relationship between the modules is defined to obtain the defined module, and the defined module enables communication between the two components.

[0031] In this embodiment of the invention, if components need to call each other's functions, such as interface calls, communication between components is achieved through defining inter-module data transmission methods and using interface calls. Because this invention requires decoupling of components to avoid excessive coupling nodes and complex upgrade processes, corresponding calling modules need to be defined when such calling relationships exist. This achieves complete decoupling between components, while ensuring communication and calls between components during subsequent function implementation through calling modules, thus avoiding impacting the actual functionality of the application.

[0032] Preferably, the component library is communicatively connected to the common dependency module, and when a component runs, it calls other corresponding modules in the common dependency library based on its dependency library.

[0033] In this invention, a basic module is established in the project, and the project's functions and technical points are sorted out. The dependency libraries and communication methods are written as utility classes and placed in the common dependency module. Other modules can directly depend on the basic module when they need to use it.

[0034] Preferably, the Maven (project management tool) repository stores complete information about each component; the Maven repository is configured to: when there is a need to update a component, upload the new component to the Maven repository and update the configuration file of the corresponding component; and modify the dependency relationship of the corresponding component based on the updated configuration file.

[0035] In this embodiment of the invention, Maven is a project management tool that allows you to manage project builds, reports, and documentation with a short descriptive message. Besides its program building capabilities, Maven also provides advanced project management tools. Because Maven's default build rules are highly reusable, simple projects can often be built with just two or three lines of Maven build script. Due to Maven's project-oriented approach, many Apache Jakarta (an open-source license) projects use Maven. A Maven repository is where the third-party libraries that a project depends on are located. A Maven repository helps us manage artifacts (mainly JARs); it's where all JAR files (WAR, ZIP, POM, etc.) are placed. In the Maven world, any dependency, plugin, or project build output can be called a build. Because Maven introduces a coordinate mechanism, every build can be uniquely identified by its coordinates. Coordinates are a logical representation of a build in the Maven world, while the physical representation of a build is a file. Maven uses repositories to manage these files uniformly. Maven uses repositories to store all builds in a unified manner. In practice, Maven projects will no longer store their own dependency files. They only need to declare the coordinates of these dependencies, and when needed, Maven will automatically find the build in the repository based on the coordinates and use them.

[0036] This invention leverages Maven repository features to implement upgrade tasks for various components. Therefore, a corresponding Maven repository needs to be set up. Specifically, a local Maven repository is set up and configured accordingly. Then, Maven configuration is performed in the Gradle file of the corresponding project for the cockpit software. This primarily involves uniformly configuring the configuration files uploaded to Maven based on the module names (package names) of different modules, creating a script file. A switch is used to control whether a specific module should be uploaded to the repository; if an upload is required, the upload switch for that module is enabled. Additionally, for modules to be uploaded or updated to Maven, the corresponding module configuration files are modified, mainly updating the version number and update content to be uploaded to the Maven repository. After a successful upload, the local repository update documentation is also updated. Projects that need to use the functionality of each module can then refer to this documentation and simply modify the dependencies of the corresponding modules, mainly changing the version number or using the form of version number +, to use the new features uploaded to Maven by each module.

[0037] Preferably, the configuration file includes at least: version number, update content, and local document.

[0038] Preferably, modifying the dependencies of the corresponding components based on the updated configuration file includes: updating the dependencies of the current component by comparing them with the dependent components of the updated component based on the modified local document.

[0039] Preferably, the cockpit APP component upgrade system based on Maven management further includes: a log module for recording upgrade logs of the Maven repository; the upgrade logs include: upgrade content and upgrade configuration information.

[0040] Preferably, the Maven-managed cockpit APP component upgrade system further includes a transmission module for synchronizing the upgrade logs to a preset server in real time.

[0041] In this embodiment of the invention, each time the repository is updated, the updated content is written to the corresponding document in a specified format through code. The document can be uploaded to a specified server via script or made into a webpage for easy viewing and use by relevant development colleagues.

[0042] In one possible implementation, the various levels of the cockpit system, such as the UI display and business services, are modularized. Modules are divided according to function, and different functions are isolated through these modules. Each project simply adds dependencies of other modules to its main module.

[0043] Based on the needs of business modules, the company handles dependencies by first establishing a common base module and configuring the dependency libraries that each module depends on into this common base module. Secondly, a commonly used utility class is created within the common base module to facilitate calls from other modules and effectively reduce code duplication.

[0044] like Figure 3 First, set up a local Maven repository and configure it accordingly. Then, configure Maven in the Gradle of the cockpit app. This mainly involves setting up a unified configuration file for uploading different modules to Maven based on their module names (package names). This script file controls whether or not a specific module should be uploaded to the repository via a toggle switch. If a module is uploaded to Maven, update the local repository's documentation. Projects that need to use the functionality of each module can then refer to this documentation and simply modify the dependencies of the corresponding modules, mainly changing the version number or using the `v+` format, to use the new features of each module.

[0045] Those skilled in the art will understand that all or part of the steps in the methods of the above embodiments can be implemented by a program instructing related hardware. This program is stored in a storage medium and includes several instructions to cause a microcontroller, chip, or processor to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0046] The optional embodiments of the present invention have been described in detail above with reference to the accompanying drawings. However, the embodiments of the present invention are not limited to the specific details described above. Within the scope of the technical concept of the embodiments of the present invention, various simple modifications can be made to the technical solutions of the embodiments of the present invention, and these simple modifications all fall within the protection scope of the embodiments of the present invention. It should also be noted that the various specific technical features described in the above specific embodiments can be combined in any suitable manner without contradiction. To avoid unnecessary repetition, the embodiments of the present invention will not further describe the various possible combinations.

[0047] Furthermore, various different embodiments of the present invention can be combined in any way, as long as they do not violate the spirit of the embodiments of the present invention, they should also be regarded as the content disclosed by the embodiments of the present invention.

Claims

1. A cockpit APP component-based upgrade system based on Maven management, characterized in that, The cockpit APP component-based upgrading system based on Maven management comprises: a component library comprising a plurality of component sub-libraries, each of which is configured to store components based on component function splitting; in the component library, if there is a function requiring a call between two components, a defined module is obtained by defining a call relationship between the modules to realize communication between the two components; a public dependency module configured to, when a certain component is running, call corresponding other modules in the dependency library of the component; a Maven repository configured to execute upgrading tasks of the components and update component information and dependency information between the components after upgrading; a building rule of the Maven repository is that a local Maven repository is built and corresponding configurations are made, Maven configurations are made in a project Gradle file corresponding to cockpit software, configuration files are uniformly configured according to module names of different modules, a script file is made, and a switch is used to control whether corresponding modules are uploaded to the repository, if yes, a corresponding uploading switch of the module is turned on, for modules to be uploaded or updated to the Maven, corresponding module configuration files are modified, version numbers and update contents uploaded to the Maven repository are updated, and the local repository update document is updated after uploading is successful.

2. The Maven management based cabin APP componentized upgrade system according to claim 1, wherein, All components stored in the component library are components developed based on the component-based mode.

3. The Maven management based cabin APP componentized upgrade system according to claim 2, wherein, Before storing the components into the component sub-libraries, functions of the components are modularly split, and the split components are stored into the component sub-libraries according to functions.

4. The Maven management based cabin APP componentized upgrade system according to claim 1, wherein, The component library and the public dependency module are in communication connection, when a certain component is running, corresponding other modules in the public dependency library are called based on the dependency library of the component.

5. The Maven management based cabin APP componentized upgrade system according to claim 1, wherein, The Maven repository stores complete information of the components; the Maven repository is configured to: when there is a component update requirement, a new component is uploaded to the Maven repository, and a configuration file of the corresponding component is updated; based on the updated configuration file, dependency relationships of the corresponding component are modified.

6. The Maven management based cabin APP componentized upgrade system according to claim 5, characterized in that, The configuration file at least comprises: a version number, update contents and a local document.

7. The Maven management based cabin APP componentized upgrade system according to claim 6, characterized in that, Based on the updated configuration file, the dependency relationships of the corresponding component are modified, which comprises: based on the modified local document, dependency components of the updated component are compared, and dependency relationships of the current component are updated; wherein, the dependency component is a component having a dependency relationship with the current component.

8. The Maven management based cabin APP componentized upgrade system according to claim 1, wherein, The cockpit APP component-based upgrading system based on Maven management further comprises: a log module configured to record upgrading logs of the Maven repository; the upgrading logs comprise upgrading contents and upgrading configuration information.

9. The Maven management based cabin APP componentized upgrade system according to claim 8, characterized in that, The cockpit APP component-based upgrading system based on Maven management further comprises: a transmission module configured to synchronously transmit the upgrading logs to a preset server in real time.

Citation Information

Patent Citations

  • Component development method and equipment for automobile diagnosis equipment, medium and electronic equipment

    CN114995792A

  • Information processing method and apparatus

    CN107391101A

  • APP modularization control system and method based on vehicle-mounted system

    CN113485680A