APP development platform, APP development method and electronic device

Through the component toolbox and code generation engine of the APP development platform, users can quickly connect and compile components and generate executable code, solving the problem of code reuse between different operating systems and devices, and improving development efficiency.

CN113821203BActive Publication Date: 2025-01-10HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202010569877.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-06-20
Publication Date
2025-01-10
Estimated Expiration
2040-06-20

AI Technical Summary

Technical Problem

In the prior art, when developing APPs, different program codes are required to write different operating systems and devices, resulting in inefficient development, and the programming languages ​​and interfaces of different APPs are inconsistent, so the functional codes of existing APPs cannot be directly reused.

Method used

It provides an APP development platform, including a component toolbox, a component orchestration designer and a code generation engine. Users can select components from the toolbox for connection and compilation, generate executable source code, and realize the rapid development of APP.

Benefits of technology

Through componentization, users can quickly combine the required APP functions, avoid repeated code writing, improve development efficiency, and simplify the APP development process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113821203B_ABST
    Figure CN113821203B_ABST
Patent Text Reader

Abstract

The present application discloses an APP development method and an APP development platform, the method comprising: a user selects a component from a component toolbox, and an APP development platform is installed in an electronic device. The component layout designer can create components and display the composition of the components. The components can consist of a component body and one or more connection point components, and the connection points support one or more data entity types. The user connects the first component and the second component in the interface of the component layout designer; in response to the operation, the component design layout connects the first component and the second component; the user selects to compile the connected components in the component layout designer, and in response to the operation, the code generation engine compiles the multiple connected components displayed in the component layout designer into the executable code of the APP. In this way, developers can use multiple existing components to quickly combine into the APP that the user needs to develop, without having to write program code one by one to implement the functional logic of the APP.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of electronic technology, and in particular to an APP development platform, an APP development method and an electronic device. Background Art

[0002] At present, various electronic devices (such as mobile phones, tablets, computers, car computers, smart watches, etc.) can install applications (APP). Developers need to develop various APPs for these electronic devices. Generally, for the same APP, developers need to write a set of program codes for electronic devices with different operating systems or different device forms. For example, for the same video APP, developers need to write a set of program codes for Android phones, iOS phones, computers, etc., and the code written by developers for one electronic device cannot be directly reused in another electronic device with a different operating system.

[0003] In addition, the program codes of many APPs use different programming languages, which makes it impossible for developers to reuse the program codes that implement a certain function in existing APPs when developing APPs. For example, existing photo APPs and beauty APPs both have photo functions. If developers need to develop an APP with a photo function, since the existing APPs with photo functions use different programming languages ​​or interfaces, developers cannot directly reuse the program codes that implement the photo function in the existing APPs. In this way, developers cannot use the program codes that implement certain functions in the existing APPs to conveniently develop a new APP, and it takes a lot of time to develop an APP.

[0004] Therefore, how to improve the efficiency of developing APPs on the development platform and quickly develop new APPs is an urgent problem to be solved. Summary of the invention

[0005] The present application provides an APP development platform, an APP development method and an electronic device. The APP development platform provided by the present application allows users to select components for connection in the APP development platform, and the APP development platform can verify whether the components selected by the user can be connected. When the components selected by the user are successfully connected, the user can choose to compile the successfully connected components into executable source code for the APP in the APP development platform. In this way, users can quickly develop APPs.

[0006] In the first aspect, the present application provides an APP development platform, which is applied to electronic devices, and the APP development platform includes a component toolbox, a component layout designer, and a code generation engine. Among them, the component toolbox is used to provide components, which are independent modules that implement specific functions. The components are composed of a component body and one or more connection points, and the connection points support one or more data entity types; the component layout designer is used to display components, and connects two or more components according to the user's operation of connecting components; the code generation engine is used to generate executable source code for the first APP from two or more components connected in the component layout designer, and the first APP includes two or more components.

[0007] The data entity is the data that the connection point can support. The data entity type is the type of the data entity. The data entity type can include audio, video, image, text and other types.

[0008] Through the APP development platform provided by this application, the user selects a component from a component toolbox, and the APP development platform is installed in the electronic device. The component layout designer can create components and display the composition of the components. The components can consist of a component body and one or more connection point components. The user connects the first component and the second component in the interface of the component layout designer; in response to the operation, the component design layout connects the first component and the second component; the user selects to compile the connected components in the component layout designer, and in response to the operation, the code generation engine compiles the multiple connected components displayed in the component layout designer into the executable code of the APP. In this way, developers can use multiple existing components to quickly combine into the APP that the user needs to develop, without having to write program code one by one to implement the functional logic of the APP.

[0009] In a possible implementation, the component layout designer is further used to: in response to a user's operation of connecting the first component and the second component, verify whether the first component and the second component match; if the first component and the second component match, connect the first connection point and the second connection point, the first connection point being the connection point of the first component, and the second connection point being the connection point of the second component. In this way, data format mismatch between the first component and the second component can be avoided.

[0010] In one possible implementation, the matching of the first component and the second component includes: the first data entity type is the same as the second data entity type, the first data entity type includes the second data entity type, or the second data entity type includes the first data entity type, wherein the first data entity type is the type of data entity supported by the first connection point and the second data entity is the type of data entity supported by the second connection point.

[0011] In a possible implementation, the component toolbox is also used to: in response to the user uploading a component or downloading a component from the component market, display the name of the component uploaded or downloaded from the component market by the user. In this way, the APP platform can provide users with more components and improve user experience.

[0012] In a possible implementation, the component layout designer is specifically used to: display a connection line connecting the first connection point and the second connection point, so as to prompt the user that the first connection point and the second connection point are successfully connected.

[0013] In a possible implementation, the component layout designer is specifically used to: display the first connection point and the second connection point in an overlapping manner, so as to prompt the user that the first connection point and the second connection point are successfully connected.

[0014] In a possible implementation, the component layout designer is specifically configured to: display the first component according to an operation of a user selecting the first component from a component toolbox.

[0015] In a possible implementation, the component arrangement designer is further used to: in response to the user selecting an operation of intelligent arrangement of the first component, display the component call tree of the first component; the component call tree is used to display the second component and / or the third component matching the first component, and the fourth component and / or the fifth component matching the second component, until the Nth component matching the Mth component, and the Nth component is a component without an output connection point, where M and N are positive integers. In this way, when the user does not know the component matching the first component, the component that can be connected to the first component can be intelligently recommended to the user, saving the user's time and improving the user experience.

[0016] In a possible implementation, the component call tree of the first component is displayed, specifically: the component call tree of the first component is displayed according to the function of the first component and / or the data entity type supported by the connection point of the first component. In this way, the components matching the first component can be recommended more accurately.

[0017] In a possible implementation, the component arrangement designer is further configured to: in response to a user's operation of deleting a component, delete a component in the component call tree.

[0018] In a possible implementation, the component orchestration designer is further used to: save an orchestration model diagram of two or more components that have completed the connection, and first information in the orchestration model diagram; the first information includes one or more of the IDs and names of the two or more components, and the data entity types supported by the connection points of the two or more components.

[0019] In a possible implementation, the code generation engine is specifically used to generate executable source code of the first APP according to the arrangement model diagram, the first information and the component call template, wherein the component call template includes program code in a preset format. The component call template is a code template preset according to different types of components and properties of connection points, and encapsulates the general interface call code logic.

[0020] In a second aspect, the present application provides an APP development method, which includes: in response to a user's operation of selecting a component from a component toolbox of an electronic device, the electronic device displays the component in a component orchestration designer, where the component is an independent module that implements a specific function; the component is composed of a component body and one or more connection points, and the connection points support one or more data entity types; in response to a user's operation of connecting multiple components, the electronic device connects two or more components in the component orchestration designer; in response to a user's operation of selecting two or more components to compile, the electronic device generates executable source code of a first APP from the connected two or more components in a code generation engine.

[0021] The data entity is the data that the connection point can support. The data entity type is the type of the data entity. The data entity type can include audio, video, image, text and other types.

[0022] In this way, users can use existing components to connect to the APP without having to rewrite the APP code, which can save users time in developing the APP.

[0023] In a possible implementation, the electronic device connects two or more components in the component layout designer, specifically including: in response to a user's operation of connecting a first component and a second component, the electronic device verifies through the component layout designer whether the first component and the second component match; if the first component and the second component match, the electronic device connects a first connection point and a second connection point, the first connection point being the connection point of the first component, and the second connection point being the connection point of the second component. In this way, it can be ensured that the two components connected by the user are matched.

[0024] In one possible implementation, the matching of the first component and the second component includes: the first data entity type is the same as the second data entity type, the first data entity type includes the second data entity type, the second data entity type includes the first data entity type, the first data entity type is the type of data entity supported by the first connection point, and the second data entity is the type of data entity supported by the second connection point.

[0025] In a possible implementation, the method further includes: in response to the user viewing the properties of the first connection point of the first component, the electronic device displays the data entity types supported by the first connection point in the component layout designer. In this way, the user can know the properties of the first connection point of the first component, so as to facilitate subsequent operations of the user, for example, searching for a second component matching the first component according to the properties of the first connection point.

[0026] In a possible implementation, the electronic device connects the first connection point and the second connection point including: displaying a connection line connecting the first connection point and the second connection point; or overlapping the first connection point and the second connection point. In this way, the user can be prompted that the first connection point and the second connection point have been connected.

[0027] In a possible implementation, the method further includes: in response to the user selecting an operation to intelligently arrange the first component, the electronic device displays a component call tree of the first component in a component arrangement designer; the component call tree is used to display the second component and / or the third component that matches the first component, and the fourth component and / or the fifth component that matches the second component, until the Nth component that matches the Mth component, and the Nth component is a component without an output connection point, wherein M and N are positive integers. In this way, when the user does not know the component that matches the first component, the component that can be connected to the first component can be intelligently recommended to the user, saving the user's time and improving the user experience.

[0028] In a possible implementation, the electronic device displays a component call tree of the first component in the component layout designer, specifically including: displaying the component call tree of the first component according to the function of the first component and / or the data entity type supported by the connection point of the first component. In this way, components matching the first component can be recommended more accurately.

[0029] In a possible implementation, the method further includes: in response to a user's operation of deleting a component, the electronic device deletes the component in the component call tree. In this way, the user can delete the component in the component call tree that is not related to the first APP.

