Multi-window display method for application program, and electronic device

By running the activity created by the system in the process of third-party applications, the system memory usage and user experience problems caused by multi-window display in the prior art are solved, and efficient simultaneous management of multiple windows is achieved.

WO2025066466A1PCT designated stage expired Publication Date: 2025-04-03HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/106518
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-25
Filing Date
2024-07-19
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

When the prior art realizes multi-window display of application programs, it leads to an increase in system memory usage and cannot manage two display windows at the same time, reducing the user experience.

Method used

By running the activity created by the system in the process of a third-party application, avoiding the occupancy of system memory and ensuring that two display windows are run in the same process, thus achieving simultaneous management of multiple windows.

Benefits of technology

It effectively avoids the system memory usage, improves the user experience, and ensures simultaneous management and efficient operation of multiple windows.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024106518_03042025_PF_FP_ABST
    Figure CN2024106518_03042025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present application are a multi-window display method for an application program, and an electronic device. The method comprises: an electronic device receiving a first operation of a user, wherein the first operation is configured to open an application, the application supports a parallel view mode, the parallel view mode comprises a first window and a second window, the first window corresponds to a component launched by the application, and the second window corresponds to a component created by a system of the electronic device; in response to the first operation, the electronic device creating an activity object and launching the component created by the system, wherein the activity object comprises a process name and unique identifier of the application; and on the basis of the process name and unique identifier of the application in the activity object, launching the component created by the system in a process of the application. The method provided in the present application ensures that activities corresponding to the first window and the second window are both launched in the same application process, such that the electronic device managing two display windows simultaneously is ensured on the basis of avoiding occupying system memory, thereby enhancing user experience.
Need to check novelty before this filing date? Find Prior Art

Description

A method for displaying multiple application windows and an electronic device

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on September 25, 2023, with application number 202311256872X and application name “A method for displaying multiple windows of an application and an electronic device”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of electronic technology, and more specifically, to a method for displaying multiple windows of an application program and an electronic device. Background Art

[0003] With the continuous development of smart terminals, devices such as smartphones, tablets, and car displays are becoming more and more popular, bringing great convenience to people's lives, studies, and work. With the development of electronic device screen technology, users' demand for multi-tasking and multi-window processing capabilities of smart terminals is also increasing.

[0004] In order to facilitate users to operate and view electronic devices with display screens, relevant technologies support in-application split-screen display technology, namely parallel vision mode. The parallel vision mode can realize dual-window display of application content. Two pages of the application can be displayed separately on the two display windows, for example, the application homepage and content page, or two different content pages, so that users can use one screen for two purposes, thereby improving user experience.

[0005] However, the activities corresponding to the two display windows run in the application process and the system process respectively, which occupies system memory and cannot manage the two display windows at the same time, thereby reducing the user experience.

[0006] Summary of the Invention

[0007] The present application provides a method for displaying multiple windows of an application and an electronic device. The method can run a system-created activity in the process of a third-party application, thereby ensuring the simultaneous management of two display windows while avoiding occupying system memory, thereby improving the user experience.

[0008] In the first aspect, the present application provides a method for displaying multiple windows of an application. The method provided in the first aspect can be executed by an electronic device, or by a module applied to the electronic device (such as a processor, chip, or chip system, etc.), or by a logical node, logical module or software that can realize all or part of the functions of the electronic device. The present application does not limit this.

[0009] Specifically, the method includes: the electronic device receives a first operation from a user, the first operation is used to open an application, the application supports a parallel vision mode, the parallel vision mode includes a first window and a second window, the first window corresponds to a component started by the application, and the second window corresponds to a component created by the system of the electronic device; in response to the first operation, the electronic device creates an activity and starts the component created by the system, the activity object includes the process name and unique identifier of the application; the system-created component is started in the process of the application according to the process name and unique identifier of the application in the activity object.

[0010] The method provided in the first aspect, based on the user's first operation, opens the parallel vision mode of the application, and creates a corresponding active object for the newly added component of the system. The active object includes the process name and unique identifier of the application. Therefore, based on the process name and unique identifier of the application in the active object, the newly added component of the system is started in the process of the application, ensuring that the components corresponding to the first window and the second window are started in the same application process, thereby avoiding occupying system memory and ensuring that the two display windows can be managed simultaneously, thereby improving the user experience.

[0011] In one possible implementation of the first aspect, before the electronic device creates the active object, the method further includes: the electronic device's system determining the application's process name and unique identifier based on the first operation. In this implementation, the electronic device's system parses the application's process name and unique identifier based on the user's operation of opening the application, so that the system-created component is launched into the application's process based on the process name and unique identifier.

[0012] In one possible implementation of the first aspect, the application process name and unique identifier are stored in the first field of the intent. In this implementation, the intent describes the component to be launched and carries some necessary data for the launched component. Therefore, storing the application process name and unique identifier in the first field of the intent can launch the component to be launched into the corresponding process.

[0013] In one possible implementation of the first aspect, the electronic device creates an activity object, including: the electronic device creates an empty activity object, reads a process name and a unique identifier in a first field of an intent, and saves the process name and the unique identifier in the empty activity object to obtain the activity object. In this implementation, to enable a system-created component to be launched into a corresponding application, the process name and the unique identifier of the application need to be saved in the empty activity object, so that when the activity object is run in the task stack, the system-created activity is launched into the corresponding application.

[0014] In a possible implementation manner of the first aspect, the first field is an extra field.

[0015] In a possible implementation of the first aspect, a system-created component is launched in an application process based on the application's process name and unique identifier in an active object, including: when the application's process name and unique identifier in the active object match the process name and unique identifier of a currently running process, launching the system-created component in the currently running process; when the application's process name and unique identifier in the active object do not match the process names and unique identifiers of all currently running processes, creating a new process based on the application's process name and unique identifier in the active object, and launching the system-created component in the new process. In this implementation, the application's process name and unique identifier in the active object can be used to determine whether the system-created component is running in an existing process or a newly created process. It should be understood that both an existing process and a newly created process are processes in the application.

[0016] In a possible implementation of the first aspect, the components created by the system are stored in a system jar package that is loaded when the application is started.

[0017] In this implementation, when the components created by the system run in the application process and the application loads the window that needs to be displayed, the components on the window or other functional logic implementations on the components are still on the system side. Therefore, when the components created by the system are saved in the system jar package that will be loaded when the application starts, the application can load these jar packages when it starts, thereby ensuring that the window corresponding to the activity created by the system can be displayed normally.

[0018] Exemplarily, the jar package of the system can be any one of framework.jar, hwEmui.jar, and services.jar. Of course, the jar package of the system loaded when the application starts can also be other jar packages, which is not specifically limited in the embodiment of the present application.

[0019] In one possible implementation of the first aspect, in response to the first operation, the display states of the display components of the first window and the display components of the second window are made consistent. In this implementation, in response to the first operation, a system-created activity is started in an application process, and the first and second windows correspond to the same process, so that the display states of the draggable components of the first window and the draggable components of the second window can be made consistent.

