Software development systems, methods, and electronic devices
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-29
- Publication Date
- 2026-08-14
AI Technical Summary
[0004]本申请提供一种软件开发系统、方法及电子设备,通过业务开发模块、包分发管理模块以及软件开发模块三层架构进行软件开发,可以让各个业务在各自的业务开发模块独立开发演进,并以业务软件包的形式在包分发管理模块中储存,软件开发模块可以根据需求动态调用不同功能、不同版本的业务软件包,生成目标软件,改善了跨团队软件开发的流程复杂,效率低下的问题
[0028]其中,第二方面至第八方面的有益效果可以参照第一方面,在此不做赘述。
Smart Images

Figure CN120276709B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of terminals, and more particularly to a software development system, electronic device, and readable storage medium. Background Technology
[0002] Software development often requires collaboration among multiple development teams. Cross-team software development is a challenge faced by many companies.
[0003] Existing cross-team software development frameworks often involve overlapping business logic and resource sharing among different development teams. This leads to a situation where updating or modifying one business function requires updating or modifying other overlapping functions as well, resulting in a complex and inefficient cross-team software development process. Summary of the Invention
[0004] This application provides a software development system, method, and electronic device. It adopts a three-layer architecture of business development module, package distribution management module, and software development module for software development. This allows each business to be developed and evolved independently in its own business development module and stored in the package distribution management module in the form of business software packages. The software development module can dynamically call different functions and versions of business software packages according to needs to generate target software, thereby improving the problems of complex and inefficient cross-team software development processes.
[0005] To achieve the above objectives, this application adopts the following technical solution:
[0006] Firstly, a software development system is provided, comprising at least one business development module, a package distribution management module, and a software development module. Each business development module is communicatively connected to the package distribution management module, and the package distribution management module and the software development module are also communicatively connected. The business development module compiles and packages the received business code to obtain a business package, and sends the business package to the package distribution management module. The package distribution management module stores the received business packages and, upon receiving a first invocation instruction from the software development module, sends the corresponding business package to the software development module. The software development module, based on the received target software configuration file, sends a first invocation instruction to the package distribution management module to obtain the corresponding business package, and compiles, packages, and publishes the obtained business package to obtain the target software.
[0007] In the first aspect, software development is carried out through a three-layer architecture of business development module, package distribution management module and software development module. This allows each business to be developed and evolved independently in its own business development module and stored in the package distribution management module in the form of business software packages. The software development module can dynamically call different functions and different versions of business software packages according to requirements to generate target software. This enables independent development of each business module, reduces the business overlap between different business modules, simplifies the process of cross-team software development, and improves the efficiency of cross-team software development.
[0008] In some possible implementations, the business code includes main process business code, rendering process business code, and interface code, and the business software package includes main process application package, rendering process application package, and the name and version information of the business.
[0009] The business logic code is compiled and packaged to obtain a business software package, which includes: The business development module compiles and packages the main process business logic code and the rendering process business logic code separately according to the business name and version information, resulting in a main process application package and a rendering process application package. The main process application package and the rendering process application package exchange data through a general interface or a custom interface indicated by the interface code. Based on the business name and version information, the main process application package, the rendering process application package, and the interface code are packaged to obtain the business software package.
[0010] In some possible implementations, the target software configuration file includes the name and version of at least one service.
[0011] The software development module, based on the received target software configuration file, sends a first invocation command to the package distribution management module to obtain the corresponding business software package. This includes: sending a first invocation command to the package distribution management module based on the name and version information of the business in the target software configuration file; the first invocation command includes the name and version information of at least one business. The package distribution management module, based on the received first invocation command, matches business software packages with the same name and version information and sends the business software package to the software development module.
[0012] In some possible implementations, the acquired business software packages are compiled, packaged, and published to obtain the target software. This includes: compiling and packaging the main process application package in each business software package to obtain the main process application of the target software. The main process application includes multiple main process application packages, and the name and version information of each main process application package. Compiling and packaging the rendering process application package in each business software package to obtain the rendering process application of the target software. The rendering process application includes multiple rendering process application packages, and the name and version information of each rendering process application package. Compiling and packaging the common and custom interfaces existing in each business software package to obtain a bridging module. The bridging module includes the calling interface corresponding to calling each main process application package or rendering process application package, and the calling interface includes common interfaces and / or custom interfaces. Publishing the main process application, the rendering process application, and the bridging module yields the target software. In the target software, the main process and the rendering process exchange data through the bridging module.
[0013] In some possible implementations, the main process and the rendering process exchange data through a bridging module. This includes: the rendering process sending a second invocation instruction to the bridging module, the second invocation instruction including the name and version information of the main process's application package. The bridging module forwards the name and version information to the main process, which then queries and invokes the corresponding main process application package based on the received name and version information, and sends data to the rendering process through the bridging module via the main process application package's invocation interface.
[0014] In some possible implementations, the business development module includes a note-taking business module, a calendar business module, a global collection business module, a trust ring business module, and other business modules. The package distribution management module is the NPM (Node Package Manager) module. The software development module is an office software development module, and the target software is office software.
[0015] Secondly, a software development methodology is provided for application in the business development module. This methodology includes: compiling and packaging the received business code to obtain a business software package; and sending the business software package to the package distribution management module.
[0016] In some possible implementations, the business code includes main process business code, rendering process business code, and interface code, and the business software package includes main process application package, rendering process application package, and the name and version information of the business.
[0017] The received business code is compiled and packaged to obtain a business software package, which includes: a main process application package (compiled and packaged by the business development module based on the business name and version information); a rendering process application package (compiled and packaged by the business development module based on the business name and version information); and a final business software package (packaged by the main process application package, rendering process application package, and interface code based on the business name and version information). The main process application package and the rendering process application package exchange data through a general interface or a custom interface indicated by the interface code.
[0018] Thirdly, a software development method is provided, applied to a software development module. The method includes: sending a first invocation command to a package distribution management module based on a received target software configuration file to obtain the corresponding business software package; compiling, packaging, and publishing the obtained business software package to obtain the target software.
[0019] In some possible implementations, the target software configuration file includes the name and version of at least one service.
[0020] Based on the received target software configuration file, a first invocation instruction is sent to the package distribution management module to obtain the corresponding business software package. This includes: sending a first invocation instruction to the package distribution management module based on the name and version information of the business in the target software configuration file, wherein the first invocation instruction includes the name and version information of at least one business. The system then receives a business software package from the package distribution management module, which is a business software package whose name and version information are matched by the package distribution management module based on the received first invocation instruction.
[0021] In some possible implementations, the acquired business software packages are compiled, packaged, and published to obtain the target software. This includes: compiling and packaging the main process application package in each business software package to obtain the main process application of the target software. The main process application includes multiple main process application packages, and the name and version information of each main process application package. Compiling and packaging the rendering process application package in each business software package to obtain the rendering process application of the target software. The rendering process application includes multiple rendering process application packages, and the name and version information of each rendering process application package. Compiling and packaging the common and custom interfaces existing in each business software package to obtain a bridging module. The bridging module includes the calling interface corresponding to calling each main process application package or rendering process application package, and the calling interface includes common interfaces and / or custom interfaces. Publishing the main process application, the rendering process application, and the bridging module yields the target software. In the target software, the main process and the rendering process exchange data through the bridging module.
[0022] In some possible implementations, the main process and the rendering process exchange data through a bridging module. This includes: the rendering process sending a second invocation instruction to the bridging module, the second invocation instruction including the name and version information of the main process's application package. The bridging module forwards the name and version information to the main process, which then queries and invokes the corresponding main process application package based on the received name and version information, and sends data to the rendering process through the bridging module via the main process application package's invocation interface.
[0023] Fourthly, an electronic device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program and performs the steps of processing in any of the methods in the second aspect.
[0024] Fifthly, an electronic device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program and performs the steps of processing in any of the methods in the third aspect.
[0025] In a sixth aspect, a chip is provided, comprising: a processor for retrieving and running a computer program from a memory, causing a device on which the chip is mounted to perform the steps of processing in either the second or third aspect.
[0026] In a seventh aspect, a computer-readable storage medium is provided, the computer-readable storage medium storing a computer program, the computer program including program instructions, which, when executed by a processor, cause the processor to perform the steps of processing in either the second or third aspect.
[0027] Eighthly, a computer program product is provided, comprising: computer program code, which, when executed by an electronic device, causes the electronic device to perform the processing steps in either the second or third aspect.
[0028] The beneficial effects of aspects two through eight can be referred to in aspect one, and will not be elaborated here. Attached Figure Description
[0029] Figure 1 This is a schematic diagram illustrating an application scenario of a software development system provided in an embodiment of this application;
[0030] Figure 2 This is a hardware structure block diagram of an electronic device provided in an embodiment of this application;
[0031] Figure 3 This is a structural block diagram of the software development system provided in the embodiments of this application;
[0032] Figure 4 This is a flowchart illustrating the software development method provided in an embodiment of this application;
[0033] Figure 5 This is a schematic diagram of the structure of the business software package in the software development method provided in the embodiments of this application;
[0034] Figure 6 This is a schematic diagram of the architecture of the target software in the software development method provided in the embodiments of this application;
[0035] Figure 7 This is a schematic diagram of the process by which the main process and the rendering process exchange data through a bridging module in the software development method provided in this application embodiment;
[0036] Figure 8 This is a flowchart illustrating the target software note-taking service in the software development method provided in this application embodiment;
[0037] Figure 9 This is a structural block diagram of a software development apparatus provided in an embodiment of this application;
[0038] Figure 10 This is a structural block diagram of a software development apparatus provided in an embodiment of this application;
[0039] Figure 11 This is a schematic diagram of the structure of a chip provided in an embodiment of this application. Detailed Implementation
[0040] The technical solutions in this application will now be described with reference to the accompanying drawings.
[0041] In the description of the embodiments of this application, unless otherwise stated, " / " means "or", for example, A / B can mean A or B; "and / or" in this document is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. In addition, in the description of the embodiments of this application, "multiple" means two or more.
[0042] Hereinafter, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this embodiment, unless otherwise stated, "a plurality of" means two or more.
[0043] Software development often requires collaboration among multiple development teams. Cross-team software development is a challenge faced by many companies.
[0044] For example, many software development processes currently use the Electron framework, an open-source framework that allows the development and building of cross-platform desktop applications using web technologies (HTML, CSS, and JavaScript).
[0045] However, when developing software across teams, directly using the existing Electron framework can lead to overlap in business processes and the sharing of some resources between different development teams.
[0046] This leads to a situation where, when one business function needs to be updated or modified, other overlapping business functions also need to be updated or modified accordingly, resulting in a complex and inefficient cross-team software development process.
[0047] In view of this, this application provides a software development system, comprising at least one business development module, a package distribution management module, and a software development module. Each business development module is communicatively connected to the package distribution management module, and the package distribution management module and the software development module are communicatively connected. The business development module compiles and packages the received business code to obtain a business package, and sends the business package to the package distribution management module. The package distribution management module stores the received business packages and, upon receiving a first invocation instruction from the software development module, sends the corresponding business package to the software development module. The software development module, based on the received target software configuration file, sends a first invocation instruction to the package distribution management module to obtain the corresponding business package, and compiles, packages, and publishes the obtained business package to obtain the target software.
[0048] In this application, software development is carried out through a three-layer architecture of business development module, package distribution management module and software development module. This allows each business to be developed and evolved independently in its own business development module and stored in the package distribution management module in the form of business software packages. The software development module can dynamically call different functions and different versions of business software packages according to needs to generate target software. This enables independent development of each business module, reduces the business overlap between different business modules, simplifies the process of cross-team software development, and improves the efficiency of cross-team software development.
[0049] Figure 1 This is a schematic diagram of an application scenario for a software development system provided in an embodiment of this application.
[0050] refer to Figure 1 First, the application scenarios of the embodiments of this application will be briefly described.
[0051] Figure 1The diagram shows three business development modules 11, each including at least one electronic device 100. When a business development module 11 has one electronic device 100, that electronic device 100 is equivalent to one business development module 11. When a business development module 11 has more than one electronic device 100, the multiple electronic devices 100 work together to form a cluster, and the entire cluster of electronic devices 100 is equivalent to one business development module 11.
[0052] In other application scenarios, the number of business development modules 11 can be more or less, and this application does not limit the number of business development modules.
[0053] Each business development module 11 is connected to the package distribution management module 12, which can be a file server, data server, cloud server, etc.
[0054] The package distribution management module 12 is communicatively connected to the software development module 13, which can be an application server, a cloud server, an electronic device 100, or a cluster of multiple electronic devices 100.
[0055] The electronic device 100 in the business development module 11 can receive a portion of the business code input or uploaded by the developer. After receiving the complete business code, the business development module 11 can compile and package the business code to obtain a business software package and send it to the package distribution management module 12. Then, the software development module 13 sends a first call instruction to the package distribution management module 12 according to the target software configuration file input or uploaded by the developer, obtains the corresponding business software package, and compiles, packages, and publishes the obtained business software package to obtain the target software.
[0056] Figure 2 This is a hardware structure block diagram of an electronic device provided in an embodiment of this application.
[0057] As an example, electronic devices may include mobile phones, tablets, laptops, ultra-mobile personal computers (UMPCs), servers, desktop computers, etc. This application does not impose any limitations on the specific type of electronic device.
[0058] refer to Figure 2The electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, a headphone jack 170D, a sensor module 180, buttons 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, a barometric pressure sensor 180C, a magnetic sensor 180D, an accelerometer sensor 180E, a distance sensor 180F, a proximity sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.
[0059] It is understood that the structures illustrated in the embodiments of this application do not constitute a specific limitation on the electronic device 100. In other embodiments of this application, the electronic device 100 may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
[0060] For example, when electronic device 100 is a laptop or tablet computer, it may include all the components shown in the figure, or it may include only some of the components shown in the figure.
[0061] Processor 110 may include one or more processing units, such as application processors (APs), modem processors, graphics processing units (GPUs), image signal processors (ISPs), controllers, video codecs, digital signal processors (DSPs), baseband processors, and / or neural network processing units (NPUs). These different processing units may be independent devices or integrated into one or more processors.
[0062] The controller can generate operation control signals based on the instruction opcode and timing signals to complete the control of instruction fetching and execution.
[0063] The processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. This memory can store instructions or data that the processor 110 has just used or that are used repeatedly. If the processor 110 needs to use the instruction or data again, it can retrieve it directly from the memory. This avoids repeated accesses, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
[0064] In some embodiments, the processor 110 may include one or more interfaces. Interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.
[0065] It is understood that the interface connection relationships between the modules illustrated in the embodiments of the present invention are merely illustrative and do not constitute a structural limitation on the electronic device 100. In other embodiments of this application, the electronic device 100 may also employ different interface connection methods or combinations of multiple interface connection methods as described in the above embodiments.
[0066] The charging management module 140 is used to receive charging input from the charger.
[0067] The power management module 141 is used to connect the battery 142, the charging management module 140, and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140 to power the processor 110, internal memory 121, display 194, camera 193, and wireless communication module 160, etc.
[0068] The wireless communication function of electronic device 100 can be realized through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor and baseband processor, etc.
[0069] The mobile communication module 150 can provide wireless communication solutions, including 2G / 3G / 4G / 5G, for use on electronic devices 100.
[0070] The wireless communication module 160 can provide solutions for wireless communication applications on the electronic device 100, including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR) technology, etc.
[0071] Electronic device 100 implements display functions through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, connected to the display screen 194 and the application processor. The GPU performs mathematical and geometric calculations and is used for graphics rendering. Processor 110 may include one or more GPUs, which execute program instructions to generate or modify display information. The display screen 194 is used to display images, videos, etc.
[0072] Electronic device 100 can perform shooting functions through ISP, camera 193, video codec, GPU, display 194 and application processor.
[0073] The external storage interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device 100. The external memory card communicates with the processor 110 through the external storage interface 120 to perform data storage functions. For example, music, video, and other files can be saved on the external memory card.
[0074] Internal memory 121 can be used to store computer executable program code, which includes instructions. Internal memory 121 may include a program storage area and a data storage area. Furthermore, internal memory 121 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, universal flash storage (UFS), etc. Processor 110 executes various functional applications and data processing of electronic device 100 by running instructions stored in internal memory 121 and / or instructions stored in memory disposed in the processor.
[0075] Electronic device 100 can implement audio functions, such as music playback and recording, through audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, and application processor.
[0076] Pressure sensor 180A is used to sense pressure signals and convert them into electrical signals. Gyroscope sensor 180B can be used to determine the motion posture of electronic device 100. Barometric pressure sensor 180C is used to measure air pressure. Magnetic sensor 180D includes a Hall sensor. Accelerometer sensor 180E can detect the magnitude of acceleration of electronic device 100 in various directions (generally three axes). Distance sensor 180F is used to measure distance. Proximity light sensor 180G may include, for example, a light-emitting diode (LED) and a photodetector; electronic device 100 emits infrared light outward through the LED. Electronic device 100 uses a photodiode to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it can be determined that an object is near electronic device 100. When insufficient reflected light is detected, electronic device 100 can determine that no object is near electronic device 100. Ambient light sensor 180L is used to sense ambient light intensity. Fingerprint sensor 180H is used to collect fingerprints. Temperature sensor 180J is used to detect temperature. Touch sensor 180K, also known as a "touch device". Touch sensor 180K can be located on display screen 194, and the touch sensor 180K and display screen 194 together form a touch screen, also known as a "touchscreen". In some embodiments, touch sensor 180K can also be located on the surface of electronic device 100, in a different position than display screen 194. Buttons 190 include power button, volume buttons, etc. Motor 191 can generate vibration prompts. Indicator 192 can be an indicator light, used to indicate charging status, battery level changes, messages, missed calls, notifications, etc. SIM card interface 195 is used to connect a SIM card.
[0077] For the scenarios in the above examples, the operating system of electronic device 100 may include, but is not limited to, operating systems such as Symbian, Android, Windows, Apple (MacOS, iOS), Blackberry, HarmonyOS, Linux, or Unix, or corresponding server operating systems.
[0078] In some possible implementations, the software development system provided in this application can be based on the Electron framework. This application uses the Electron framework as an example to illustrate the software development system. However, those skilled in the art should understand that the software development system provided in this application can be applied to other frameworks, and this application does not impose any limitations on this.
[0079] Figure 3 This is a structural block diagram of the software development system provided in the embodiments of this application.
[0080] refer to Figure 3 The software development system includes multiple business modules, a package distribution management module, and a software development module.
[0081] In this embodiment, each business module includes a main process application package, a rendering process application package, a general interface, and a custom interface, all compiled from the corresponding business code. The custom interface is optional and can be determined based on whether a new interface has been defined in the business code. If no new interface is defined, the business module may only include the main process application package, the rendering process application package, and the general interface.
[0082] As an example, a package distribution management module could be the Node Package Manager (NPM), the package manager for the JavaScript (js) language and the default package management tool for js scripts (Node.js). Through NPM, libraries (also known as modules or packages) that depend on Node.js projects can be installed, shared, and managed.
[0083] As an example, the software development module includes the Electron framework for the target software to be developed, comprising a main process, a rendering process, and a bridging module. The main process runs the main script and can create and manage browser windows. The background process provides basic services such as cloud synchronization, account login, data encryption, and logging.
[0084] The rendering process is responsible for rendering web pages in the browser. Each Electron window can run one or more web pages in its corresponding rendering process. The user interface (UI) process is the target software's user interface (UI) process, used for user interaction. This includes UI interaction scenarios such as responding to user mouse clicks and receiving user-inputted text.
[0085] The bridging module is a module that integrates a general interface, and can also add custom interfaces for each business module. It acts as a bridge for communication between the main process and the rendering process, providing a communication interface between them.
[0086] The software development module may also include a function library module. For example, the function library module can be a Node Foreign Function Interface (FFI) or a Node.js Application Programming Interface (N-API). The function library module includes library functions that can be directly called by business code.
[0087] In this embodiment, software development is carried out through a three-layer architecture of business development module, package distribution management module, and software development module. This allows each business to be developed and evolved independently in its respective business development module and stored in the package distribution management module in the form of business software packages. The software development module can dynamically call different functions and versions of business software packages according to needs to generate target software. This enables independent development of each business module, reduces the business overlap between different business modules, simplifies the process of cross-team software development, and improves the efficiency of cross-team software development.
[0088] Meanwhile, the main process and the rendering process communicate through a bridging module. Compared to direct communication between the main process and the rendering process, this decouples the main process and the rendering process, allowing each thread to maintain and upgrade its corresponding business separately, thus increasing maintainability.
[0089] based on Figure 3 In addition to the software development system shown, this application also provides a software development method. Figure 4 This is a flowchart illustrating the software development method provided in the embodiments of this application.
[0090] refer to Figure 4 Software development methodologies include:
[0091] S401. The business development module compiles and packages the received business code to obtain a business software package.
[0092] In some possible implementations, the business code includes the main process business code, the rendering process business code, and the interface code. The business package includes the main process application package, the rendering process application package, and the name and version information of the business.
[0093] The received business code is compiled and packaged to obtain a business software package, which includes: a main process application package (compiled and packaged by the business development module based on the business name and version information); a rendering process application package (compiled and packaged by the business development module based on the business name and version information); and a final business software package (packaged by the main process application package, rendering process application package, and interface code based on the received business name and version information). The main process application package and the rendering process application package exchange data through a general interface or a custom interface indicated by the interface code.
[0094] As an example, taking the business code of a note-taking application as an example, the main process business code can include the note data module code.
[0095] The note data module code may also include note storage function code, note cloud synchronization function code, note continuation function code, note account function code, note artificial intelligence (AI) function code, note cross-platform calling function code, etc.
[0096] As an example, in the business logic code of a note-taking application, the rendering process business logic code can include the note-taking interface code and the background process code.
[0097] The note-taking interface code can include the main page code of the note-taking application, the data storage interface code, and the note-taking cloud synchronization interface code.
[0098] The background process code includes code that performs functions such as cloud synchronization, account login, and account logout.
[0099] The interface code is used to record the general interfaces and custom interfaces called in the above code.
[0100] Figure 5 This is a schematic diagram of the structure of the business software package in the software development method provided in the embodiments of this application.
[0101] As an example, Figure 5 The example of note-taking services illustrates the structure of the note-taking service software package obtained by compiling and packaging.
[0102] refer to Figure 5 When compiling and packaging, you can first compile and package the business code based on the English word "note" in the business name and the version number.
[0103] For example, when compiling and packaging the main process business code, each functional module in the note data module code can be compiled, and then all functional modules can be packaged to obtain the main process application package, which can be named "app-note-main".
[0104] Similarly, when compiling and packaging the rendering process business code, each functional module in the note interface code can be compiled to obtain the rendering process application package, which is named "app-note".
[0105] In some possible implementations, the background process code in the rendering process's business logic can be compiled and packaged separately and named "app-backend".
[0106] After the interface code is compiled, the general interfaces in the bridging module can be bound to the main process application package according to the interfaces called in the interface code, or custom interfaces can be added to the bridging module and then bound to the main process application package.
[0107] Then, the main process application package, the rendering process application package, and the binding relationships of general and custom interfaces in the bridging module are packaged to obtain the business package for the note-taking service. As an example, the name of the business package for the note-taking service can be "note," and the version information can be set according to preset rules. For example, the version information can be set according to the packaging date, or it can be set according to the rule of "major version - minor version - revision number." This application does not restrict the method of setting version information.
[0108] S402. The business development module sends the business software package to the package distribution management module.
[0109] In some possible implementations, after the business development module sends the business software package to the package distribution management module, the package distribution module can determine whether the package distribution management module has a business software package with the same name and version based on the name and version information of the business software package. If a business software package with the same name but a different version exists, the new version is used to replace the old version of the software business package, and then the version of the business software package in the package distribution management module is updated.
[0110] S403. The software development module sends the first call instruction to the package distribution management module based on the received target software configuration file.
[0111] In some possible implementations, the target software configuration file can be uploaded by the user, and it may include the name and version of at least one service. For example, when the target software is office software, the target software configuration file may include the names and versions of the note-taking service module, calendar service module, global favorites service module, trust ring service module, and other service modules.
[0112] The first invocation instruction may include the business name and version of each business module, or it may only include the business name and version that need to be updated.
[0113] S404. The package distribution management module matches business software packages with the same name and version information based on the first call instruction received.
[0114] S405, the package distribution management module sends the business software package to the software development module.
[0115] In some possible implementations, referring to the package distribution management module shown in S402, after receiving the first call instruction, the package distribution management module matches the same business software package with the same name and version information in the stored business software package according to each business name and version information in the first call instruction, and sends the matched business software package to the software development module.
[0116] If no matching service package with the same service name and version information is found, the package distribution management module can also send a prompt message to the software development module. This prompt message is used to remind developers to check if there are any errors in the name or version information entered in the target software configuration file.
[0117] S406 The software development module compiles, packages, and publishes the obtained business software packages to obtain the target software.
[0118] Some possible implementations involve compiling, packaging, and distributing the acquired business software package to obtain the target software, including:
[0119] The main process application package in each business software package is compiled and packaged to obtain the main process application of the target software. The main process application includes multiple main process application packages, as well as the name and version information of each main process application package.
[0120] The rendering process application package in each business software package is compiled and packaged to obtain the rendering process application of the target software. The rendering process application includes multiple rendering process application packages, as well as the name and version information of each rendering process application package.
[0121] The common and custom interfaces in each business software package are compiled and packaged to obtain the bridging module. The bridging module includes the calling interface corresponding to each main process application package or rendering process application package. The calling interface includes common interfaces and / or custom interfaces.
[0122] In this embodiment, the packaging method is similar to that in S401, and will not be described in detail here.
[0123] The main process application, the rendering process application, and the bridging module are published to obtain the target software. In the target software, the main process and the rendering process exchange data through the bridging module.
[0124] Figure 6 This is a schematic diagram of the architecture of the target software in the software development method provided in the embodiments of this application.
[0125] Among some possible implementations, refer to Figure 6 The main process includes a runtime environment module, which includes cloud synchronization service, continuity service, account service, and data disk persistence service.
[0126] The main process also includes several main process application packages, such as the note data module (app-note-main), calendar / to-do module (app-calendar-main), file management (app-manager-main), trust ring (app-security-main), global favorites (app-manager-main), remote control (app-control-main), contacts / calls (app-link-main), other (app-other-main), process management, version download, and other modules.
[0127] The rendering process includes a tab adaptation module, which contains adaptation code for interfaces such as tabs, title bars, settings interfaces, split screens, and data interfaces.
[0128] The rendering process also includes multiple rendering process application packages, such as the rendering code for the note interface (app-note), calendar / to-do interface (app-calendar), file management interface (app-manager), global collection interface (app-manager), trust ring interface (app-security), and remote control interface (app-control).
[0129] In this embodiment, by compiling and packaging the business code in the business development module separately according to the main process, rendering process and bridging module, and then compiling and packaging it separately according to the main process, rendering process and bridging module when generating the target software, a unified communication method can be provided between the main process and the rendering process, decoupling the main process and the rendering process and enhancing the maintainability of the target software.
[0130] At the same time, compiling and packaging various business / services independently can provide more service capabilities, unify the code lifecycle, and facilitate the management of service capabilities.
[0131] Figure 7This is a schematic diagram of the process by which the main process and the rendering process exchange data through a bridging module in the software development method provided in this application embodiment.
[0132] In some possible implementations, the main process and the rendering process exchange data through a bridging module, including:
[0133] S701, The main process registers the corresponding service based on the name of the main process application package.
[0134] In some possible implementations, when compiling and packaging the main process application package in each business software package to obtain the main process application of the target software, each main process application package can be registered by name to obtain the corresponding service / business, that is, the service / business corresponding to the main process application package is brought online. The version information of the registered main process application package can also be recorded during registration.
[0135] For example, if the main application package is "app-note-main" and the version information can be "major version-minor version-revision number" (e.g., 4.2.138), then the registered service can be "note". After successful registration, the note-taking service with version information 4.2.138 will be launched.
[0136] S702, The rendering process sends a second call instruction to the bridging module.
[0137] In some possible implementations, the second invocation instruction includes the name and version information of the main process application package. The second invocation instruction can be issued automatically by the rendering process based on software runtime conditions, or it can be issued after receiving and responding to a user instruction. The second invocation instruction is used to invoke the corresponding service / business logic in the main process.
[0138] S703, the bridging module sends the name and version information from the second call instruction to the main process.
[0139] S704. The main process queries and calls the corresponding main process application package based on the received name and version information.
[0140] In some possible implementations, the main process can first search for successfully registered services / businesses based on the received name. If a successfully registered service / business is found, it then checks the version information to verify if it is the correct version. If the version information is also verified successfully, it can be determined that the main process application package corresponding to the service / business can be invoked.
[0141] For example, if the name in the second call instruction is "note" and the version information is 4.2.138, the main process can match the successfully registered note-taking service based on "note", and then retrieve the version information of the registered note-taking service. If the version information of the registered note-taking service is also 4.2.138, then it is confirmed that the main process application package of the note-taking service can be called.
[0142] S705: Data is sent to the rendering process through the bridging module via the call interface of the main process application package.
[0143] In some possible implementations, the main process application package is bound to a corresponding general interface or custom interface. After determining that the main process application package corresponding to the service / business can be called, data can be sent to the rendering process through the general interface or custom interface bound to the main process application package.
[0144] In this embodiment, the business / services in the main process, the business / services in the rendering process, and the bridging module are decoupled, which is conducive to each business providing services independently and updating and maintaining them independently, simplifying the software development process and improving software development efficiency.
[0145] Here, we will take the note-taking service running on a personal computer (PC) as an example to further explain the interaction logic between the main process and the rendering process.
[0146] Figure 8 This is a flowchart illustrating the target software note-taking service in the software development method provided in this application embodiment.
[0147] refer to Figure 8 During the rendering process, the tab adaptation module can adapt tabs according to page configuration parameters. These page configuration parameters can be written by developers into the target software configuration file. They can include the number of tabs, the name of each tab, the style and name of the title bar, options in the settings interface, whether split-screen is supported, configuration of common and custom interfaces, etc.
[0148] Tab adaptation and the note interface work together to realize the interactive experience (UX) between the note-taking service and the user. When a service in the note interface is called, the UX can send a service call (getservice) command to the bridging module to obtain the data of the service from the main process.
[0149] After receiving the getservice command, the bridging module can obtain the interface bound to the service in the getservice command. For example, the interface can be a general interface or a custom interface.
[0150] After the bridging module exposes the bound interface, the getservice command can obtain the corresponding service data from the runtime environment and the note data module through the exposed interface, completing a data interaction in the note business.
[0151] It should be understood that the above examples are intended to help those skilled in the art understand the embodiments of this application, and are not intended to limit the embodiments of this application to the specific values or specific scenarios illustrated.
[0152] Based on the examples given above, those skilled in the art will obviously be able to make various equivalent modifications or changes, which also fall within the scope of the embodiments of this application.
[0153] Corresponding to the software development method applied to the business development module provided in the above embodiments, Figure 9 This is a structural block diagram of a software development apparatus provided in an embodiment of this application. For ease of explanation, only the parts related to the embodiment of this application are shown.
[0154] refer to Figure 9 Software development apparatus, used in business development modules, including:
[0155] The compilation module 901 is used to compile and package the received business code to obtain a business software package.
[0156] The sending module 902 is used to send the business software package to the package distribution management module.
[0157] In some possible implementations, the business code includes main process business code, rendering process business code, and interface code, and the business software package includes main process application package, rendering process application package, and the name and version information of the business.
[0158] The compilation module 901 is specifically used by the business development module to compile and package the main process business code into a main process application package based on the business name and version information. The business development module also compiles and packages the rendering process business code into a rendering process application package based on the business name and version information. Based on the business name and version information, the main process application package, the rendering process application package, and the interface code are packaged into a business package. The main process application package and the rendering process application package exchange data through a general interface or a custom interface indicated by the interface code.
[0159] Corresponding to the software development method applied to the software development module provided in the above embodiments, Figure 10 This is a structural block diagram of a software development apparatus provided in an embodiment of this application. For ease of explanation, only the parts related to the embodiment of this application are shown.
[0160] refer to Figure 10 Software development apparatus, used in software development modules, including:
[0161] The acquisition module 1001 is used to send a first call instruction to the package distribution management module based on the received target software configuration file to obtain the corresponding business software package.
[0162] Compilation module 1002 is used to compile, package, and distribute the acquired business software packages to obtain the target software.
[0163] In some possible implementations, the target software configuration file includes the name and version of at least one service.
[0164] The acquisition module 1001 is specifically used to send a first invocation instruction to the package distribution management module based on the name and version information of the service in the target software configuration file. The first invocation instruction includes the name and version information of at least one service. It also receives service packages from the package distribution management module, which are service packages whose names and version information match those of the packages matched by the package distribution management module based on the received first invocation instruction.
[0165] In some possible implementations, compilation module 1002 is specifically used to compile and package the main process application package in each business software package to obtain the main process application of the target software. The main process application includes multiple main process application packages, as well as the name and version information of each main process application package. It also compiles and packages the rendering process application package in each business software package to obtain the rendering process application of the target software. The rendering process application includes multiple rendering process application packages, as well as the name and version information of each rendering process application package. Furthermore, it compiles and packages the general and custom interfaces existing in each business software package to obtain a bridging module. The bridging module includes the calling interface corresponding to calling each main process application package or rendering process application package, and the calling interface includes general interfaces and / or custom interfaces. Finally, it publishes the main process application, the rendering process application, and the bridging module to obtain the target software. In the target software, the main process and the rendering process exchange data through the bridging module.
[0166] In some possible implementations, a communication module 1003 is also included, used by the rendering process to send a second invocation instruction to the bridging module. The second invocation instruction includes the name and version information of the main process application package. The bridging module forwards the name and version information to the main process, which then queries and invokes the corresponding main process application package based on the received name and version information, and sends data to the rendering process through the bridging module via the invocation interface of the main process application package.
[0167] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is used as an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above.
[0168] The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. For example, a "module" can be a software program, a hardware circuit, or a combination of both that implements the above functions. The hardware circuit may include application-specific integrated circuits (ASICs), electronic circuits, a processor (e.g., a shared processor, a proprietary processor, or a group processor, etc.) for executing one or more software or firmware programs, memory, combined logic circuits, and / or other suitable components that support the described functions.
[0169] Therefore, the modules of the various examples described in the embodiments of this application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0170] Furthermore, the specific names of each functional unit and module are merely for easy differentiation and are not intended to limit the scope of protection of this application. The specific working processes of the units and modules in the above system can be referred to the corresponding processes in the following method embodiments, and will not be repeated here.
[0171] It should be understood that the hardware system and chip in the embodiments of this application can execute the various methods for entering long standby mode described in the embodiments of this application. That is, the specific working process of the various products below can be referred to the corresponding process in the aforementioned method embodiments.
[0172] This application also provides another electronic device, including a processor and a memory.
[0173] Memory is used to store computer programs that can run on a processor.
[0174] A processor for performing the processing steps as described above in the method for entering a long standby mode.
[0175] This application also provides a computer-readable storage medium storing computer instructions; when the computer-readable storage medium is used on an electronic device, it causes the electronic device to perform the method as described above.
[0176] The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means.
[0177] The computer-readable storage medium can be any available medium that a computer can access, or a data storage device such as a server or data center that can be integrated with one or more media.
[0178] The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media, or semiconductor media (e.g., solid-state disks (SSDs)).
[0179] This application also provides a computer program product containing computer instructions, which, when run on an electronic device, enables the electronic device to execute the aforementioned technical solutions.
[0180] Figure 11 This is a schematic diagram of the structure of a chip provided in an embodiment of this application. Figure 11 The chip shown can be a general-purpose processor or a special-purpose processor. The chip includes a processor 1101. The processor 1101 is used to support electronic devices in executing the aforementioned technical solutions.
[0181] Optionally, the chip also includes a transceiver 1102, which is used to receive control from the processor 1101 and to support the communication device in executing the aforementioned technical solution.
[0182] Optional, Figure 11 The chip shown may also include: storage medium 1103.
[0183] It should be noted that, Figure 11The chip shown can be implemented using one or more field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gate logic, discrete hardware components, any other suitable circuits, or any combination of circuits capable of performing the various functions described throughout this application.
[0184] The electronic devices, computer storage media, computer program products, and chips provided in the embodiments of this application are all used to execute the methods provided above. Therefore, the beneficial effects they can achieve can be referred to the beneficial effects corresponding to the methods provided above, and will not be repeated here.
[0185] It should be understood that the above description is only intended to help those skilled in the art better understand the embodiments of this application, and is not intended to limit the scope of the embodiments of this application. Those skilled in the art can obviously make various equivalent modifications or variations based on the examples given above.
[0186] For example, some steps in the various embodiments of the above methods may be unnecessary, or new steps may be added. Alternatively, any combination of two or more of the above embodiments may be used. Such modifications, variations, or combinations also fall within the scope of the embodiments of this application.
[0187] It should also be understood that the above description of the embodiments of this application focuses on highlighting the differences between the various embodiments. Any similarities or differences not mentioned can be referred to each other. For the sake of brevity, they will not be repeated here.
[0188] It should also be understood that the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0189] It should also be understood that in the embodiments of this application, "pre-setting" or "pre-defining" can be achieved by pre-saving the corresponding code, table or other means that can be used to indicate relevant information in the device (e.g., including electronic devices), and this application does not limit the specific implementation method.
[0190] It should also be understood that the methods, situations, categories, and classifications of embodiments in this application are for the convenience of description only and should not constitute a special limitation. Various methods, categories, situations, and features in embodiments can be combined without contradiction.
[0191] It should also be understood that, in the various embodiments of this application, unless otherwise specified or in case of logical conflict, the terms and / or descriptions between different embodiments are consistent and can be referenced by each other, and the technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.
[0192] Finally, it should be noted that the above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A software development system, characterized in that, The system includes at least one business development module, a package distribution management module, and a software development module. Each business development module is communicatively connected to the package distribution management module, and the package distribution management module and the software development module are communicatively connected. The business development module compiles and packages the received business code to obtain a business software package, and sends the business software package to the package distribution management module; the business code includes main process business code, rendering process business code and interface code, and the business software package includes main process application package, rendering process application package and business name and version information; The process of compiling and packaging the business code to obtain a business software package includes: The business development module compiles and packages the main process business code and the rendering process business code according to the business name and business version information to obtain the main process application package and the rendering process application package. The main process application package and the rendering process application package exchange data through the general interface or custom interface indicated by the interface code. Based on the name and version information of the service, the main process application package, the rendering process application package, and the interface code are packaged to obtain the service software package; The package distribution management module stores the received business software packages, and when it receives the first call instruction from the software development module, it sends the corresponding business software package to the software development module. The software development module sends a first call instruction to the package distribution management module according to the received target software configuration file to obtain the corresponding business software package; and compiles and packages the main process application package in each business software package to obtain the main process application of the target software. The main process application includes multiple main process application packages, as well as the name and version information of each main process application package. The rendering process application package in each of the business software packages is compiled and packaged to obtain the rendering process application of the target software. The rendering process application includes multiple rendering process application packages, as well as the name and version information of each rendering process application package. The general interfaces and custom interfaces existing in each of the business software packages are compiled and packaged to obtain a bridging module. The bridging module includes the calling interface corresponding to each of the main process application packages or the rendering process application packages. The calling interface includes general interfaces and / or custom interfaces. The main process application, the rendering process application, and the bridging module are published to obtain the target software. In the target software, the main process and the rendering process exchange data through the bridging module.
2. The software development system according to claim 1, characterized in that, The target software configuration file includes the name and version of at least one service; The software development module sends a first invocation instruction to the package distribution management module based on the received target software configuration file to obtain the corresponding business software package, including: Based on the name and version information of the service in the target software configuration file, a first invocation instruction is sent to the package distribution management module, wherein the first invocation instruction includes the name and version information of at least one of the services; The package distribution management module matches the business software packages with the same name and version information according to the received first call instruction, and sends the business software packages to the software development module.
3. The software development system according to claim 1 or 2, characterized in that, The main process and the rendering process exchange data through the bridging module, including: The rendering process sends a second invocation instruction to the bridging module, the second invocation instruction including the name and version information of the main process application package; The bridging module forwards the name and version information to the main process. The main process queries and calls the corresponding main process application package based on the received name and version information, and sends data to the rendering process through the bridging module via the calling interface of the main process application package.
4. The software development system according to claim 1 or 2, characterized in that, The business development modules include a note-taking business module, a calendar business module, a global collection business module, a trust ring business module, and other business modules; The package distribution management module is the node package manager NPM module; The software development module is an office software development module, and the target software is office software.
5. A software development method, characterized in that, Applied to software development modules, the method includes: Based on the received target software configuration file, a first invocation instruction is sent to the package distribution management module to obtain the corresponding business software package. The business software package is obtained by the business development module compiling and packaging the received business code. The business code includes main process business code, rendering process business code, and interface code. The business software package includes a main process application package, a rendering process application package, and the name and version information of the business. The business development module compiles and packages the main process business code and the rendering process business code respectively according to the business name and version information to obtain the main process application package and the rendering process application package. The main process application package and the rendering process application package exchange data through a general interface or a custom interface indicated by the interface code. Based on the name and version information of the business, the main process application package, the rendering process application package, and the interface code are packaged to obtain the business software package. The main process application package in each of the business software packages is compiled and packaged to obtain the main process application of the target software. The main process application includes multiple main process application packages, as well as the name and version information of each main process application package. The rendering process application package in each of the business software packages is compiled and packaged to obtain the rendering process application of the target software. The rendering process application includes multiple rendering process application packages, as well as the name and version information of each rendering process application package. The general interfaces and custom interfaces existing in each of the business software packages are compiled and packaged to obtain a bridging module. The bridging module includes the calling interface corresponding to each of the main process application packages or the rendering process application packages. The calling interface includes general interfaces and / or custom interfaces. The main process application, the rendering process application, and the bridging module are published to obtain the target software. In the target software, the main process and the rendering process exchange data through the bridging module.
6. The method according to claim 5, characterized in that, The target software configuration file includes the name and version of at least one service; The step of sending a first invocation instruction to the package distribution management module based on the received target software configuration file to obtain the corresponding business software package includes: Based on the name and version information of the service in the target software configuration file, a first invocation instruction is sent to the package distribution management module, wherein the first invocation instruction includes the name and version information of at least one of the services; The system receives a service package from the package distribution management module. The service package is a service package whose name and version information are matched by the package distribution management module according to the received first invocation instruction.
7. The method according to claim 5 or 6, characterized in that, The main process and the rendering process exchange data through the bridging module, including: The rendering process sends a second invocation instruction to the bridging module, the second invocation instruction including the name and version information of the main process application package; The bridging module forwards the name and version information to the main process. The main process queries and calls the corresponding main process application package based on the received name and version information, and sends data to the rendering process through the bridging module via the calling interface of the main process application package.
8. An electronic device, characterized in that, The method includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the computer program, implements the method as claimed in any one of claims 5 to 7.
Citation Information
Patent Citations
Rendering process separation method based on Chromium
CN107292163A
Industrial software micro-service merging method and system
CN115827100A
Implementation method and device of application program based on Electron
CN116301807A