[0030] In one possible implementation, the method also includes: the electronic device saves an orchestration model diagram of two or more components that have completed the connection, as well as first information in the orchestration model diagram in a component orchestration designer; the first information includes one or more of the IDs and names of the two or more components, and the data entity types supported by the connection points of the two or more components.

[0031] In a possible implementation, the method further includes: the electronic device generates executable source code of the first APP in the code generation engine according to the arrangement model diagram, the first information and the component call template, wherein the component call template includes program code in a preset format. The component call template is a code template preset according to different types of components and properties of connection points, and encapsulates the general interface call code logic.

[0032] In the third aspect, the present application provides an electronic device, comprising: one or more processors, one or more memories; the one or more memories are respectively coupled to one or more processors; the one or more memories are used to store computer program code, and the computer program code includes computer instructions; when the computer instructions run on the processor, the electronic device executes the APP development method in any possible implementation of any of the above aspects.

[0033] In a fourth aspect, an embodiment of the present application provides a computer storage medium, including computer instructions, which, when executed on an electronic device, enables a communication device to execute an APP development method in any possible implementation of any of the above aspects.

[0034] In a fifth aspect, an embodiment of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute an APP development method in any possible implementation of any of the above aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments of the present application will be described below.

[0036] Figure 1A A schematic diagram of a video decoding component provided in an embodiment of the present application;

[0037] Figure 1B A schematic diagram of a composite component provided in an embodiment of the present application;

[0038] Figure 2 A schematic diagram of the architecture of an APP development platform 10 provided in an embodiment of the present application;

[0039] Figure 3 A schematic diagram of a component toolbox 101 provided in an embodiment of the present application;

[0040] Figure 4 A schematic diagram of a user interface provided in an embodiment of the present application;

[0041] Figure 5A-5G A schematic diagram of a user interface provided in an embodiment of the present application;

[0042] Figure 6A-6B A schematic diagram of a user interface provided in an embodiment of the present application;

[0043] Figure 7A-7B A schematic diagram of a user interface provided in an embodiment of the present application;

[0044] Figure 8A-8D A user interface schematic diagram is provided for an embodiment of the present application;

[0045] Fig. 9 A flowchart of an APP development method provided in an embodiment of the present application;

[0046] Fig.10 A schematic diagram of an application scenario provided for an embodiment of the present application;

[0047] Fig.11 A schematic diagram of a component development ecosystem provided for an embodiment of the present application;

[0048] Fig.12 A schematic diagram of the correspondence between the domain description language of the component and the component graphics provided in the embodiment of the present application;

[0049] Fig.13 A schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present application;

[0050] Fig.14 A schematic block diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0051] The following will be combined with the accompanying drawings to clearly and thoroughly describe the technical solutions in the embodiments of the present application. In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in the text is only a description of the association relationship of the associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, "multiple" means two or more than two.

[0052] Hereinafter, the terms "first" and "second" are used only for descriptive purposes and cannot be understood as implying or suggesting relative importance or implicitly indicating the number of indicated technical features. Thus, the features defined as "first" and "second" may expressly or implicitly include one or more of the features, and in the description of the embodiments of the present application, unless otherwise specified, the meaning of "multiple" is two or more. In addition, the terms "including" and "having" and any of their variations mentioned in the description of the present application are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device including a series of steps or units is not limited to the listed steps or units, but may optionally include other steps or units that are not listed, or may optionally include other steps or units inherent to these processes, methods, products or devices. It should be noted that in the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or design. Rather, the use of words such as "exemplary" or "such as" are intended to present the relevant concepts in a concrete fashion.

[0053] First, some concepts involved in the embodiments of the present application (such as component Component, connection point ConnectPoint) are introduced.

[0054] (1) Component

[0055] A component is an independent module consisting of certain business logic and related data. Components can perform specific functions. For example, a video playback component can perform the function of playing videos, and a video decoding component can perform the function of decoding videos. An APP can be composed of one or more components. A component may or may not have a user interface. For example, a video decoding component may not have a user interface, that is, the process of an electronic device decoding a video through a video decoding component may not be displayed in the user interface, and the user does not perceive it. A single component can run independently in a user device. For example, a video playback component may be installed in a TV, and then the TV plays a video through the video playback component.

[0056] Each component includes a component body and several connection points (input connection points or output connection points). A component transfers data with other components through connection points. Generally, a component includes at least one input connection point or an output connection point. It is understandable that some components may not have connection points, that is, such components have no input connection points and output connection points. In an embodiment of the present application, the components that can be used to form an APP have at least one or more connection points.

[0057] For example, a component may be composed as follows: Figure 1A shown. Figure 1A 2 shows a graphical example of a video decoding component. The video decoding component may include a component body (such as Figure 1A decoded video 10a) and an input connection point (such as Figure 1A Input ConnectPoint10b), and two output connection points (such as Figure 1A Output connection point Output ConnectPoint10c and output connection point 10d).

[0058] (2)ConnectPoint

[0059] A connection point is a component's external intelligent interface, that is, an agent that implements input or output functions, and is responsible for interface protocol checks, negotiation and docking, data transmission, etc. with other connection points. A connection point is a way for a component to receive input data from another component, and also a way for a component to output data to another component. Connection points include input connection points or output connection points. Usually, each connection point can support one or more types of data entities. The data entities supported by a connection point can be images, audio, video, text, etc.

[0060] (3) Data Entity

[0061] Data entity, that is, data that a connection point can support. Data entity type is the type of data entity, and there are many types of data entities, such as audio, video, image, text, etc. As shown in Table 1, Table 1 exemplifies some types of data entities. Among them, videos can be classified according to different video coding standards. For example, video coding standards may include moving pictures experts group (MPEG) compression coding standards and high efficiency video coding (HEVC) standards. Among them, MPEG compression coding standards may include several coding standards such as MPEG, MPEG2 and MPEG4. HEVC may include coding standard H265. Audio files may have multiple formats. For example, audio files in the format of moving picture experts group audio layerIII (MP3 for short), audio files in the format of waveform audio (WAVE for short), and audio files in the format of lossless audio compression coding (FLAC for short). Types of data entities may also include text, pictures, compressed files, documents, streams, and data sets, etc. Streams may include video streams, audio streams, or composite streams. The composite stream may contain video stream and audio stream. The data set may include database table. Each type may also include some subtypes, formats or some other attributes. For example, the video type data entity type may include MPEG, MPEG2 and MPEG4 subtypes, and may also include: width, height, subtitles, language and other attributes. For example, Figure 1A The data entity types supported by the input connection point 10b may be video in MPEG format, 1920*1080 format, Chinese language, etc. For details, please refer to Table 1, which will not be described here.

[0062] Table 1

[0063]

[0064]

[0065] (4) Composite components

[0066] A composite component is composed of multiple components and can perform multiple functions. Figure 1BAs shown, the composite component 100A can be composed of a video decoding component and a video playing component. Among them, the video decoding component includes a main body (decoding video 10a), an input connection point (input connection point 10b) and two output connection points (output connection point 10c and output connection point 10d). The video playing component includes a main body (playing video 10e) and an input connection point (input connection point 10f). The output connection point 10d of the video decoding component is connected to the input connection point 10f of the video playing component. The composite component 100A can realize the functions of video decoding and video playing.

[0067] In order to solve the problem that it is time-consuming to develop APPs, in one implementation, developers can use the "Shortcuts" application on electronic devices to combine existing shortcuts or custom shortcuts into a new APP. That is, developers can use the "Shortcuts" application to merge multiple operations between multiple applications in the terminal to create an APP. For example, application A in the electronic device has the operation of taking a photo. Application B in the electronic device has the operation of converting photos to PDF documents with one click. Developers can use "Shortcuts" to connect the photo-taking operation in application A and the one-click photo-converting PDF document operation in application B into a new APP. In this way, developers can develop a new APP relatively quickly.

[0068] However, the method proposed in this implementation can only simply combine some operations in the electronic device. When developers need to develop an APP with more functions and more complex business logic, the method proposed in the above implementation is difficult to meet the needs of developers.

[0069] In view of the problems existing in the above implementation, the present application provides an APP development platform. The APP development platform includes a component toolbox, a component layout designer and a code generation engine. Based on the APP development platform, the present application proposes an APP development method. The method includes: an electronic device detects an operation of a user selecting a component from a component toolbox, and an APP development platform is installed in the electronic device. In response to the operation, the component layout designer can create a component and display the composition of the component, and the component can be composed of a component body and one or more connection point components. The electronic device detects an operation of a user connecting a first component and a second component in the interface of the component layout designer; in response to the operation, the component design layout designer determines whether the data entity type supported by the output connection point of the first component matches the data entity type supported by the input connection point of the second component. If it matches, the component designer layout designer can display a successful connection mark. The electronic device detects an operation of a user selecting to compile a connected component in the component layout designer, and in response to the operation, the code generation engine compiles multiple connected components displayed in the component layout designer into executable code of the APP. In this way, developers can use multiple existing components to quickly combine into the APP that users need to develop, without having to write program code one by one to implement the functional logic of the APP.

[0070] In the embodiments of the present application, the developer may also be referred to as a user, and the user may develop an APP or component in the electronic device provided by the present application.

[0071] First, an APP development platform provided by the embodiment of the present application is introduced. Figure 2 As shown, Figure 2 The schematic diagram of the architecture of the APP development platform 10 provided in the embodiment of the present application is shown. The APP development platform 10 provided in the embodiment of the present application includes: a component toolbox 101, a component arrangement designer 102, and a code generation engine 103.

[0072] The component toolbox 101 is used to present components. The components in the component toolbox 101 can be classified according to the functions of the components. Users can download components from the component market and then save them in the component toolbox 101. Users can also upload components developed and designed by themselves to the component market.