[0020] In a possible implementation of the first aspect, the DRG bar of the first window and the DRG bar of the second window are both highlighted, the drag component of the first window includes the DRG bar of the first window, and the drag component of the second window includes the DRG bar of the second window. In this implementation, the highlighting of the first window and the DRG bar and the DRG bar of the second window can provide a consistent user experience.

[0021] In a possible implementation of the first aspect, the second window is displayed on the display screen of the electronic device in a full-screen or floating window manner.

[0022] In one possible implementation of the first aspect, when an application starts, verification of the package name and unique identifier of a system-created component is skipped. In this implementation, since only the process name and unique identifier of the system-created component are modified, the package name of the component remains the system package name. Therefore, skipping verification of the package name and unique identifier of the system-created component ensures that the window corresponding to the system-created component is successfully displayed when the application starts.

[0023] In a possible implementation of the first aspect, the operating system of the electronic device is an Android operating system.

[0024] In a second aspect, a communication device is provided, which includes a unit for executing each step in the above first aspect or any possible implementation manner of the first aspect.

[0025] In a third aspect, a communication device is provided, which includes at least one processor and a memory, the processor and the memory are coupled, the memory stores program instructions, and when the program instructions stored in the memory are executed by the processor, the method in the above first aspect or any possible implementation of the first aspect is executed.

[0026] In a fourth aspect, a communication device is provided, comprising at least one processor and an interface circuit, wherein the at least one processor is configured to execute the method in the above first aspect or any possible implementation of the first aspect.

[0027] In a fifth aspect, an electronic device is provided, which includes a processor and a memory, the memory being used to store a computer program, and the processor being used to call and run the computer program from the memory, so that the electronic device executes the method in the above first aspect or any possible implementation of the first aspect.

[0028] In a possible implementation of the fifth aspect, the electronic device may be any one of a mobile phone, a tablet, a personal computer, or a car computer.

[0029] In a possible implementation of the fifth aspect, the operating system of the electronic device is an Android operating system.

[0030] In a sixth aspect, a computer program product is provided, which includes a computer program. When the computer program is executed by a processor, it is used to execute the method in the above first aspect or any possible implementation of the first aspect.

[0031] In the seventh aspect, a computer-readable storage medium is provided, which stores a computer program. When the computer program is executed, it is used to execute the method in the above first aspect or any possible implementation of the first aspect.

[0032] In an eighth aspect, a chip is provided, comprising: a processor for calling and running a computer program from a memory, so that a communication device equipped with the chip executes a method for executing the above first aspect or any possible implementation of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0033] FIG1 is a schematic diagram showing a display style of a parallel horizon display mode;

[0034] FIG2 is a schematic diagram showing another example of a display style of a parallel horizon display mode;

[0035] FIG3 shows a schematic diagram of an interface when an application is started for the first time;

[0036] FIG4 shows a logic diagram of the process of starting an activity in the Android operating system;

[0037] FIG5 is a schematic diagram showing the structure of an electronic device 100 provided in this application;

[0038] FIG6 shows a software structure block diagram of the electronic device 100 according to an embodiment of the present application;

[0039] FIG7 shows a schematic diagram of an interface of a multi-window display of an application provided in an embodiment of the present application;

[0040] FIG8 shows a schematic flow chart of a multi-window display of an application provided in an embodiment of the present application;

[0041] FIG9 shows another schematic flow chart of multi-window display of an application provided by an embodiment of the present application;

[0042] FIG10 shows a schematic flowchart of yet another example of multi-window display of an application provided by an embodiment of the present application;

[0043] FIG11 is a schematic flowchart of a method 1100 for displaying multiple application windows according to an embodiment of the present application;

[0044] FIG12 shows a schematic structural diagram of an electronic device provided by the present application. DETAILED DESCRIPTION

[0045] The technical solutions in the embodiments of the present application will be described clearly and completely below in conjunction with the drawings in the embodiments of the present application.

[0046] The terms used in the following embodiments are only for the purpose of describing specific embodiments and are not intended to be limiting of the present application. As used in the specification and appended claims of this application, the singular expressions "a", "an", "above", "the" and "this" are intended to also include expressions such as "one or more", unless there is a clear contrary indication in the context. It should also be understood that in the embodiments of the present application, "one or more" refers to one or more (including two); "and / or" describes the association relationship of associated objects, indicating that three relationships may exist; for example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the related objects before and after are in an "or" relationship.

[0047] References to "one embodiment" or "some embodiments" in this specification mean that a particular feature, structure, or characteristic described in conjunction with that embodiment is included in one or more embodiments of the present application. Thus, phrases such as "in one embodiment," "in some embodiments," "in other embodiments," and "in yet other embodiments" appearing in various places in this specification do not necessarily refer to the same embodiment, but rather mean "one or more but not all embodiments," unless otherwise specifically emphasized. The terms "including," "comprising," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized.

[0048] The "multiple" involved in the embodiments of the present application means greater than or equal to two. It should be noted that in the description of the embodiments of the present application, the words "first" and "second" are only used for the purpose of distinguishing the description and cannot be understood as indicating or implying relative importance or order.

[0049] With the continuous development of smart devices, such as mobile phones, tablets, PCs, and in-car displays, they are widely used in home entertainment, office work, and learning environments. Consumer demand for multi-tasking and multi-window processing capabilities on these devices is also increasing. To improve the multitasking experience, floating windows on terminal devices now support flexible resizing. When users drag a floating window to landscape mode, it will display in parallel view mode within the floating window.

[0050] Parallel View mode is based on an application's activity (a component), also known as an activity. It extends the display framework to enable independent, separate display of activities, allowing each activity to appear in a different location on the screen. Parallel View mode can be understood as a split-screen feature within an app. In landscape mode, different aspects of an app's interface can be displayed simultaneously in two windows, one on the left and the other on the right, fully leveraging the large screen size of a tablet. To meet different user needs, Parallel View mode can be divided into navigation bar mode, shopping mode, and custom mode. Navigation bar mode maintains the main application interface on the left, while the right window displays new content clicked on the left. Applications using this mode are typically instant messaging apps. Shopping mode maintains the two most recent application windows on the screen, with the most recent window on the right and the second most recent window on the left, allowing users to easily compare products. Applications using this mode are typically shopping apps. Custom mode allows developers to customize the window display mode, allowing them to use full-screen or split-screen displays based on their business scenarios. Developers simply need to integrate the UIKit development framework and configure it to support applications such as video playback.

[0051] It should be understood that the parallel vision mode is different from the split-screen function in the traditional sense. The split screen only displays an additional interface, while the parallel vision mode displays an application interface in a split screen.