[0073] For example, the component toolbox 101 may be as follows: Figure 3 As shown, Figure 3The component toolbox 101 provided by an embodiment of the present application is shown. The component toolbox 101 can be displayed in a display area 1000 of a user interface (not shown). The display area 1000 may include a control 1001, a control 1002, a control 1003, and a control 1004. A user can search for components in the component toolbox 101 through the control 1001. The controls 1002 and 1003 are used to expand or collapse a certain type of component. For example, Figure 3 The middle control 1002 is used to expand or collapse the components of the common component class. The control 1003 is used to expand or collapse the components of the audio and video player class. Figure 3 The example in the figure shows that the component toolbox 101 includes components of the commonly used component class and components of the audio and video playback class. It is understandable that the components in the component toolbox 101 are not limited to components of the commonly used component class and components of the audio and video playback class. The component toolbox 101 may also include other types of components, such as components of the document processing class, components of the image processing class, and so on. It is understandable that the embodiment of the present application does not limit the specific user interface of the component toolbox 101. The user interface of the component toolbox 101 may have more than Figure 3 More or fewer controls in the .

[0074] In some embodiments, users can classify components according to their own usage habits. For example, users can add the video playback component to the category of commonly used components. Users can classify flight booking components, hotel booking components, and food delivery ordering components into the booking payment category. The specific category names can be defined by the user. It is understandable that the component categories in the component list in the component toolbox 101 of different users may be different. For example, Figure 3 The commonly used component classes shown in the figure (such as sending text messages, making phone calls, etc.), audio and video playback (such as playing video components, decoding video components, decoding audio components, etc.), etc. The present application embodiment does not limit how to classify components. The present application embodiment is described below by taking the classification of components according to their functions as an example.

[0075] The component layout designer 102 is a core tool for component layout and development. Specifically, developers can select, layout and connect multiple components, select connection point data entity types, set business logic, and construct new composite components in the layout designer. The component layout designer can be specifically used for:

[0076] Displaying generated components: Exemplarily, in response to a user dragging a component from the component toolbox 101 to the component layout designer 102, the component layout designer 102 may present the component to the user. Specifically, the developer may select a component in the component toolbox 101, and then the component layout designer 102 reads the file of the component. The component layout designer 102 obtains the composition of the component according to the file of the component and draws the component, and presents it in the component layout designer 102.

[0077] Connection point connection verification: Verify whether the data entity types of the connection points of two components are consistent.

[0078] Component connection: connect two or more components according to user operations. For example, the developer can connect two or more components in the component layout designer 102 according to the business logic of the required APP or the business logic of the component. When two components are connected, the component layout designer 102 can also verify whether the data types supported by the connection points of the two components are consistent. For example, when the output connection point of the video playback component and the input connection point of the video decoding component support the same data entity type, the connection points between the two components can be connected.

[0079] Business logic orchestration: Developers can add logical judgments or loops to connection points based on the data entity types supported by component connection points.

[0080] Intelligent orchestration: The component orchestration designer 102 can automatically associate and recommend other components that can be docked with the current component based on the function of the component and the data entity type supported by the component connection point, for the developer to choose; or automatically generate a docking orchestration model according to the orchestration strategy. For example, the component orchestration designer 102 can display all components that can be connected to the connection point of the first component according to the user operation. The user can select the required component from the components displayed by the component orchestration designer 102.

[0081] Supporting viewing of connection point properties: In response to a user's operation of viewing the data types supported by a component connection point, the component layout designer 102 can display the data types supported by the connection point.

[0082] Saving component arrangement model diagram: Exemplarily, the component arrangement designer 102 can also be used to save the model diagram of multiple component arrangements, as well as all information in the model diagram. For example, the IDs and names of all components in the model diagram, the data entity types of all connection points, and the connection properties of the connection points (including the data entity types supported by two connected connection points, and the data transmission mode (direct transmission or requiring judgment conditions, and transmission only when the judgment conditions are met)).

[0083] The code generation engine 103 is used to generate executable source code from the arranged composite components and APPs. Specifically, the code generation engine 103 generates executable source code based on the model diagram of the multiple components arranged and saved in the component arrangement designer 102, as well as all the information in the model diagram. For example, the IDs and names of all components in the model diagram, the data entity types of all connection points, the connection properties of the connection points, and the component call template generate executable source code. Among them, the component call template is a code template preset according to different types of components and the properties of the connection points, which encapsulates the general interface call code logic. Exemplarily, the component call template may include the following program code:

[0084]

[0085]

[0086]

[0087] Except for the content in <> in the above code, the rest of the code is a template. The code generation engine can replace the content in <> in the above code according to the specific APP to be generated. For example, <composeplayer>"ComposePlayer" in the game can be replaced with the name of a specific app (such as 123player). <videosplit>"VideoSplit" in the code can be replaced with the component name required to actually generate the APP. <connectpoint1>"ConnectPoint1" in the example can be replaced with the actual connection point.<entity.MPEG> ,<entity.640_480> "MPEG" and "640_480" can be replaced with the actual data entity type.

[0088] It is understandable that the APP development platform in this application can be used as a tool for developing APPs alone, or it can be a module in a development tool. This is not limited here.

[0089] The following is an introduction to the implementation process of developing an APP using the APP development platform provided in the embodiment of the present application through the accompanying drawings.

[0090] Figure 4-8D The process of developing a video APP is exemplarily shown. The embodiment of the present application is described by taking the electronic device being a computer as an example.

[0091] like Figure 4 As shown, Figure 4 User interface 400 is shown. User interface 400 is used for users to create APPs. User interface 400 may include input box 401, input box 402, input box 403, input box 405, and control 404, control 406, control 407, control 408, control 409, and control 410. Among them, input box 401 is used to input the project name created by the user, that is, the APP name, such as "MediaPlayerAPP". Input box 402 is used for the user to input the package name (PackageName) of the APP created by the user, such as "com.ex.example.mediaplayerapp". The package name is the unique identifier of the APP, which is mainly used for the system to identify the APP. Input box 403 is used for the user to select or enter the storage location of the created APP. The user can directly enter the storage location of the created APP in input box 403, such as "D:\test\mediaplayerapp". The user can also select the storage location of the created APP through control 404 in input box 403. Input box 405 is used for the user to select or directly enter the minimum API version supported by the created APP. The user can directly enter the minimum API version supported by the created APP in output box 405, such as "xxsdk:1.0.0". The user can also select the minimum API version supported by the created APP through control 406. Control 407 is used to guide the user on how to operate in user interface 400. Control 408 is used to cancel the project created by the user. Control 409 is used to return to the previous operation. Control 410 is used to save the project created by the user and refresh the user interface 400. After the user fills in the content in input box 401, input box 402, input box 403, and input box 405, click control 410.

[0092] Exemplarily, in response to the user clicking on the control 410, the following is displayed: Figure 5A The user interface 50A is shown. The user interface 50A may include a display area 501 and a display area 502. The display area 501 is used to display the component toolbox 101. When the user selects a component (e.g., a decomposed video component) in the component toolbox 101 and drags it to the display area 502, the display area 502 may display the graphics of the component. Here, the display area 502 may be the interface of the component design arranger 102. The interface of the component design arranger 102 may be used to display the graphics of the component.

[0093] In one possible implementation, when the electronic device detects an operation by a user to drag a decomposed video component in the component toolbox 101, in response to the user operation, the component layout designer 102 may create a decomposed video component, and draw the body of the decomposed video component (e.g., the decomposed video 503 in the user interface 50A), and connection points (e.g., the input connection point 504 and the output connection points 505, 506 in the user interface 50A) in the display area 502.

[0094] The user can view the data entity types supported by the component connection point. The electronic device can detect the user's operation of viewing the connection point and display the data entity types supported by the component connection to the user. There are many types of operations, such as double-clicking the connection point, hovering the mouse cursor over the connection point for 2 seconds, or right-clicking the connection point, etc., which are not limited here. Figure 5B As shown, the user can right-click the output connection point 506, and the electronic device detects the user operation and displays the following Figure 5C In the user interface 50C, a view control 507 and a smart arrangement control 508 may be displayed in the user interface 50C. The view control 507 is used to display the data entity types supported by the output connection point 506. The smart arrangement control 508 can be used for smart arrangement to display the components that can be connected to the output connection point 506. Exemplarily, the user can click the view control 507.

[0095] Exemplarily, in response to the user clicking the view control 507, the following is displayed: Figure 5D In the user interface 50D shown in FIG. 5 , the data entity attribute table 509 supported by the output connection point 506 can be displayed in the user interface 50D. The data entity attribute table 509 can be used to display that the data type of the data entity supported by the output connection point 506 is video, the subtype of the video can be MPEG and MPEG4, and the format of the video can be 640*480 and 1920*1080, etc.

[0096] In a possible implementation, the user can also click on the component body decomposition video 503 of the decomposition video component in the user interface 50D to view the data entity types supported by all the connection points of the decomposition video component. The method for viewing the data entity types supported by all the connection points of the decomposition video component can be double-clicking the connection point, hovering the mouse cursor on the connection point for 2 seconds, or right-clicking the connection point, etc., which is not limited here. Exemplarily, in response to the user clicking on the component body decomposition video 503 of the decomposition video component, the electronic device can display the following: Figure 5E User interface 50E is shown. User interface 50E may display an attribute table 510 of a decomposed video component. Attribute table 510 is used to display the attributes of all connection points of the decomposed video component. Connection point 1 in attribute table 510 may be input connection point 504, connection point 2 may be output connection point 505, and connection point 3 may be output connection point 506. Connection point 1 may contain two data entities, namely data entity 0 and data entity 1. Control 511 is used to hide the data entities of the connection points. That is, when the user clicks control 511, data entity 0, data entity 1, and data entity displayed in attribute table 510 are hidden. Control 512 is used to hide the attributes of data entity 0, such as type (category), sub-category (sub category), width (width), height (height), bit rate (bitrate), etc. Control 513 is used to expand and display the attributes of data entity 1. Control 514 is used to expand and display the data entities supported by connection point 2. Control 515 is used to expand and display the data entities supported by connection point 3.

[0097] When a connection point supports multiple types of data entities, the user can select a data entity to set as the data entity that the connection point can support. For example, Fig. 5F In the user interface 50F shown in , the output connection point 506 supports multiple types of data entities. Specifically, the data entities supported by the output connection point 506 may be video data with a subtype of MPEG and a format of 640*480, video data with a subtype of MPEG and a format of 1920*1080, video data with a subtype of MPEG4 and a format of 640*480, and video data with a file type of MPEG4 and a format of 1920*1080. The user may set MPEG4 as the subtype that the output connection point 506 can support in the data entity attribute table 509. The electronic device may detect the user's operation of setting the supported data entity attributes of the connection point. There may be multiple operations for the user to set the supported data entity attributes of the connection point, for example, the user may double-click the subtype MPEG4 in the data entity attribute table 509. The user's operation of setting the supported data entity attributes of the connection point is not limited here. In response to the user operation, the electronic device may display a prompt box 516. The prompt box 516 is used to prompt the user that the data entity has been set. The prompt content of the prompt box 516 may be Figure 5E The text content displayed in the prompt box 516 is "You have set the subtype of the connection point to MPEG4". The specific prompt content of the prompt box 516 is not limited here.