[0052] For example, Figure 1 shows a schematic diagram of a parallel view display mode. As shown in Figure 1, a floating window 105 of an application is displayed on the display screen 102 of a tablet computer 101. Two windows, window 103 and window 104, are displayed within floating window 105. That is, the content displayed in window 103 and the content displayed in window 104 are from the same application, and the display interface of the same application can be displayed simultaneously in the left and right windows in parallel view mode.

[0053] For another example, FIG2 shows a schematic diagram of the display style of another parallel horizon display mode. As shown in FIG2 , a floating window 205 of another application is displayed on the display screen 202 of the tablet computer 201. Two windows are displayed in the floating window 205, namely, window 203 and window 204. The floating window 205 can be understood as an application task stack. The window 203 in the floating window 205 corresponds to an activity of an application, and the window 204 corresponds to an activity. The floating window 205 also includes a title bar 206, which is composed of the title bars of window 203 and window 204. The title bar 206 includes zoom in and zoom out buttons on the left and a close button on the right. A drag button 207 is displayed in the middle of the entire application task stack. The position of the floating window can be moved by clicking the drag button 207.

[0054] Based on the display interfaces shown in Figures 1 and 2, it can be seen that in order to display multiple windows in parallel view mode in a floating window, at least two activities are required. However, when an application is first started, there is usually only one activity. At this time, the parallel view cannot be entered, and another activity must be started before entering the parallel view. So, from the user's perspective, it is not clear under what circumstances clicking on the content in the application can enter the parallel view. Therefore, the system side of the electronic device can add an empty activity to the application that supports parallel view. When the user starts the application for the first time, the system side starts the empty activity. After there are two activities, the application can directly enter the parallel view state of the floating window.

[0055] For example, FIG3 shows a schematic diagram of the interface when an application is first started. As shown in FIG3 (a), a floating window 305 of an application is displayed on the display screen 302 of the tablet computer 301, and the floating window 305 can support free size change. When the application supports parallel vision mode, the user can change the size of the floating window 305 by dragging the floating window 305. When the size of the floating window 305 changes to the horizontal screen size, the parallel vision mode is entered. After entering the parallel vision mode, as shown in FIG3 (b), two windows are displayed in the floating window 305, namely window 303 and window 304.

[0056] As can be seen, when an application is first launched, it usually has only one activity, and the user is unclear whether changing the size of the floating window will allow them to enter the parallel view mode. Therefore, the electronic device's system can add an empty activity to the application. When the user first launches the application, the system launches the empty activity. That is, when the user first launches the application, as shown in Figure 3 (b), the system launches the empty activity, thus reminding the user that the application supports the parallel view mode.

[0057] Therefore, in order to display multiple windows in parallel view mode in a floating window, the electronic device needs to start another empty activity on the system side in addition to the activity started when the application is first started, so as to support the floating window parallel view state of the application.

[0058] The following takes the Android operating system as an example to explain the activity startup process in detail.

[0059] Generally, all components within an application run in the same process. However, if you want to control the process of a specific component, you can configure this in the manifest file. Each component element in the manifest file (for example, an activity) supports an "android:process" attribute, which allows you to specify the process in which a component runs. By setting this attribute, you can have each component run in its own process, have certain components share a process, or have components from different applications run in the same process.

[0060] It should be understood that each application corresponds to a manifest file, which describes the basic information and functions of an application, such as the application's name, icon, version number, components, and permissions, etc., and the manifest file includes information to ensure the compatibility, security, and stability of the application with other applications and system components.

[0061] It's also important to understand that android:process is generally used to launch multiple processes for an application, essentially assigning a single running process name to each component within the application. Each component defines its own process name by setting its own process attribute. By default, Android creates a single process for an application. When the first component of an application runs, all components run within the same process. This process name can be the same as the backing (package name) in the manifest file.

[0062] All activities in an application must be declared in the application's manifest.xml file, which includes both the activity and application tags. Therefore, you can specify the process for starting an activity by configuring the android:process option within the activity tag or the android:process option within the application tag.

[0063] For example, Figure 4 shows a schematic diagram of the logic for searching for an activity's startup process in the Android operating system. As shown in Figure 4, the process first checks the activity tag to see if the process attribute is configured. If so, the processName is the name configured in the activity tag. If the process attribute is not configured in the activity tag, the process then checks the application tag to see if it is configured. If so, the processName is the name configured in the application tag. If neither is configured, the processName is the application's package name.

[0064] Once the process name is determined, the process name and unique identifier (UID) are combined to search the existing process list for a match. If a match is found, the activity is launched in that process, thus reducing resource usage. If no match is found, a new process is created. The UID is assigned by the system and is generally the UID of the application hosting the activity.

[0065] Similarly, in parallel view mode, when the system creates an empty activity, the startup process of the activity is as described above. That is, the empty activity can only be declared in the system manifest file. If the process attribute is not specified, the process will run in the corresponding system process, not in the application's process. If the process of the empty activity runs in the system process, two problems will arise: first, it will occupy system memory, affecting performance and power consumption; second, the floating window dual window corresponds to two activities, one from the application's activity, which runs in the application's process, and the other from the system's activity, which runs in the system's process. If the application's activity and the system's activity are not in the same process, it will make cross-process activity communication difficult, and it will be impossible to ensure that the life cycles of the two display windows are managed simultaneously. Then, when the user operates on one side of the screen, the content on the other side can easily be affected. Ultimately, many synchronization functions cannot be implemented.

[0066] For example, referring to Figure 2 , as shown in Figure 2 , if the activity corresponding to window 203 and the activity corresponding to window 204 are not in the same process, then when the user clicks the title bar of the left window, the dragbar of the right window cannot be highlighted, and the dragbars of the left window and the right window cannot be focused or lost focus at the same time, which will make the user confused about the two focus states in the same application, thereby affecting the user's usage experience.

[0067] In summary, the android:process field in the activity and application tags is static and cannot dynamically adapt to all third-party apps. Therefore, the process of a system-added activity cannot be run in the corresponding application. Therefore, how to modify the startup process of a system-added activity so that it can adapt to any third-party application is a current problem that needs to be solved.

[0068] In view of this, the present application provides a method for displaying multiple windows of an application. The method includes: creating an activity object based on a system activity startup request; the system side of the electronic device simultaneously determining the processName and uid of the third-party application that needs to be changed; saving the processName and uid of the third-party application to the created activity object; and the electronic device determining whether there is a running process based on the saved processName and uid. If so, the system activity is launched into the running process; if not, a new process is created. This method allows multiple windows of an application to run in the application process, thereby ensuring that the electronic device can manage multiple display windows simultaneously while avoiding occupying system memory.

[0069] Before introducing the method for displaying multiple windows of an application provided by the present application, the electronic device provided by the present application is first specifically described. An embodiment of the present application provides an electronic device for executing the method for displaying multiple windows of an application provided by the present application. For example, the electronic device in the embodiment of the present application can be a personal computer, various portable notebooks, various tablet computers, mobile phones, car computers, etc. Optionally, the electronic device can also be a personal digital assistant (PDA), a handheld device with a large display screen, a computing device, a vehicle-mounted device, a wearable device, an electronic device in a 5G network, or an electronic device in an evolved public land mobile communication network (PLMN), etc., and the embodiment of the present application is not limited to this.