[0098] In another possible implementation, the user can Figure 5E The data entities supported by the connection point are set in the property table 510. For example, the user can double-click the data entity 0 in the property table 510. In response to the user operation, the component layout designer 102 sets the data entity 0 as the only data entity supported by the connection point 1.

[0099] The user can sequentially set the subtype and format of the data entity (e.g., video) supported by the output connection point 506. For example, the user can set the subtype of the video to MPEG4 and the format to 1920*1080. The user can click the view control 507 again to view the properties of the data entity supported by the output connection point 506. Figure 5G As shown in the user interface 50G, the user interface 50G displays the updated data entity attribute table 511. The subtype and format in the data entity attribute table 511 are set by the user, that is, the subtype is MPEG4, and the format is set to 1920*1080.

[0100] Similarly, the user can add other components in the component toolbox 101 to the component layout designer 102 according to the above method. Exemplarily, the user can drag the play video component in the component toolbox 101 to the component layout designer 102. The electronic device can detect the user's operation of dragging the play video component. In response to the operation, the component layout designer 102 can create a video playback component and draw the component body (such as the play video 601 shown in the user interface 60A) and the connection point (such as the input connection point 602 shown in the user interface 60A) of the video playback component, and display them in the interface of the component layout designer 102 (such as the user interface 60A).

[0101] like Fig. 6A As shown, the user can hide the component toolbox. And the user can connect two components in the interface of the component layout designer 102. For example, Fig. 6A The user interface 60A is shown. The electronic device can detect the user's operation of connecting the decomposition video component with the playback video component. The user can have various operations to connect the two components. For example, the user can drag the output connection point 506 to the input connection point 602, or the user can drag the input connection point 602 to the output connection point 506, which is not limited here. In response to the user operation, the component layout designer 102 obtains the data entity types supported by the output connection point 506 and the input connection point 602. The component layout designer 102 determines whether the data entity types supported by the output connection point 506 match the data entity types supported by the input connection point 602. The matching of the data entity types supported by the output connection point 506 and the data entity types supported by the input connection point 602 means that the data entity types supported by the connection point 506 are the same as the data entity types supported by the input connection point 602, or at least one of the multiple data entity types supported by the output connection point 506 is the same as the data entity type supported by the input connection point 602. If they match, a successful connection mark may be displayed in the interface of the component layout designer 102. If they do not match, the interface of the component layout designer 102 may prompt the user that there is no match (not shown in the figure). Here, there are many ways to prompt that the connection points of two components (such as the output connection point 506 and the input connection point 602) do not match, for example, the user interface displays prompt text "cannot connect", "matching failed", "connection failed", "data entity type inconsistent", etc., which are not limited here. In this implementation, even if the input connection point or output connection point of the component supports multiple data types, the orchestrator can connect the input connection point and the output connection point according to the two connection points supporting the same data entity type.

[0102] For example, in another possible implementation, when the connection point supports multiple entity types, the user can first set the data entity type supported by output connection point 506 and the data entity type supported by input connection point 602 to be the same type, and then connect output connection point 506 and input connection point 602. At this time, since output connection point 506 and input connection point 602 support the same data entity type, component orchestration designer 102 can connect output connection point 506 and input connection point 602.

[0103] The connection between the two components completes the user interface as shown below: Fig. 6A shown. Fig. 6A The user interface 60A provided by the embodiment of the present application is shown. The output connection point 506 of the decomposition video component and the input connection point 602 for playing the video in the user interface 60A are successfully connected. There may be multiple signs of successful connection displayed in the interface of the component arrangement designer 102, such as the connection line 603 between the output connection point 506 and the input connection point 602 shown in the user interface 60A, and the sign of successful connection is not limited here.

[0104] For example, in one possible manner, the user interface after the connection between the two components is completed may also be as follows: Figure 6B shown. Figure 6B In the illustrated user interface 60B, the output connection point 506 of the decomposed video component and the input connection point 602 of the played video are successfully connected. The output connection point 506 and the input connection point 602 are folded or overlapped together, indicating that the output connection point 506 and the input connection point 602 are successfully connected.

[0105] After the user selects all the components required for the created APP, in response to the user's connection operation, the component layout designer 102 can connect the components. The specific connection process can refer to the above description of the connection between the decomposed video component and the video playback component, which will not be repeated here. The user interface after the connection is completed can be as follows Fig. 7A shown. Fig. 7A The user interface 700 provided by the present application is shown. All components constituting the APP created by the user (i.e., the video playback APP) are displayed in the user interface 700. All components of the video playback APP may include a video file reading component 702, a video decomposition component 705, a speech translation component 710, a high-definition enhancement component 711, an audio playback component 716, and a video playback component 717. Among them, the video file reading component may include an input connection point 701 and an output connection point 703. The video decomposition component 705 may include an input connection point 704, an output connection point 706, and an output connection point 707. The speech translation component 710 may include an input connection point 709 and an output connection point 712. The high-definition enhancement component 711 may include an input connection point 708 and an output connection point 713. The audio playback component 716 may include an input connection point 714. The video playback component 717 may include an input connection point 715. The output connection point 703 and the input connection point 704 may be connected. Output connection point 707 may be connected to input connection point 709 or input connection point 714. Output connection point 706 may be connected to input connection point 708 or input connection point 715. Output connection point 712 may be connected to input connection point 714. Output connection point 713 may be connected to input connection point 715.

[0106] In one embodiment, the user can set properties for the connection line between the connection points. The properties of the connection line may include logic control properties (conditional judgment / branch / loop) or data transfer properties (input and output of Entity). Fig. 7A In the embodiment, the language attribute of the output connection point 707 of the decomposed video component 705 can be determined. If it is consistent with the local language, the voice translation component 710 can be skipped and directly connected to the input connection point 714 of the sound playback component. That is, the user can set a judgment condition for the connection point 707, and the condition determines whether the language supported by the connection point 707 is consistent with the local language of the electronic device. If so, the output of the video decomposition component is input to the input connection point 714 of the audio playback component through the output connection point 707. If not, the output of the video decomposition component is input to the input connection point 709 of the language translation component 710 through the output connection point 707.

[0107] For example, the user can click on the connection point at the left end point of the connection line to set the connection line properties. Fig. 7A The connection line between the connection point 707 and the connection point 714, and the connection line between the connection point 707 and the connection point 709 are shown in FIG. The user can click the connection point 707 to set the control properties of the connection line between the connection point 707 and the connection point 714, and the connection point 707 and the connection point 709. The interface for setting the control properties of the connection line can be as follows: Figure 7B The user interface 70B may include a condition setting box 720, a condition setting box 722, a condition setting box 724, a condition judgment result selection box 725, a control 721, a control 723, a control 726, a control 727, a control 728, and a control 729. The user interface 70B may also include a condition setting box 730, a condition setting box 732, a condition setting box 734, a condition judgment result selection box 735, a control 731, a control 733, a control 736, and a control 737.

[0108] Among them, the condition setting box 720 is used to set the judgment subject, such as language. The control 721 is used to select the judgment condition. The condition setting box 722 is used to set the relationship between the judgment subject and the comparison subject, for example, the judgment subject can contain the comparison subject. The control 723 is used to select the relationship between the judgment subject and the comparison subject. For example, the relationship can be included or not included, which is not limited here. The condition setting box 724 is used to set the comparison subject, such as the local language. The condition setting box 720, the condition setting box 722 and the condition setting box 724 complete the judgment condition setting together. For example, the judgment condition 1 shown in the user interface 70B is "the language of the connection point 707 contains the local language". The condition judgment result selection box 725 is used to set the condition judgment result. For example, if the condition "the language of the connection point 707 contains the local language" is met, the data entity of the connection point 707 is transmitted to the connection point 714 through the connection line between the connection point 707 and the connection point 714. The control 726 is used to select the condition judgment result. The control 727 is used to add conditions. The control 728 is used to complete the condition setting. Control 729 is used to cancel the condition setting. Control 737 is used to return to the previous interface. Similarly, condition setting box 730 is used to set the judgment subject, such as language. Control 731 is used to select the judgment condition. Condition setting box 732 is used to set the relationship between the judgment subject and the comparison subject. Control 733 is used to select the relationship between the judgment subject and the comparison subject. Condition setting box 734 is used to set the comparison subject, such as the local language. Condition setting box 730, condition setting box 732 and condition setting box 734 together complete the judgment condition setting. For example, judgment condition 2 shown in user interface 70B is "the language of connection point 707 does not include the local language". Condition judgment result selection box 735 is used to set the condition judgment result. For example, if the condition "the language of connection point 707 does not include the local language" is met, the data entity of connection point 707 is transmitted to connection point 709 through the connection line between connection point 707 and connection point 709. Control 736 is used to select the condition judgment result.

[0109] Fig. 7A After all components in the system are connected, the electronic device can detect the user's operation of compiling the connected components into executable code. There are many types of user operations, such as Fig. 7A The user clicks the compile control 718 of the user interface 700, which is not limited here. In response to the user operation, the code generation engine 103 compiles it into the executable program code of the APP created by the user.

[0110] Specifically, the code generation engine 103 can obtain the IDs and names of the multiple components that have been arranged in the component arrangement designer 102, as well as the connection points and the connection properties between the connection points. Fig. 6A The output connection point 506 of the decomposition component and the input connection point 602 of the video playback component shown in the figure, the data entity type transmitted between the two connection points can be video data with a file type of MPEG4 and a format of 1920*1080. Data is directly transmitted between the two connection points without judgment or loop logic. Then, the code generation engine 103 generates executable code according to the acquired component information, the connection properties between the connection points and the corresponding component call template. The component call template is a code template preset according to different types of components and the properties of the connection points, which encapsulates the general interface call code logic. It can be understood that the component call templates of the video class and the audio class can be different. The component call templates corresponding to different data transmission methods such as whether data is transmitted directly between the two connection points, or whether a judgment condition is required and data can be transmitted only when the judgment condition is met can also be different. For details, please refer to the introduction of the component call template in the above text, and the specific code in the component call template is not limited here.