[0070] In the electronic devices mentioned above, the electronic device may be a single screen, a folding screen, a curved screen, etc., wherein the folding screen may be a structure with two physical screens or a structure with one physical screen, which is not specifically limited here. For electronic devices that physically have two screens, they may include a main screen and a secondary screen, wherein the main screen may serve as the left window of the electronic device and the secondary screen may serve as the right window of the electronic device. In the embodiments of the present application, the multi-window display method of the application provided in the present application may also be applied to electronic devices with more than three screens, which is not specifically limited here.

[0071] For example, FIG5 is a schematic diagram of the structure of an electronic device 100 provided by the present application. The electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display 194, and a subscriber identification module (SIM) card interface 195. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.

[0072] The processor 110 may include one or more processing units. For example, the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (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). The different processing units may be independent devices or integrated into one or more processors.

[0073] In an embodiment of the present application, processor 110 may receive a user instruction to launch an application. For example, after the user launches the application, the display screen may implement a split-screen display, i.e., displaying a first window and a second window horizontally on the display screen. Furthermore, based on the user's operation, processor 110 may run the system-created activity within the process of a third-party application, thereby ensuring that both display windows can be managed simultaneously, thereby improving the user experience.

[0074] 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.

[0075] Processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in processor 110 is a cache memory. This memory can store instructions or data that have just been used or are being recycled by processor 110. If processor 110 needs to use the same instruction or data again, it can directly access the memory. This avoids duplicate accesses, reduces processor 110 latency, and thus improves system efficiency.

[0076] Among them, the memory is used to store the application code for executing the solution of this application, and the execution is controlled by the processor 110. The processor 110 is used to execute the application code stored in the memory to control the electronic device 100 to implement the application multi-window display method provided in the embodiment of this application.

[0077] In some embodiments, the processor 110 may include one or more interfaces. The interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface.

[0078] It is understood that the interface connection relationship between the modules illustrated in the embodiments of the present application is merely an illustrative 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 from the above embodiments, or a combination of multiple interface connection methods.

[0079] The charging management module 140 is configured to receive charging input from a charger. The charger can be either a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 can receive charging input from the wired charger via the USB interface 130. In some wireless charging embodiments, the charging management module 140 can receive wireless charging input via the wireless charging coil of the electronic device 100. While charging the battery 142, the charging management module 140 can also provide power to the electronic device via the power management module 141.

[0080] The wireless communication function of the electronic device 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.

[0081] Electronic device 100 implements display functionality through a GPU, display screen 194, and an application processor. A GPU is a microprocessor for image processing that connects display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. Processor 110 may include one or more GPUs that execute program instructions to generate or modify display information.

[0082] Display screen 194 is used to display images, videos, and the like. Display screen 194 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 (AMOLED), a flexible light-emitting diode (FLED), a MiniLED, a MicroLED, a Micro-oLed, or a quantum dot light-emitting diode (QLED). In some embodiments, electronic device 100 may include one or N display screens 194, where N is a positive integer greater than one.

[0083] In an embodiment of the present application, the display screen 194 can be used to display a floating window, which includes multiple windows, namely, a window corresponding to an activity started by an application and a window corresponding to an activity created by the system.

[0084] The electronic device 100 can implement a shooting function through an ISP, a camera 193, a video codec, a GPU, a display screen 194, and an application processor.

[0085] The external memory interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device 100. The external memory card communicates with the processor 110 via the external memory interface 120 to implement data storage functions. For example, files such as music and videos can be stored on the external memory card.

[0086] The internal memory 121 can be used to store computer executable program codes, which include instructions. The processor 110 executes various functional applications and data processing of the electronic device 100 by running the instructions stored in the internal memory 121. The internal memory 121 may include a program storage area and a data storage area. Among them, the program storage area can 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 can store data created during the use of the electronic device 100 (such as audio data, a phone book, etc.), etc. In addition, the internal memory 121 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.

[0087] The electronic device 100 can implement audio functions such as music playback and recording through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the headphone jack 170D, and the application processor.

[0088] The touch sensor 180K is also called a "touch panel." The touch sensor 180K can be disposed on the display screen 194. The touch sensor 180K and the display screen 194 form a touch screen, also called a "touch screen." The touch sensor 180K is used to detect touch operations applied thereto or in the vicinity thereof. The touch sensor can transmit the detected touch operations to the application processor to determine the type of touch event. Visual output related to the touch operations can be provided via the display screen 194. In other embodiments, the touch sensor 180K can also be disposed on the surface of the electronic device 100, in a location different from that of the display screen 194.

[0089] For example, in the embodiment of the present application, the user's operation of opening an application can be obtained through the touch sensor 180K. After receiving the user's operation of opening an application, the processor 110 starts the activity created by the system in the process of the third-party application in response to the operation.

[0090] The buttons 190 include a power button, a volume button, etc. The motor 191 can generate a vibration prompt. The indicator 192 can be an indicator light, which can be used to indicate the charging status, power changes, messages, missed calls, notifications, etc. The SIM card interface 195 is used to connect a SIM card. It will be understood that the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the electronic device 100. In other embodiments of the present application, the electronic device 100 may include more or fewer components than shown in the figure, or combine certain components, or split certain components, or arrange the components differently. The illustrated components can be implemented in hardware, software, or a combination of software and hardware.

[0091] Figure 6 shows a software structure diagram of the electronic device 100 according to an embodiment of the present application. The layered architecture divides the software into several layers, each with a clear role and division of labor. The layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers: the application layer, the application framework layer, the Android runtime and system library, and the kernel layer.

[0092] As shown in FIG6 , the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.

[0093] The application framework layer provides an application programming interface (API) and programming framework for applications in the application layer. The application framework layer includes predefined functions. As shown in Figure 6, the application framework layer may include a window manager, content provider, view system, telephony manager, resource manager, notification manager, layout manager, and activity manager.

[0094] The window manager is used to manage window programs. The window manager can obtain the display size, determine whether there is a status bar, lock the screen, take screenshots, etc.

[0095] Content providers are used to store and retrieve data and make this data accessible to applications.

[0096] The view system includes visual controls, such as controls for displaying text and images. The view system is used to build applications. A display interface can consist of one or more views.

[0097] The phone manager is used to provide communication functions of the electronic device 100, such as management of call status (including answering, hanging up, etc.).

[0098] The resource manager provides various resources for applications, such as localized strings, icons, images, layout files, video files, and so on.

[0099] The Notification Manager allows applications to display notifications in the status bar. These messages can be displayed briefly and then disappear automatically without user interaction. For example, the Notification Manager is used to notify users of completed downloads and message reminders. The Notification Manager can also display notifications in the top status bar of the system as icons or scrolling text, such as notifications from background applications, or as dialog windows on the screen. Examples include text messages in the status bar, beeps, vibrations on electronic devices, and flashing indicator lights.

[0100] The layout manager is used to arrange the views composed of components in sequence according to the layout requirements to form a display interface.

[0101] The activity manager is used to manage the life cycle of each application and the navigation fallback function. It is responsible for creating the Android main thread and maintaining the life cycle of each application.

[0102] For example, in an embodiment of the present application, the activity manager is used to start a system-created activity, create an activityrecord (activity object) based on the requested parameters, and save the processname (process name) and uid (unique identifier) ​​parsed by the system to the activityrecord; then initialize the startup parameters; the activity manager is also used to search the activity stack manager for a corresponding startup stack based on the processname and uid. The activity stack manager in the activity manager then searches the list of existing processes for a match based on the processname and uid saved in the activityrecord. If a match exists, the system-created activity is launched into that process; otherwise, a new process is created based on the processname and uid, and the system-created activity is launched into the new process.

[0103] The Android runtime includes the core library and the virtual machine. The Android runtime is responsible for scheduling and management of the Android system.

[0104] The core library consists of two parts: one is the function that needs to be called by the Java language, and the other is the Android core library.

[0105] The application layer and application framework layer run in a virtual machine. The virtual machine executes Java files in the application layer and application framework layer as binary files. The virtual machine manages object lifecycles, stack management, thread management, security and exception management, and garbage collection.

[0106] The system library can include multiple functional modules, such as a surface manager, media libraries, a 3D graphics processing library (such as OpenGL ES), and a 2D graphics engine (such as SGL).

[0107] The surface manager is used to manage the display subsystem and provide fusion of 2D and 3D layers for multiple applications.

[0108] The media library supports playback and recording of a variety of common audio and video formats, as well as static image files. The media library can support a variety of audio and video encoding formats, such as MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.

[0109] The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing and layer processing.

[0110] A 2D graphics engine is a drawing engine for 2D drawings.

[0111] The kernel layer is the layer between hardware and software. The kernel layer includes at least display driver, camera driver, audio driver, and sensor driver.

[0112] The following describes the workflow of the software and hardware of the electronic device 100 in conjunction with the parallel vision scenario.

[0113] When the touch sensor 180K receives a touch operation, the corresponding hardware triggers the kernel layer. The kernel layer processes the touch operation into raw input events (including touch coordinates, timestamp of the touch operation and other information). The raw input events are stored in the kernel layer. The application framework layer obtains the raw input events from the kernel layer and identifies the controls corresponding to the input events. For example, if the touch operation is a single-finger touch and click operation, and the control corresponding to the click operation is a split-screen control, when the touch event is determined to be an application that opens the parallel vision mode based on the user's touch operation, the split-screen application calls the interface of the application framework layer to start the split-screen application, and then starts the display driver by calling the kernel layer, and realizes the presentation of the parallel vision mode through the display driver, that is, the split-screen display of the display screen.

[0114] It should be understood that the structures illustrated in the embodiments of the present application do not constitute a specific limitation on the electronic device 100. In other embodiments of the present application, the electronic device 100 may include more or fewer components than shown, or may combine or separate certain components, or arrange the components differently. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.

[0115] For ease of understanding, the following embodiments of the present application will take an electronic device having the structure shown in Figures 5 and 6 as an example, and combine the accompanying drawings and application scenarios to specifically explain the method for displaying multiple application windows provided in the embodiments of the present application.

[0116] Before introducing the method for displaying multiple windows of an application provided by this application, the application scenarios to which this method is applicable are first described.

[0117] For example, FIG7 shows an example interface diagram of a multi-window display of an application provided by an embodiment of the present application. As shown in FIG7(a), multiple applications are displayed on the display screen 702 of a tablet computer 701. When a user clicks on the Chat application 703, the Chat application 703 responds to the user's open operation and launches the application's activity. Simultaneously, the electronic device's system launches an empty activity. The tablet computer's display interface switches from FIG7(a) to FIG7(b). As shown in FIG7(b), a floating window 704 corresponding to the Chat application 703 is displayed on the display screen 702. The floating window 704 includes a display window 705 and a display window 706. Display window 705 corresponds to the activity launched by the Chat application and displays the Chat application's main interface. Display window 706 corresponds to the activity launched by the system and displays the Chat application's application icon, indicating that the Chat application supports parallel view mode. When the user clicks on the dialog box with Xiao Wang in the interface shown in Figure 7 (b), the tablet computer's display interface switches from Figure 7 (b) to Figure 7 (c). As shown in Figure 7 (c), the left display window 705 remains the main application interface, and the right display window 706 displays the new content clicked on the left, that is, the right display window switches from display window 706 to display window 708. It can also be seen from Figures 7 (b) and 7 (c) that after entering the floating window parallel field of view, both sides of the dragbar control 707 at the top of the display interface are highlighted, indicating that display window 705 and display window 706 are in the same process, or in other words, display window 705 and display window 708 are in the same process and are in focus at the same time, giving the user a unified experience and thus improving the user experience.

[0118] It should be understood that the systems of the electronic devices mentioned in the embodiments of the present application may include but are not limited to Harmony, Symbian, apple blackberries For example, a function related to creating an activity can be initiated through an interface created by the electronic device's system. For example, an activity can be created through an interface created by the electronic device's system. For another example, the process name and uid of the activity can be determined through an interface created by the electronic device's system. The interface created by the system can be a parallel horizon service interface.

[0119] It should be noted that the example in Figure 7 is illustrative of the navigation bar mode in the parallel view mode, but does not constitute a limitation on the use scenarios of the application multi-window display method provided by this application. The application multi-window display method provided by this application is also applicable to other modes of the parallel view mode, such as shopping mode and custom mode, etc., which will not be further illustrated here.

[0120] It should also be noted that in the above examples, the display mode of the electronic device is a split-screen display in the horizontal state. In other embodiments of the present application, it can also be a split-screen display in the vertical state. The embodiments of the present application do not specifically limit the display state of the electronic device.

[0121] 8 , how the display window 705 and the display window 706 are located in the same application process in the scenario shown in FIG. 7 will be described in detail.

[0122] Figure 8 shows a schematic flow chart of a multi-window display of an application provided in an embodiment of the present application. As shown in Figure 8, when a user clicks on the icon of an application, the electronic device responds to the opening operation of the application, and the activity management service of the electronic device sends an activity start request to the activitystarter (activity start class). After receiving the request to start the activity, the activitystarter creates a corresponding activityrecord according to the parameters of the request. It should be understood that one activityrecord corresponds to one activity, and one activityrecord stores all the information of the activity. The activity manager can also be called an activity management service.