[0111] In some examples, the electronic device receives a user operation for displaying a component call tree of a first component, and in response to the user operation, the component layout designer 102 starts an intelligent layout function; based on the intelligent layout function, the component layout designer 102 interface can display a component call tree of the first component; the component call tree is used to display all matching second components and / or third components of the first component, as well as the fourth component and / or fifth component matching the second component, up to the Nth component matching the Mth component, and the Nth component is a component without an output connection point, where M and N are positive integers. Specifically, the component layout designer 102 finds the matching second component and / or third component according to the data entity type supported by the output connection point of the first component. That is, the data entity type supported by the input connection points of the second component and the third component matches the data entity type supported by the output connection point of the first component. Then, the component layout designer 102 sequentially searches for the fourth component and / or fifth component matching the second component according to the data entity type supported by the output connection point of the second component. The data entity types supported by the input connection points of the fourth and fifth components match the data entity types supported by the output connection point of the second component. The component layout designer 102 will find out the matching components of each component in the component call tree until the last layer of the component call tree has no output connection point.

[0112] There can be multiple operations for displaying the component call tree of the first component. For example, a user can click a control in the user interface for displaying the component call tree, or a user can set conditions for displaying the component call tree in the page. For example, a component in the component call tree can implement one or more functions (such as video decoding function, video playback function, etc.), which is not limited here.

[0113] In response to the user operation, the electronic device displays Fig. 8A The user interface 80A shown in the figure shows a component call tree of component 1 in the user interface 80A. Component 1 can be connected to component 2 and component 3. That is, component 1 matches component 2, and component 1 matches component 3. Component 2 can be connected to component 4 and component 5. That is, component 2 matches component 4, and component 2 matches component 5. Component 3 can be connected to component m, that is, component 3 matches component m. Component 4, component 5, and component m can be connected to component n. That is, component 4 matches component n, component 5 matches component n, and component m matches component n. The user can select some components in the component call tree, such as selecting component 2, component 4, and component n. Then remove or delete other unnecessary components. For example, the user right-clicks a component to delete the component, and the method of removing or deleting is not limited.

[0114] Table 2

[0115]

[0116] Table 2 shows by way of example the data entity types supported by the connection points of component 1, component 2, component 3, and component m. In Table 2, "MPEG4, 1920*1080, Chinese" indicates that the data entity supported by the connection point is video data in the format of MPEG4, the resolution of the video data is 1920*1080, and the language supported in the video data is Chinese. "MP3, 112800, Chinese" indicates that the data entity supported by the connection point is audio data in the format of MP3, the sampling rate of the audio data is 112800Hz, and the supported language is Chinese. As can be seen from Table 2, the data entity types supported by the input connection point of component 2 include the data entity types supported by the output connection point of component 1. Therefore, the output connection point of component 1 can be connected to the input connection point of component 2, and component 1 and component 2 are matched. The data entity types supported by the input connection point of component 3 include the data entity types supported by the output connection point of component 1. Therefore, the output connection point of component 1 can be connected to the input connection point of component 3, and component 1 and component 3 are matched. The data entity types supported by the input connection point of component 4 include the data entity types supported by the output connection point 2 of component 2. Therefore, the input connection point of component 4 can be connected to the output connection point 2 of component 2, and component 2 and component 4 are matched. The data entity types supported by the input connection point of component 5 include the data entity types supported by the output connection point 2 of component 2. Therefore, the input connection point of component 5 can be connected to the output connection point 2 of component 3, and component 5 and component 2 are matched. The data entity types supported by the input connection point of component m include the data entity types supported by the output connection point of component 2. Therefore, the output connection point of component m can be connected to the input connection point of component 3, and component 3 and component m are matched. The data entity types supported by the input connection point of component n include the data entity types supported by the output connection point of component 4, the output connection point of component 5, and the output connection point of component m. Therefore, the input connection point of component n can be connected to the output connection point of component 4, the output connection point of component 5, and the output connection point of component m. Component n matches component 4, component 5, and component m.

[0117] It can be understood that the data entity types supported by the connection points of the various components shown in Table 2 are only examples. Fig. 8A The connection points of the various components shown in Table 1 can support any of the data entity types shown in Table 1. Fig. 8A There is no restriction on the data entity types that can be supported by the connection points of each component.

[0118] For example, Figure 8B As shown, the user interface 80B may display a decomposed video component, which may include a main body (decomposed video 503) and an input connection point 504, an output connection point 505, and an output connection point 506. The user does not know which components in the component toolbox 101 can be connected to the output connection point 506 of the decomposed video component. The user may click on the smart arrangement control 508 in the user interface 80B.

[0119] In response to the user operation, the electronic device displays Figure 8C The user interface 80C shown in FIG. 80C displays a component call tree of the decomposed video component. Figure 8C As shown, the component call tree of the decomposed video component may include a video player component, and the video player component includes a body (playing video 717) and an input connection point 715. When the user clicks the smart layout control 508, the component layout designer 102 can search for a component (e.g., a video player component) matching the output connection point in the component toolbox 101 according to the data entity type of the output connection point 506, and display it in the interface of the component layout designer 102 (e.g., the user interface 80C).

[0120] In a possible implementation, in response to the user operation, the electronic device may also display Fig.8D The user interface 80D shown in FIG. 80D displays a component call tree of the decomposed video component. Fig.8D As shown, the component call tree of the decomposed video component may include a high-definition enhancement component and a video playback component. The high-definition enhancement component includes a component body (high-definition enhancement 711), an input connection point 708, and an output connection point 713. The playback video component includes a component body (play video 717) and an input connection point 715. The output connection point 506 can be connected to the input connection point 708. The output connection point 713 can be connected to the input connection point 715.

[0121] In a possible implementation, the user may select the input connection point 504 of the decomposed video component for intelligent arrangement. For example, right-click the input connection point 504 and select the intelligent arrangement control. In response to the user operation, the component arrangement designer 102 may display components that can be connected to the input connection point 504. For example, Fig. 7A The read video component 702 is shown in FIG.

[0122] In this way, when the user does not know which component a component can be connected to, other components that can be connected to the component can be quickly found, saving the user's time.

[0123] An APP development method provided in an embodiment of the present application is introduced below in conjunction with the accompanying drawings. Fig. 9 This is a flowchart of an APP development method provided in an embodiment of the present application. Fig. 9 , an APP development method provided in an embodiment of the present application specifically includes:

[0124] S101. The electronic device creates a first APP in response to a user's operation of creating a first APP.

[0125] The electronic device may detect the user's operation of creating the first APP. There are many ways for the user to create the first APP. For example, the user opens a user interface for creating an APP in the electronic device, and then creates the APP in the user interface. For more information about the user interface for creating an APP, see Figure 4 How the user creates an APP in the user interface can be seen in the above description of Figure 4 The description is omitted here.

[0126] S102. In response to the user selecting a component from the component toolbox of the electronic device, the electronic device displays the component in the component layout designer. The component is an independent module that implements a specific function. The component consists of a component body and one or more connection points. The connection points support one or more data entity types.

[0127] There are many operations for the user to select a component from the component toolbox, for example, the user drags the component in the component toolbox, or the user double-clicks the component in the component toolbox with a mouse. The user operation is not limited here.

[0128] The connection point of a component supports one or more data entity types. The data entity types can refer to the introduction of Table 1 above, which will not be repeated here. Here, when the developer develops the component, he can define the connection point of the component with program code. For example, define the data entity types supported by the connection point in the component, and the functions contained in the connection point. Here, the developer can define that the connection points of all components support the same multiple functions. For example, the create function for creating data entities, the connect function for connecting other connection points, the accept function for receiving, the pull function for storing the received data locally, the push function for sending data, and so on.

[0129] In a possible implementation, in response to a user selecting a component from a component toolbox of an electronic device, the electronic device displays graphics of multiple components, specifically including: in response to a user selecting a component from a component toolbox of an electronic device, the electronic device obtains a first file of multiple components constituting a first APP, parses the first file and draws a graphics of the components; and displays graphics of multiple components, wherein the first file is a program code describing the functions and properties of the components. The user selecting a component from a component toolbox of an electronic device is used to select multiple components, and the graphics of the components are used to display the main body and connection points of the components, wherein the components include a main body and one or more connection points, for example Figure 5A The operation of the user selecting a component from the component toolbox of the electronic device may be to drag the component in the component toolbox 101 to the component layout designer 102. The operation of the user selecting a component from the component toolbox of the electronic device may also be to single-click or double-click the selected component, etc. The embodiment of the present application does not limit the second user operation.

[0130] In a feasible example of an embodiment of the present application, the electronic device may receive a user operation of dragging a component from a toolbox. In response to the user operation, the electronic device obtains the file of the component and parses the file of the component. Then the electronic device draws a graphic of the component. Specifically, the electronic device may obtain the file of the component through the component layout designer 102 in the electronic device, parse the file of the component, and draw a graphic of the component. Figure 5A The description is not repeated here.

[0131] Here, users will choose components according to the needs of the APP they develop. For example, a video playback APP that can support multiple languages ​​can be composed of components such as video file reading components, video decomposition components, voice translation components, HD enhancement components, audio playback components, video playback components, etc. Fig. 7A The components that make up the video APP are shown. After the user selects a component from the component toolbox 101, the electronic device obtains the first file of the component. The electronic device can parse the number of connection points contained in the component, the connection point attributes, the attributes of the data entity that the connection point can transmit, etc. from the first file. The electronic device draws the component into a visual component graph according to the number of connection points contained in the component parsed from the first file. The user can see the component graph in the user interface. Figure 5A Component graphic showing exploded video components.

[0132] In a possible implementation, an electronic device receives a user operation for displaying a component call tree of a first component, and in response to the user operation, the electronic device displays a component call tree of the first component; the component call tree is used to display all matching second components and / or third components of the first component, as well as the fourth component and / or fifth component matching the second component, all the way to the Nth component matching the Mth component, and the Nth component is a component without an output connection point. Specifically, the electronic device finds the matching second component and / or third component according to the data entity type supported by the output connection point of the first component. That is, the data entity type supported by the input connection points of the second and third components matches the data entity type supported by the output connection point of the first component. Then, the electronic device searches for the fourth component and / or fifth component matching the second component according to the data entity type supported by the output connection point of the second component. The data entity type supported by the input connection points of the fourth and fifth components matches the data entity type supported by the output connection point of the second component. The electronic device will find out the matching components of each component in the component call tree until the last layer of components in the component call tree has no output connection point. For details, please refer to Fig. 8A The description of the call tree of component 1 in will not be repeated here.

[0133] There are many user operations for displaying the component call tree, for example, Figure 8C As shown in , the user can click on the smart arrangement control 508. The embodiment of the present application does not limit the user operation of displaying the component call tree. When the user does not know which component in the component toolbox 101 matches component 1, the user can select the output connection point of component 1, then right-click and select smart arrangement. In response to the user clicking on the smart arrangement operation, the electronic device displays the component call tree of component 1. In this way, the user can quickly select the components needed to develop the APP in the component call tree. Therefore, it can save the user's time and improve the user experience.

[0134] In one possible implementation, the electronic device displays a component call tree of the first component in a component orchestration designer, specifically including: the electronic device displays the component call tree of the first component in the component orchestration designer according to the function of the first component and / or the data entity type supported by the first component connection point.

[0135] In a possible implementation, in response to a user's operation of deleting a component, the electronic device deletes the component in the component call tree.

[0136] In a possible implementation, in response to a user uploading a component or downloading a component from a component market, the electronic device displays the name of the component uploaded by the user or downloaded from the component market in a component toolbox.

[0137] In a possible implementation, in response to a user's operation of viewing properties of a first connection point of a first component, the electronic device displays data entity types supported by the first connection point in a component layout designer.

[0138] S103. In response to the user's operation of connecting multiple components, the electronic device connects two or more components in the component layout designer.

[0139] The electronic device can receive operations of connecting multiple components by the user. There are many types of operations for connecting multiple components by the user. For example, the operation of connecting multiple components by the user can be that the user drags the output connection point of the second component to the input connection point of the first component. The operation of connecting multiple components by the user can also be that the user slides the second component in the direction of the first component. Alternatively, the operation of connecting multiple components by the user can also be that the user inputs the output connection point of the first component and the input connection point of the second component. The embodiment of the present application does not limit the third user operation. Please refer to the above description of the third user operation. Fig. 6A The description is not repeated here.

[0140] In one possible implementation, an electronic device connects two or more components in a component orchestration designer, specifically including: in response to a user's operation of connecting a first component and a second component, the electronic device verifies through the component orchestration designer whether the first component and the second component match; if the first component and the second component match, the electronic device connects a first connection point and a second connection point, the first connection point being the connection point of the first component, and the second connection point being the connection point of the second component.

[0141] In one possible implementation, in response to a user's operation of connecting multiple components, the electronic device will execute a process of establishing a connection between the first component and the second component. First, the electronic device will obtain the data entity types supported by the output connection point of the first component, and the data entity types supported by the input connection point of the second component. When the electronic device determines that the type of data entity output by the output connection point of the first component matches the type of data entity of the input connection point of the second component, the electronic device will establish a connection between the first component and the second component. That is, the first component can only establish a connection with the second component when the data entity supported by the output connection point of the first component is the same as the type of data entity supported by the input connection point of the second component, or the data entity supported by the output connection point of the first component includes the type of data entity supported by the input connection point of the second component, or the type of data entity supported by the input connection point of the second component includes the type of data entity supported by the output connection point of the first component. Reference can be made to the above description of the data entity supported by the first component. Fig. 6A The description is not repeated here.

[0142] For example, as shown in Table 3, the first component output connection point supports video data with a data entity type of MPEG format and a size of 640*480. The second component input connection point supports video data with a data entity type of MPEG format and a size of 640*480, 1080P, and 2K.

[0143] Table 3

[0144]

[0145]

[0146] In this way, the data type supported by the output connection point of the first component matches the data type supported by the input connection point of the second component. The electronic device establishes a connection between the first component and the second component. The types of data entities here can refer to Table 1.

[0147] In a possible implementation, the electronic device will display a successful connection indicator after determining that the two components can establish a connection. The successful connection indicator can be a connection line (Connection) between the two components. Fig. 6A The user interface 60A is shown. After the decomposition video component and the playback video component shown in the user interface 60A are connected, the electronic device draws a connection line, which is used to connect the decomposition video component output connection point (Video Output ConnectPoint) and the playback video input connection point (Input ConnectPoint2). The developer selects components from the component toolbox 101 one by one according to the logical flow of the APP and drags them to the component design arranger 102. In response to the user operation, the electronic device sequentially connects all the components that make up the APP.

[0148] In a possible implementation, the connection success mark may be that the two connection points connecting the two components are folded or overlapped. Figure 6B The description is not repeated here.

[0149] In a possible implementation, if the type of data entity output by the output connection point of the first component does not match the type of data entity of the input connection point of the second component, the electronic device displays a prompt box, and the prompt box is used to prompt the user that the connection between the first component and the second component has failed. There are many types of prompt content in the prompt box. For example, the content of the prompt box can be "Connection failed". The content of the prompt box can also be "The type of data entity does not match". The content of the prompt box can also be "The first component and the second component cannot be connected", etc. The specific content of the prompt box is not limited here.

[0150] S104. In response to the user selecting two or more components to be compiled, the electronic device compiles the connected multiple components into program code of the first APP.

[0151] When the components that make up the first APP have been connected, the user can click on the control for generating program code for the connected components. The electronic device can detect the user's operation of clicking the control. In response to the operation, the electronic device compiles the multiple components that have been connected into the program code of the first APP. It can be understood that the program code of the first APP is used to describe the logical functions and user interface of the first APP. When the program code of the first APP is installed in the user's electronic device, the electronic device can run the first APP.

[0152] Specifically, the electronic device can generate the program code of the first APP by using the code generation engine 103 to connect the components in the assembly layout designer 102 .

[0153] In one possible implementation, the electronic device saves an orchestration model diagram of two or more components that have completed the connection, as well as first information in the orchestration model diagram in a component orchestration designer; the first information includes one or more of the IDs and names of the two or more components, and the data entity types supported by the connection points of the two or more components.

[0154] In one possible implementation, the electronic device generates executable source code of the first APP in a code generation engine according to the arrangement model diagram, the first information and the component call template, wherein the component call template includes program code in a preset format. For details, please refer to the description of the component call template above, which will not be repeated here.

[0155] An embodiment of the present application provides an APP development method, through which a user can connect multiple components in a toolbox to form an APP. In the process of connecting multiple components, the electronic device needs to determine whether the data entity types supported by the connection points of the two connected components match. If they match, the electronic device can display a successful connection mark. Finally, the electronic device generates the program code of the APP from the completed multiple components. In this way, users can quickly develop APPs through existing components, shortening the time it takes for users to develop APPs.

[0156] The following introduces an application scenario of an APP developed according to an APP development method provided in an embodiment of the present application. Fig.10 The following shows the application scenarios of the APP developed by this application. Fig.10 As shown, an APP consisting of a communication component, a storage component, a playback component, a camera component, a gesture input component, an audio playback component, and a media download acceleration component is used as an example for explanation. User A has electronic devices such as mobile phones, TVs, PCs, routers, speakers, watches, and car computers. All of the user's electronic devices are connected to the same wireless network (for example, the Wi-Fi network at home). The user's mobile phone is installed with an APP containing a communication component, a storage component, a playback component, a camera component, a gesture input component, an audio playback component, and a media download acceleration component. A storage component is installed in the PC. A media download acceleration component is installed in the router. An audio playback component is installed in the speaker. A gesture input component is installed in the watch. A camera component is installed in the car computer. A playback component is installed in the TV. Then, when the user runs the APP on the mobile phone, the mobile phone can execute the function of the communication component, select the TV to execute the function of the playback component to play the video in the APP, select the PC to run the function of the storage component to store the data in the APP, select the router to execute the media download acceleration component to accelerate the download of the media files in the APP, select the speaker to execute the audio playback function to play the audio in the APP, select the watch to execute the gesture input component to input gestures to control the APP, and select the car computer to execute the camera component function to shoot the images or videos required by the APP. In this way, the components that make up the APP can run on different electronic devices respectively, and users can use different electronic devices to execute multiple functions of the APP. In this way, each electronic device can play its own strengths (for example, the TV display is larger than the mobile phone display, mobile phone communication is more convenient, etc.), so that users have a better experience when using the APP.

[0157] The toolbox in the embodiment of the present application and the composite components and APP developed by the developer according to the method provided in the embodiment of the present application can form a distributed component development ecosystem. Fig.11 The schematic diagram of the component development ecosystem provided by the embodiment of the present application is shown. Fig.11 As shown, component developers can query and call components from the component market. Component developers can also summarize and extract components from existing applications. Component developers can upload developed components or components summarized and extracted from applications to the component market. This forms a component development ecosystem. Component developers can use components in the component market to develop apps very conveniently. The component toolbox 101 mentioned above can download components from the component market. In this way, the components in the component toolbox 101 can be updated and expanded.

[0158] In a possible implementation, the electronic device calls each component and connects the components according to a domain specific language (DSL) input by a user. Fig.12 Figure 2 shows the corresponding relationship between component DSL language and components. Fig.12 As shown in the figure, the DSL language (Comp1; ConnPoint1) means that there is a component 1, and component 1 includes connection point 1. This corresponds to component 1 and connection point 1 in the component diagram. The DSL language (Comp2; ConnPoint2) means that there is a component 2, and this component 2 includes connection point 2. This corresponds to component 2 and connection point 2 in the component diagram. The DSL language (link entity1, entity2) indicates that connection point 1 supports data entity 1, and the connection point supports data entity 2. If connection point 1 and connection point 2 are connected, then connection point 1 needs to check whether data entity 1 and data entity 2 are the same. Similarly, connection point 2 also needs to check whether data entity 1 and data entity 2 are the same. In this way, when the user is very familiar with the DSL language of the component, the user can use it without following the instructions. Fig. 9 The APP development method flow shown is used to develop the APP. The user can write a DSL in the electronic device to develop the APP. In this way, the user can develop the APP more efficiently.