[0123] It should be understood that ActivityStarter is a new class in the Android operating system, primarily responsible for launching activities. It primarily handles activity launch requests, including parsing intents, selecting the appropriate activity, and handling permissions. It also processes various activity launch parameters, such as flags, options, and launchBounds. It also manages activity launch states, such as "waiting to start," "starting," and "already started." It also monitors activity launch state changes, such as successful, failed, and canceled. In short, ActivityStarter makes the activity launch process more flexible, controllable, and scalable.

[0124] The electronic device's system parses the application configuration and determines the process name and uid of the system-supplied activity. For example, in the example shown in Figure 7, the process name and uid of the system-supplied activity can be the process name and uid of the chat application. The activity starter saves the determined process name and uid in the activity record. The activity starter then searches the activity stack manager for the corresponding launch stack. The activity stack manager uses the process name and uid to search multiple process lists for a match. If so, the activity is launched into that process; otherwise, a new process is launched. For example, if the list of running processes in the activity stack manager includes the chat application's process name and uid, the activity is launched directly into that process. If not, a new process is created based on the process name and uid, and the system-created activity is launched into that new process.

[0125] It should be understood that the Activity Stack Manager is used to manage task stacks, which are composed of one or more ActivityRecords. Therefore, the Activity Stack Manager includes multiple running task stacks. To reduce resource usage, when starting an activity process, the ActivityStarter can first check the Activity Stack Manager to see if there is a matching process running. If so, it will start the activity process in that process. If not, it will start a new process.

[0126] In some embodiments, FIG9 shows another schematic flow chart of a multi-window display of an application provided in an embodiment of the present application. As shown in FIG9 , the system side of the electronic device starts the activity supplemented by the system side through the parallel vision service interface. After determining the processname and uid, the processname and uid of the application can be saved in the extra field of the Intent. When the system side of the electronic device goes to the activitystarter to create an activityrecord after a series of calls, it reads the value saved in the extra field of the Intent, and then saves the read processname and uid to the activityrecord newly created by the activity management service. The activity management service uses the new processname and uid when selecting the startup process. The client (the client of the application) starts the activity by calling handleLaunchActivity, wakes up the activity by calling performLaunchActivity, and then skips the verification of the activity package name and uid to successfully display the display window corresponding to the activity.

[0127] For example, as shown in Figure 7, when the system determines that the processname and uid are the processname and uid of the Changchat application, the processname and uid of the Changchat application are saved in the extra field of the Intent. When the activitystarter creates the activityrecord, it reads the processname and uid of the Changchat application saved in the extra field of the Intent. Then, the activity management service starts the process based on the processname and uid of the Changchat application when selecting the process to start.

[0128] It should be understood that the system side of the electronic device passes an Intent to the activity starter, and after receiving the intent, the activity starter can start a new activity instance. The Intent describes the activity to be started and carries the necessary data.

[0129] It should be noted that when a system-supplemented activity runs in a third-party application, the third-party application's display interface needs to load the corresponding interface of the activity. However, the functional implementation code of the various components in the activity is on the system side. Therefore, in the embodiment of the present application, the system-supplemented activity must be placed in the system jar package that is loaded when the application starts. Otherwise, the activity cannot be found, and a classNotFound error is prompted, which ultimately causes the corresponding interface of the activity to not display properly. The system jar that the application loads when it starts can be framework.jar, hwEmui.jar, etc.

[0130] For example, in the example shown in Figure 7, when a system-added activity runs in the Chat app, the Chat app needs to load the corresponding interface of the activity (i.e., the interface shown in display window 708). However, the functional implementation code of each component in display window 708 is on the system side. The Chat app loads the system JAR package when it starts. Therefore, the system-added activity can be placed in the system JAR package loaded by the Chat app when it starts, and the functional implementation code on the system side can be successfully called and run on the Chat app side.

[0131] It should also be noted that, based on the implementation flowcharts shown in Figures 8 and 9, in order to allow the system-supplemented activity to run in the application process, the processname and uid of the system-supplemented activity are changed to the application's processname and uid. However, the package name of the system-supplemented activity remains the system package name, which may cause an exception when the application performs verification. To solve this problem, a special verification method can be added to the client of the application, that is, the system-supplemented activity can meet the security verification requirements, or the verification of the package name and uid of the system-supplemented activity can be skipped to meet the security verification requirements.

[0132] Figure 10 shows another schematic flow chart of the multi-window display of an application provided by an embodiment of the present application. As shown in Figure 10, when the user clicks on the application, the activity management service (ATMS) starts the activity as a user, and ATMS sends the getActivitystartController instruction to the activity startup class. Activitystarter executes the request according to the instruction and creates an activity object. Then, activitystarter executes the internal startup activity and initializes the startup parameters. Activitystarter saves the processname and uid parsed by the system side to the created activity object. Activitystarter sends the startAcitivityLocked instruction to Task and sends the ResumeFocusedTasksTopActivities instruction to RootWindowContainer. RootWindowContainer sends the resumeTopActivityInner Locked instruction to Task. After Task sends the startSpecificActivity instruction to the activity stack manager, the activity stack manager obtains the process controller and locks the started service according to the processname and uid of the application.

[0133] The following describes the method for displaying multiple application windows provided by an embodiment of the present application in conjunction with the scene diagram of Figure 7. Figure 11 shows a schematic flow chart of a method 1100 for displaying multiple application windows provided by an embodiment of the present application. As shown in Figure 11, the method 1100 shown in Figure 11 may include steps S1110 to S1130. The following describes each step of the method 1100 in detail in conjunction with Figure 11.

[0134] It should be understood that in the embodiments of the present application, the electronic device is used as an example to illustrate the method 1100. As an example and not a limitation, the execution body of the method 1100 may also be a chip used in the electronic device.

[0135] S1110. Receive a first operation from the user, where the first operation is to open an application. The application supports a parallel view mode. The parallel view mode includes a first window and a second window. The first window corresponds to an activity started by the application, and the second window corresponds to an activity created by the system of the electronic device.

[0136] It should be noted that the application involved in the embodiments of the present application refers to application software; the application can be a system application or a third-party application running on the terminal; for example, the first application can be an application software that comes with the system, or it can be an application software (social application, shopping application, etc.) downloaded and installed by the user, and this application does not limit this.

[0137] It should also be noted that the applications referred to in this application can be World Wide Web (Web) applications or native applications. Web applications refer to web applications that run in a browser. Native applications refer to applications that can run directly on the current operating system. Web applications include, but are not limited to, ticket purchasing applications, message boards, and forums that run in a browser; native applications include, but are not limited to, music applications, shopping applications, graphic editing applications, and sports applications.

[0138] In step S1110 , the first operation of the user may be an operation of opening an application, and the application supports the parallel view mode.

[0139] For example, referring to Figure 7 , the first user action received by the electronic device is to open the Chat app. The Chat app supports parallel view mode, so when the user first launches the Chat app, the app includes a first window (display window 705) and a second window (display window 706). Display window 705 corresponds to the activity launched by the Chat app, while display window 706 corresponds to the activity created by the system. In this embodiment of the present application, the activity corresponding to display window 706 is intended to be launched into the process launched by the Chat app.

[0140] S1120: In response to the first operation, the electronic device creates an activity object and starts an activity created by the system, where the activity object includes the processname and uid of the application.

[0141] In the embodiment of the present application, since the activity corresponding to the second window is created by the system, when the activity created by the system is started, the activityrecord corresponding to the activity is created. In order to enable the activity created by the system to run in the corresponding application, the activity object includes the processname and uid of the application.

[0142] For example, as shown in FIG7( b ), in response to the first operation, the electronic device creates an activity record, which is used to start the activity created by the system (the activity corresponding to display window 706 ). In order for the activity corresponding to display window 706 to be started in the process of the chat application, the created activity record should include the process name and uid of the chat application.

[0143] S1130 : Start the activity created by the system in the process of the application according to the processname and uid of the application in the activity object.

[0144] In step S1030 , since the activity object includes the processname and uid of the application, during the activity startup process, the activity stack management server can start the activity created by the system in the application process based on the processname and uid.

[0145] For example, as shown in FIG7( b ), the activityrecord used to start the activity created by the system includes the processname and uid of the chat application. Therefore, the activity corresponding to the display window 706 can be started in the chat application.

[0146] The multi-window display method of the application provided in the present application, based on the user's first operation, after turning on the parallel view mode of the application, creates a corresponding activity object for the system's newly added activity, and the activity object includes the processname and uid of the application. Therefore, based on the processname and uid of the application in the activity object, the system's newly added activity is started in the application's process, ensuring that the activities corresponding to the first window and the second window are started in the same process, thereby ensuring that the two display windows can be managed simultaneously, thereby improving the user experience.

[0147] In some possible implementations, before the electronic device creates the activity object, the method further includes: the electronic device system determining the application's process name and uid based on the first operation. In this implementation, the electronic device system resolves the application's process name and uid based on the user's operation of opening the application, so that the activity created by the system is launched into the application's process based on the process name and uid.

[0148] In some possible implementations, the application's process name and unique identifier are stored in the first field of the intent. In this implementation, the intent describes the activity to be launched and carries some necessary data for the launched activity. Therefore, storing the application's process name and unique identifier in the first field of the intent allows the component to be launched into the corresponding process. Exemplarily, this first field can be an extra field.

[0149] In some possible implementations, the electronic device creates an activity object, including: the electronic device creates an empty activity object, reads the processname and uid in the first field of the intent, and saves the processname and uid in the empty activity object to obtain the activity object.

[0150] In this implementation, in order to enable the system-created activity to be launched into the corresponding application, the processname and uid of the application need to be saved in an empty activity object so that when the activity object is run in the task stack, the system-created activity will be launched into the corresponding application.

[0151] In some possible implementations, the system-created activity is started in the application's process based on the processname and uid of the application in the activity object, including: when the processname and uid of the application in the activity object match the processname and uid of the currently running process, the system-created activity is started in the currently running process; when the processname and uid of the application in the activity object do not match the processname and uid of all currently running processes, a new process is created based on the processname and uid of the application in the activity object, and the system-created activity is started in the new process.

[0152] In this implementation, the process name and uid of the application in the activity object can be used to determine whether the activity created by the system runs in an existing process or a newly created process. It should be understood that both the existing process and the newly created process are processes in the application.

[0153] In some possible implementations, system-created activities are stored in a system JAR package that's loaded when the application starts. In this implementation, when the system-created activity runs in the application process and the application loads the window it wants to display, the components in that window or other functional logic of the activity are still implemented on the system side. Therefore, when the system-created activity is stored in a system JAR package that's loaded when the application starts, the application can load this JAR package when it starts, ensuring that the window corresponding to the system-created activity can be displayed normally.

[0154] Exemplarily, the jar package of the system can be any one of framework.jar, hwEmui.jar, and services.jar. Of course, the jar package of the system loaded when the application starts can also be other jar packages, which is not specifically limited in the embodiment of the present application.

[0155] For example, as shown in Figure (c) in Figure 7, when the display window 708 runs in the Changchat application process, the Changchat application needs to load the components corresponding to the display window 708, but the components on the window or other functional logic implementations on the display window 708 are still on the system side. Therefore, when the activity created by the system is saved in the system jar package that will be loaded when the Changchat application is started, the Changchat application can load these jar packages when it is started, thereby ensuring that the display window 708 can be displayed normally.

[0156] In some possible implementations, in response to the first operation, the display states of the dragged component of the first window and the dragged component of the second window are consistent. In this implementation, in response to the first operation, the activity created by the system is started in the application process, and the first window and the second window correspond to the same process, so that the display states of the dragged component of the first window and the dragged component of the second window can be consistent.

[0157] For example, the drag component of the first window and the drag component of the second window are both drgbar, and the consistent display states can be understood as both being highlighted or both being grayed out.

[0158] For example, compared with Figure 1, Figure 2 and Figure 3 (b), the display status of the drag component 707 shown in Figure 7 (b) and Figure 7 (c) is consistent (i.e., both are highlighted), thereby improving the user experience.

[0159] In some possible implementations, the second window is displayed on the display screen of the electronic device in full screen or floating window form.

[0160] For example, as shown in FIG. 7( b ) or FIG. 7( c ), the display window 706 and the display window 708 may be displayed on the display screen 702 of the tablet computer 701 in a full screen or floating window manner.

[0161] In some possible implementations, when an application starts, the package name and unique identifier of a system-created component are skipped for verification. In this implementation, since only the process name and unique identifier of a system-created component are modified, the package name of the component remains the system package name. Therefore, skipping the verification of the package name and unique identifier of the system-created component ensures that the window corresponding to the system-created component is successfully displayed when the application starts.

[0162] In some possible implementations, the operating system of the electronic device is an Android operating system.

[0163] The above describes in detail an example of a method for displaying multiple windows of an application provided by the present application. It is understandable that, in order to implement the above functions, the electronic device includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in a hardware or computer software driven hardware manner depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0164] This application can divide the drag method of cross-system target objects into functional units based on the above method examples. For example, each function can be divided into various functional units, or two or more functions can be integrated into one unit. The above integrated units can be implemented in the form of hardware or in the form of software functional units. It should be noted that the division of units in this application is schematic and is only a logical functional division. There may be other division methods in actual implementation.

[0165] Figure 12 shows a schematic diagram of the structure of an electronic device provided by the present application. The dotted line in Figure 12 indicates that the unit or module is optional. The electronic device 1200 can be used to implement the method described in the above method embodiment. The electronic device 1200 can be a terminal device or a server, or a module (such as a processor, a chip, or a chip system, etc.) applied to a terminal device or a server, or a logical node, a logical module or software that can implement all or part of the terminal functions, or a logical node, a logical module or software that can implement all or part of the server functions.