[0159] For example, users can directly use DSL language to Fig. 6A The decomposition video component and the playback video component shown are connected. That is, there is no need to execute Figure 4-5G The DSL language for connecting the decomposition video component and the playback video component can be as follows:

[0160] Compomentdef

[0161] Videosplit: / / Decompose video components

[0162] Connpoint1.entity1(vedio,MPEG4,1920*1080) / / Decompose the connection point 1 of the video component and the data entity 1 supported by the connection point

[0163] Videoplayer: / / Video player component

[0164] Connpoint2.entity2(vedio,MPEG4,1920*1080): / / Connection point 2 of the video playback component and data entity 2 supported by the connection point

[0165] Link entity1,entity2 / / Establish a connection between connection point 1 and connection point 2

[0166] In the DSL code shown above, "Videosplit" can represent Fig. 6A The decomposed video component in "Connpoint1" corresponds to Fig. 6A The output connection point 506 in the output connection point 506. "entity1(vedio,MPEG4,1920*1080)" indicates the data entity type supported by the output connection point 506. "Videoplayer" can indicate Fig. 6A The video playback component in "Connpoint2" corresponds to Fig. 6A The input connection point 602 in. "entity2(vedio,MPEG4,1920*1080)" indicates the data entity type supported by the output connection point 602.

[0167] In a possible implementation, the user can write the judgment condition in DSL language, for example Fig. 7A The connection point 707 shown in the figure can be connected to the connection point 709. The connection point 707 can also be connected to the connection point 714. The user can set a judgment condition for the connection point 707, which judges whether the language supported by the connection point 707 is consistent with the local language of the electronic device. If so, the output of the video decomposition component is input to the input connection point 714 of the audio playback component through the output connection point 707. If not, the output of the video decomposition component is input to the input connection point 709 of the language translation component 710 through the output connection point 707. The judgment condition for the connection point 707 can be implemented by the following DSL language:

[0168] Condition[1]: / / Condition 1

[0169] State type:if propertyname[language]contain[local language] / / If the language property supported by the connection point includes the local language

[0170] Result type:connect-branch1 / / Connection line 1

[0171] Condition[2]: / /

[0172] State type:if propertyname[language]not contain[local language] / / If the language property supported by the connection point does not include the local language

[0173] Result type:connect-branch2 / / Connection line 2

[0174] In the above DSL language, connect-branch1 can represent the connection line between connection point 707 and connection point 714. Connect-branch2 can represent the connection line between connection point 707 and connection point 709. It is understandable that before the above DSL language, the user can define which two connection lines connect-branch1 and connect-branch2 specifically represent. Here, the DSL language is only an example, and this application does not limit the implementation of the DSL language.

[0175] When using DSL, users can only write the connection points between two components that need to be connected. Fig. 6A The input connection point 504 and the output connection point 505 of the decomposed video component in the example do not need to be written out. In this way, the user only needs to input a few lines of code to realize the connection between the components, saving the user's time.

[0176] Next, an exemplary electronic device 100 provided in the following embodiments of the present application is introduced.

[0177] Fig.13 A schematic structural diagram of an electronic device 100 is shown.

[0178] The embodiment is described in detail below by taking the electronic device 100 as an example. It should be understood that the electronic device 100 may have more or fewer components than those shown in the figure, may combine two or more components, or may have different component configurations. The various components shown in the figure may be implemented in hardware, software, or a combination of hardware and software including one or more signal processing and / or application specific integrated circuits.

[0179] The electronic device 100 may include a processor 101, a memory 102, a transceiver 103, a display screen 104, a sensor 105, etc., wherein:

[0180] Processor 101 can be used to obtain data entity types supported by component connection points, determine whether data entity types supported by connection points of two components match, and search for components that match data entity types supported by output connection points of components based on user operations.

[0181] In some embodiments, the processor 101 may include one or more processing units, for example, the processor 101 may include an application processor (AP), a modem processor, a graphics processor (GPU), an image signal processor (ISP), a controller, a memory, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.

[0182] The controller may be the nerve center and command center of the electronic device 100. The controller may generate an operation control signal according to the instruction operation code and the timing signal to complete the control of fetching and executing instructions.

[0183] The processor 101 may also be provided with a memory for storing instructions and data. In some embodiments, the memory in the processor 101 is a cache memory. The memory may store instructions or data that the processor 101 has just used or cyclically used. If the processor 101 needs to use the instruction or data again, it may be directly called from the memory. This avoids repeated access, reduces the waiting time of the processor 101, and thus improves the efficiency of the system.

[0184] In some embodiments, the processor 101 may include one or more interfaces. The interface 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.

[0185] The I2C interface is a bidirectional synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL). In some embodiments, the processor 101 may include multiple groups of I2C buses. The processor 101 may be coupled to a touch sensor, a charger, a flash, a camera 193, etc. through different I2C bus interfaces. For example, the processor 101 may be coupled to a touch sensor through an I2C interface, so that the processor 101 communicates with the touch sensor through the I2C bus interface to realize the touch function of the electronic device 100.

[0186] The I2S interface can be used for audio communication. In some embodiments, the processor 101 can include multiple I2S buses. The processor 101 can be coupled to the audio module 170 via the I2S bus to achieve communication between the processor 101 and the audio module 170. In some embodiments, the audio module 170 can transmit an audio signal to the wireless communication module via the I2S interface to achieve the function of answering a call through a Bluetooth headset.

[0187] The PCM interface can also be used for audio communication, sampling, quantizing and encoding analog signals. In some embodiments, the audio module 170 and the wireless communication module can be coupled via a PCM bus interface. In some embodiments, the audio module 170 can also transmit audio signals to the wireless communication module via the PCM interface to realize the function of answering calls via a Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.

[0188] The UART interface is a universal serial data bus for asynchronous communication. The bus can be a bidirectional communication bus. It converts the data to be transmitted between serial communication and parallel communication. In some embodiments, the UART interface is generally used to connect the processor 101 and the wireless communication module. For example, the processor 101 communicates with the Bluetooth module in the wireless communication module through the UART interface to realize the Bluetooth function. In some embodiments, the audio module 170 can transmit an audio signal to the wireless communication module through the UART interface to realize the function of playing music through a Bluetooth headset.

[0189] The MIPI interface can be used to connect the processor 101 with peripheral devices such as the display screen 104 and the camera 193. The MIPI interface includes a camera serial interface (CSI), a display serial interface (DSI), etc. In some embodiments, the processor 101 and the camera 193 communicate via the CSI interface to realize the shooting function of the electronic device 100. The processor 101 and the display screen 104 communicate via the DSI interface to realize the display function of the electronic device 100.

[0190] The GPIO interface can be configured by software. The GPIO interface can be configured as a control signal or as a data signal. In some embodiments, the GPIO interface can be used to connect the processor 101 with the camera 193, the display screen 104, the wireless communication module, the audio module 170, the sensor module 180, etc. The GPIO interface can also be configured as an I2C interface, an I2S interface, a UART interface, a MIPI interface, etc.

[0191] The USB interface 130 is an interface that complies with the USB standard specification, and specifically can be a Mini USB interface, a Micro USB interface, a USB Type C interface, etc. The USB interface 130 can be used to connect a charger to charge the electronic device 100, and can also be used to transfer data between the electronic device 100 and a peripheral device. It can also be used to connect headphones to play audio through the headphones. The interface can also be used to connect other electronic devices, such as AR devices, etc.

[0192] It is understandable that the interface connection relationship between the modules illustrated in the embodiment of the present invention is only a schematic illustration and does not constitute a structural limitation on the electronic device 100. In other embodiments of the present application, the electronic device 100 may also adopt different interface connection methods in the above embodiments, or a combination of multiple interface connection methods.

[0193] The memory 102 can be used to store computer executable program codes, which include instructions. The processor 101 executes various functional applications and data processing of the electronic device 100 by running the instructions stored in the memory 102. The memory 102 may include a program storage area and a data storage area. Among them, the program storage area may store an operating system, an application required for at least one function (such as a sound playback function, an image playback function, etc.), etc. The data storage area may store data created during the use of the electronic device 100 (such as audio data, a phone book, etc.), etc. In addition, the memory 102 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, a universal flash storage (UFS), etc.

[0194] The transceiver 103 can be used to communicate with network devices and other electronic devices. The electronic device 100 can upload or download components through the transceiver 103. In some embodiments, the transceiver 103 may include a mobile communication module (not shown in the figure) and a wireless communication module (not shown in the figure), wherein:

[0195] The mobile communication module can provide solutions for wireless communications including 2G / 3G / 4G / 5G, etc., applied to the electronic device 100. The mobile communication module may include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), etc. The mobile communication module can receive electromagnetic waves from the antenna 1, and filter, amplify, and process the received electromagnetic waves, and transmit them to the modulation and demodulation processor for demodulation. The mobile communication module can also amplify the signal modulated by the modulation and demodulation processor, and convert it into electromagnetic waves for radiation through the antenna 1. In some embodiments, at least some of the functional modules of the mobile communication module may be arranged in the processor 101. In some embodiments, at least some of the functional modules of the mobile communication module may be arranged in the same device as at least some of the modules of the processor 101.

[0196] The modem processor may include a modulator and a demodulator. The modulator is used to modulate the low-frequency baseband signal to be sent into a medium-high frequency signal. The demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing. After the low-frequency baseband signal is processed by the baseband processor, it is passed to the application processor. The application processor outputs a sound signal through an audio device (not limited to a speaker, a receiver, etc.), or displays an image or video through the display screen 104. In some embodiments, the modem processor may be an independent device. In other embodiments, the modem processor may be independent of the processor 101 and be set in the same device as the mobile communication module or other functional modules.

[0197] The wireless communication module can provide wireless communication solutions 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), etc., which are applied to the electronic device 100. The wireless communication module can be one or more devices integrating at least one communication processing module. The wireless communication module receives electromagnetic waves via antenna 2, modulates and filters the electromagnetic wave signals, and sends the processed signals to processor 101. The wireless communication module can also receive the signal to be sent from processor 101, modulate the frequency, amplify it, and convert it into electromagnetic waves for radiation through antenna 2.

[0198] The electronic device 100 implements the display function through a GPU, a display screen 104, and an application processor. The GPU is a microprocessor for image processing, which connects the display screen 104 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 101 may include one or more GPUs, which execute program instructions to generate or change display information.

[0199] The display screen 104 can be used to display graphics of components, as well as toolboxes, component layout designers, etc. The display screen 104 includes a display panel. The display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode or an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), Miniled, MicroLed, Micro-oLed, quantum dot light emitting diodes (QLED), etc. In some embodiments, the electronic device 100 may include 1 or N display screens 104, where N is a positive integer greater than 1.

[0200] The sensor 105 may be used to detect user operations, such as a user dragging a component, a user sliding a component, etc. The sensor 105 may include a pressure sensor and a touch sensor, wherein:

[0201] The pressure sensor is used to sense the pressure signal and can convert the pressure signal into an electrical signal. In some embodiments, the pressure sensor can be set on the display screen 104. There are many types of pressure sensors, such as resistive pressure sensors, inductive pressure sensors, capacitive pressure sensors, etc. The capacitive pressure sensor can be a parallel plate including at least two conductive materials. When a force acts on the pressure sensor, the capacitance between the electrodes changes. The electronic device 100 determines the intensity of the pressure according to the change in capacitance. When a touch operation acts on the display screen 104, the electronic device 100 detects the touch operation intensity according to the pressure sensor. The electronic device 100 can also calculate the touch position according to the detection signal of the pressure sensor. In some embodiments, touch operations acting on the same touch position but with different touch operation intensities can correspond to different operation instructions. For example: when a touch operation with a touch operation intensity less than the first pressure threshold acts on the short message application icon, an instruction to view the short message is executed. When a touch operation with a touch operation intensity greater than or equal to the first pressure threshold acts on the short message application icon, an instruction to create a new short message is executed.

[0202] A touch sensor is also called a "touch panel". The touch sensor can be arranged on the display screen 104, and the touch sensor and the display screen 104 form a touch screen, also called a "touch screen". The touch sensor is used to detect a touch operation acting on or near it. The touch sensor can transmit the detected touch operation to the application processor to determine the type of touch event. A visual output related to the touch operation can be provided through the display screen 104. In other embodiments, the touch sensor can also be arranged on the surface of the electronic device 100, which is different from the position of the display screen 104.

[0203] Fig.14 Schematic block diagram of an electronic device 200 provided in an embodiment of the present application. Fig.14 As shown, the electronic device 200 may include a detection unit 201, a processing unit 202, and a display unit 203.

[0204] The detection unit 201 is used to detect a user operation received by the electronic device 200, such as a user dragging a component from a component toolbox, a user dragging an input connection point of a second component to an output connection point of a first component, and so on.

[0205] The processing unit 202 is used to obtain the data entity type supported by the connection point of the component in response to the user operation detected by the detection unit 201, and determine whether the output connection point of the first component matches the input connection point of the second component.

[0206] The display unit 203 is used to display the graphics of the components, the data entity types supported by the connection points of the components, and the identification of the successful connection between two components.

[0207] The various units in the user device 200 of the embodiment of the present application and the above-mentioned other operations or functions are respectively the corresponding processes executed by the electronic device in the APP development method, which will not be repeated here.

[0208] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0209] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0210] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0211] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0212] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as USB flash drives, mobile hard drives, ROM, RAM, magnetic disks, or optical disks.

[0213] As described above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application. < / videosplit> < / composeplayer>

Claims

1. An application APP development platform, characterized in that: Applied to electronic devices, the APP development platform includes a component toolbox, a component layout designer and a code generation engine, wherein: The component toolbox is used to provide components, wherein the components are independent modules that implement specific functions, and the components are composed of a component body and one or more connection points, and the connection points support one or more data entity types; The component layout designer is used to read the file of the component and draw the component based on the file of the component; The component layout designer is used to display the components, and the components include a first component; The component arrangement designer is used to display a component call tree of the first component according to the function of the first component and / or the data entity type supported by the connection point of the first component in response to the user selecting an operation of intelligent arrangement of the first component; the component call tree is used to display a second component matching the first component, and the component call tree of the first component is also used to display a third component matching the first component, and a fourth component and / or a fifth component matching the second component, until an Nth component matching the Mth component, and the Nth component is a component without an output connection point, wherein M and N are positive integers; The component arrangement designer is used to connect the first component and the second component according to a user's operation of connecting components; The code generation engine is used to generate source code executable by a first APP from the first component and the second component connected in the component arrangement designer, and the first APP includes the first component and the second component.

2. The APP development platform according to claim 1, characterized in that: The component layout designer is also used to: In response to the user's operation of deleting the second component, the second component in the component call tree is deleted.

3. The APP development platform according to claim 2, characterized in that: The component layout designer is also used to: In response to an operation by the user to connect the first component and the second component, verifying whether the first component and the second component match; If the first component matches the second component, a first connection point and a second connection point are connected, wherein the first connection point is the connection point of the first component and the second connection point is the connection point of the second component.

4. The APP development platform according to claim 3, characterized in that: The matching of the first component and the second component includes: the first data entity type is the same as the second data entity type, the first data entity type includes the second data entity type, or the second data entity type includes the first data entity type, wherein the first data entity type is the type of data entity supported by the first connection point and the second data entity is the type of data entity supported by the second connection point.

5. The APP development platform according to claim 1, characterized in that: The component toolkit is also used to: In response to the user uploading a component or downloading a component from the component market, the name of the component uploaded by the user or downloaded from the component market is displayed.

6. The APP development platform according to claim 3, characterized in that: The component layout designer is also used to: In response to the user's operation of viewing the first connection point attributes, data entity types supported by the first connection point are displayed.

7. The APP development platform according to claim 6, characterized in that: The component arrangement designer is specifically used for: In response to an operation by the user to connect the first connection point and the second connection point, a connection line connecting the first connection point and the second connection point is displayed.

8. The APP development platform according to claim 6, characterized in that: The component arrangement designer is specifically used for: In response to the user's operation of connecting the first connection point and the second connection point, the first connection point and the second connection point are displayed overlappingly.

9. The APP development platform according to claim 1, characterized in that: The component arrangement designer is specifically used for: According to the user's operation of selecting the first component from the component toolbox, the first component is displayed.

10. The APP development platform according to any one of claims 1 to 9, characterized in that: The component layout designer is also used to: The orchestration model diagram of two or more components that have completed the connection and the first information in the orchestration model diagram are saved; the first information includes one or more of the IDs and names of the two or more components and the data entity types supported by the connection points of the two or more components.

11. The APP development platform according to claim 10, characterized in that: The code generation engine is specifically used for: The executable source code of the first APP is generated according to the arrangement model diagram, the first information and the component calling template, wherein the component calling template includes program code in a preset format.

12. An APP development method, characterized in that: include: In response to a user selecting a component from a component toolbox of an electronic device, the electronic device reads a file of the component through a component layout designer and draws the component based on the file of the component. The component is an independent module that implements a specific function. The component consists of a component body and one or more connection points. The connection points support one or more data entity types. The electronic device displays the components in the component layout designer, wherein the components include a first component; In response to a user selecting an operation of intelligently arranging the first component, the electronic device displays a component call tree of the first component in the component arrangement designer according to a function of the first component and / or a data entity type supported by a connection point of the first component; The component call tree is used to display the second component matched by the first component, and the component call tree of the first component is also used to display the third component matched by the first component, and the fourth component and / or the fifth component matched by the second component, until the Nth component matched by the Mth component, and the Nth component is a component without an output connection point, wherein M and N are positive integers; The component arrangement designer of the electronic device connects the first component and the second component according to the operation of connecting components by the user; In response to the user selecting an operation of compiling the first component and the second component, the electronic device generates executable source code of a first APP by connecting the first component and the second component in a code generation engine.

13. The method according to claim 12, characterized in that The method further comprises: In response to the user's operation of deleting the second component, the electronic device deletes the second component in the component call tree.

14. The method according to claim 13, characterized in that The component arrangement designer of the electronic device connects the first component and the second component according to the operation of connecting components by the user, specifically including: In response to the user's operation of connecting the first component and the second component, the electronic device verifies through the component layout designer whether the first component and the second component match; If the first component matches the second component, the electronic device connects a first connection point and a second connection point, the first connection point being the connection point of the first component and the second connection point being the connection point of the second component.

15. The method according to claim 14, characterized in that The matching of the first component and the second component includes: the first data entity type is the same as the second data entity type, the first data entity type includes the second data entity type, the second data entity type includes the first data entity type, the first data entity type is the type of data entity supported by the first connection point, and the second data entity is the type of data entity supported by the second connection point.

16. The method according to claim 12, characterized in that The method further comprises: In response to the user uploading a component or downloading a component from the component market, the electronic device displays the name of the component uploaded by the user or downloaded from the component market in the component toolbox.

17. The method according to claim 14, characterized in that The method further comprises: In response to the user's operation of viewing the first connection point property of the first component, the electronic device displays data entity types supported by the first connection point in the component layout designer.

18. The method according to claim 14, characterized in that The electronic device connecting the first connection point and the second connection point comprises: displaying a connection line connecting the first connection point and the second connection point; Or, the first connection point and the second connection point are overlapped.

19. The method according to any one of claims 12 to 18, characterized in that: The method further comprises: The electronic device saves an orchestration model diagram of two or more components that have completed the connection in the component orchestration designer, as well as first information in the orchestration model diagram; the first information includes one or more of the IDs and names of the two or more components and the data entity types supported by the connection points of the two or more components.

20. The method according to claim 19, characterized in that The method further comprises: The electronic device generates, in the code generation engine, source code executable by the first APP according to the arrangement model diagram, the first information and a component calling template, wherein the component calling template includes a program code in a preset format.

21. An electronic device characterized in that: include: One or more processors, one or more memories; the one or more memories are respectively coupled to the one or more processors; the one or more memories are used to store computer program codes, and the computer program codes include computer instructions; when the computer instructions are executed on the processor, the electronic device executes the APP development method as described in any one of claims 12-20.

22. A computer-readable storage medium, characterized in that: It includes computer instructions, and when the computer instructions are executed on an electronic device, the electronic device executes the APP development method as described in any one of claims 12-20.

Citation Information

Patent Citations

  • J2EE and component set-based visualized development platform

    CN102087597A

  • Method and system for developing software system based on features and feature tree

    CN104615425A

  • Component visual development method

    CN110187875A

  • APP development platform, APP development methodology and electronic devices

    CN114371844B