[0166] The electronic device 1200 includes one or more processors 1201, which can support the electronic device 1200 to implement the method in the method embodiment corresponding to Figure 11. The processor 1201 can be a general-purpose processor or a special-purpose processor. For example, the processor 1201 can be a central processing unit (CPU). The CPU can be used to control the electronic device 1200, execute software programs, and process data of the software programs. The electronic device 1200 can also include a communication unit 1205 to implement signal input (reception) and output (transmission).

[0167] The electronic device 1200 may be a chip (system) including a memory and a processor, wherein the processor is configured to execute a computer program stored in the memory to implement the methods shown in the above embodiments.

[0168] The communication unit 1205 may be an input and / or output circuit of the chip (system), or the communication unit 1205 may be a communication interface of the chip (system), and the chip (system) may be a component of the electronic device 1200 .

[0169] For another example, the communication unit 1205 may be a transceiver of the electronic device 1200 , or the communication unit 1205 may be a transceiver circuit of the electronic device 1200 .

[0170] The electronic device 1200 may include one or more memories 1202, on which a program 1204 is stored. The program 1204 can be executed by the processor 1201 to generate instructions 1203, so that the processor 1201 performs the method described in the above method embodiment according to the instructions 1203. Optionally, data may also be stored in the memory 1202. Optionally, the processor 1201 may also read the data stored in the memory 1202. The data may be stored at the same storage address as the program 1204, or the data may be stored at a different storage address than the program 1204.

[0171] The processor 1201 and the memory 1202 may be provided separately or integrated together, for example, integrated on a system on chip (SOC) of an electronic device.

[0172] The specific manner in which the processor 1201 executes the method for displaying multiple application windows can be found in the relevant description of the method embodiment.

[0173] It should be understood that each step of the above method embodiment can be completed by hardware logic circuits or software instructions in the processor 1201. The processor 1201 can be a CPU, a digital signal processor (DSP), a field programmable gate array (FPGA), or other programmable logic devices, such as discrete gates, transistor logic devices, or discrete hardware components.

[0174] The present application also provides a computer program product, which, when executed by the processor 1201, implements the method of any method embodiment in the present application.

[0175] The computer program product may be stored in the memory 1202 , for example, a program 1204 . The program 1204 is converted into an executable target file that can be executed by the processor 1201 after undergoing processes such as preprocessing, compilation, assembly, and linking.

[0176] The present application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a computer, implements any method embodiment of the present application. The computer program may be a high-level language program or an executable target program.

[0177] The computer-readable storage medium is, for example, memory 1202. Memory 1202 may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory may be random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SynchLink DRAM, SLDRAM), and direct RAM bus random access memory (DRRAM).

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

[0179] In several embodiments provided in this application, the disclosed systems, devices, and methods can be implemented in other ways. For example, some features of the method embodiments described above can be ignored or not executed. The device embodiments described above are merely schematic, and the splitting of units is only a logical function splitting. There may be other splitting methods in actual implementation, and multiple units or components may be combined or integrated into another system. In addition, the coupling between the units or the coupling between the components may be direct coupling or indirect coupling, and the above coupling includes electrical, mechanical or other forms of connection.

[0180] The above embodiments are intended only to illustrate the technical solutions of the present application and are not intended to limit the same. Although the present application has been described in detail with reference to the above embodiments, those skilled in the art should understand that they may still modify the technical solutions described in the above embodiments or replace some of the technical features therein with equivalents, and that such modifications or replacements do not deviate from the spirit and scope of the technical solutions of the embodiments of the present application and are therefore intended to be included within the scope of protection of the present application.

[0181] Finally, the above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the present application shall be covered by the scope of protection of the present application. Therefore, the scope of protection of the present application shall be based on the scope of protection of the claims.

Claims

1. A method for displaying multiple windows of an application, characterized in that: The method is applied to an electronic device, and the method comprises: Receive a first operation of a user, where the first operation is used to open an application, where the application supports a parallel horizon mode, where the parallel horizon mode includes a first window and a second window, where the first window corresponds to a component started by the application, and the second window corresponds to a component created by a system of the electronic device; In response to the first operation, the electronic device creates an activity object and starts the component created by the system, wherein the activity object includes the process name and unique identifier of the application; The component created by the system is started in the process of the application according to the process name and the unique identifier of the application in the activity object.

2. The method according to claim 1, characterized in that Before the electronic device creates an active object, the method further includes: The system of the electronic device determines a process name and a unique identifier of the application based on the first operation.

3. The method according to claim 2, characterized in that The process name and unique identifier of the application are stored in the first field of the intent.

4. The method according to claim 3, characterized in that The electronic device creates an active object, including: The electronic device creates an empty active object, reads the process name and the unique identifier in the first field, and stores the process name and the unique identifier in the empty active object to obtain the active object.

5. The method according to claim 3 or 4, characterized in that: The first field includes an extra field.

6. The method according to any one of claims 1 to 5, characterized in that The starting the component created by the system in the process of the application according to the process name and the unique identifier of the application in the active object comprises: When the process name and unique identifier of the application in the active object match the process name and unique identifier of the currently running process, starting the component created by the system in the currently running process; When the process name and unique identifier of the application in the active object do not match the process name and unique identifier of the currently running process, a new process is created according to the process name and unique identifier of the application in the active object, and the component created by the system is started in the new process.

7. The method according to any one of claims 1 to 6, characterized in that The activity created by the system is saved in the system jar package that is loaded when the application is started.

8. The method according to any one of claims 1 to 7, characterized in that In response to the first operation, the display states of the drag component of the first window and the drag component of the second window are consistent.

9. The method according to any one of claims 1 to 8, characterized in that The drgbar of the first window and the drgbar of the second window are both highlighted, the drag component of the first window includes the drgbar of the first window, and the drag component of the second window includes the drgbar of the second window.

10. The method according to any one of claims 1 to 9, characterized in that The second window is displayed on the display screen of the electronic device in a full-screen or floating window manner.

11. The method according to any one of claims 1 to 10, characterized in that When the application is started, the verification of the package name and unique identifier of the component created by the system is skipped.

12. The method according to any one of claims 1 to 11, characterized in that The operating system of the electronic device is an Android operating system.

13. An electronic device, characterized in that: include: A memory and a processor, wherein the memory is used to store a computer program; and the processor is used to execute the method according to any one of claims 1 to 12 when calling the computer program.

14. The electronic device according to claim 13, characterized in that: The electronic device is any one of a mobile phone, a tablet, a personal computer or a car computer.

15. The electronic device according to claim 13 or 14, characterized in that: The operating system of the electronic device is an Android operating system.

16. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 12 is implemented.

17. A computer program product, characterized in that When the computer program product is executed on an electronic device, the electronic device is enabled to execute the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Application program multi-window display method and electronic equipment

    CN119690551A

  • Lightweight mobile application virtualization system

    CN111796909A

  • Display method and electronic equipment

    CN114911377A

  • Application launch booster

    US20180032374A1