User device and application execution method using same
By managing application relationships and optimizing background execution, the electronic device enhances performance and efficiency, addressing issues of memory usage and battery life.
Patent Information
- Application Number
- PCT/KR2024/015995
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-26
- Filing Date
- 2024-10-21
- Publication Date
- 2025-05-30
AI Technical Summary
Electronic devices face performance degradation due to the unnecessary execution of background applications that are not relevant to the foreground application, leading to increased memory usage and battery consumption.
An electronic device that verifies the relationship between multiple applications and manages their operations, automatically executing applications with high relevance to the foreground application while terminating those with low relevance, thereby optimizing performance.
This approach improves the performance and efficiency of electronic devices by optimizing memory usage and battery life by ensuring only relevant applications are executed in the background.
Smart Images

Figure KR2024015995_30052025_PF_FP_ABST
Abstract
Description
Electronic device and method for executing an application using the same
[0001] Embodiments of the present disclosure relate to an electronic device and a method for executing an application using the same.
[0002] With the recent advancement of digital technology, various types of electronic devices (user devices) capable of communication and personal information processing, such as mobile terminals, PDAs (Personal Digital Assistants), electronic organizers, smartphones, tablets, and PCs (Personal Computers), are being released. Electronic devices are not limited to their traditional domains, but are reaching a stage of mobile convergence where they encompass the domains of other electronic devices. For example, electronic devices can perform various functions such as calling functions such as voice calls and video calls, sending and receiving messages such as SMS (Short Message Service) / MMS (Multimedia Message Service) and e-mail, navigation functions, photography functions, broadcast playback functions, media (video and music) playback functions, Internet functions, messenger functions, and social networking service (SNS) functions.
[0003] The above information may be provided as background art to aid in understanding the present disclosure. No claim or determination is made as to whether any of the above-described matters constitute prior art related to the present disclosure.
[0004] An electronic device may store or have installed multiple programs (e.g., application programs) in its memory. The electronic device may execute the multiple programs individually, or execute a second program in conjunction with the execution of the first program. The electronic device may execute a specific program in the foreground or in the background. While multiple programs are executing simultaneously, the electronic device may terminate (e.g., use a kill operation) a program running in the background to improve the performance of the electronic device. In response to the execution of a specific program, the electronic device may maintain or terminate the operation of other programs running in the background, and the performance of the electronic device may be at least partially degraded as the other programs are repeatedly or non-repeatedly re-executed.
[0005] According to one embodiment, an electronic device can identify a plurality of programs, the relationship between each program's execution, and manage the operation of each program. For example, when a first application is being executed, the processor of the electronic device can identify a second application associated with the first application, and, while maintaining the execution of the first application, determine whether the second application is being executed. For example, while the first application is being executed, the electronic device can manage a second application that is necessarily running in the background and a third application that is unnecessarily running in the background.
[0006] According to one embodiment, an electronic device can control the operation of another application (e.g., an application that is unrelated to the execution of the first application) that is unnecessarily running in the background while a first application is running in the foreground. According to one embodiment, the purpose is to improve the performance of the electronic device while a specific application is running.
[0007] The technical tasks to be achieved in this document are not limited to the technical tasks mentioned above, and other technical tasks not mentioned will be clearly understood by those with ordinary skill in the technical field to which this document pertains from the description below.
[0008] According to one embodiment, an electronic device includes a memory storing instructions and a processor, and when the instructions are executed by the processor, the electronic device is configured to: in response to execution of a first application among a plurality of applications stored in the memory, confirm execution of a second application corresponding to a component of the first application; store chain information indicating a relationship between the first application and the second application in the memory; and, in a state where the chain information between the plurality of applications is stored in the memory, execute the second application corresponding to the component of the first application based on the chain information stored in the memory in response to execution of the first application.
[0009] According to one embodiment, a method for executing an application of an electronic device may include an operation of confirming execution of a second application corresponding to a component of a first application in response to execution of a first application among a plurality of applications stored in a memory, an operation of storing chain information indicating a relationship between the first application and the second application in the memory, and an operation of executing the second application corresponding to a component of the first application based on the chain information stored in the memory in a state in which the chain information between the plurality of applications is stored in the memory in response to execution of the first application.
[0010] According to one embodiment, a non-transitory computer-readable storage medium (or, computer program product) storing one or more programs for executing a method for executing an application of an electronic device may be described. According to one embodiment, the one or more programs may include instructions that, when executed by a processor of the electronic device, perform an operation of confirming execution of a second application corresponding to a component of a first application among a plurality of applications stored in a memory in response to execution of the first application, an operation of storing chain information indicating a relationship between the first application and the second application in the memory, and an operation of executing the second application corresponding to a component of the first application based on the chain information stored in the memory in a state in which the chain information between the plurality of applications is stored in the memory in response to execution of the first application.
[0011] According to one embodiment, an electronic device can identify a relationship (e.g., chain information) between a plurality of applications, and control the operation of each application based on the identified relationship. For example, in response to the execution of a first application, the electronic device can automatically execute a second application that has a high relationship with the first application (e.g., for which chain information has been formed). In response to the execution of the first application, the electronic device can identify a third application that has a low relationship with the first application (e.g., for which chain information has not been formed) and stop the execution of the identified third application (e.g., by performing a kill operation). By controlling the operation of at least one application based on the relationship between applications, the performance of the electronic device can be improved. The memory utilization of the electronic device can be improved. The battery efficiency of the electronic device can be improved.
[0012] The effects that can be obtained from the present disclosure are not limited to the effects mentioned above, and other effects that are not mentioned can be clearly understood by a person having ordinary skill in the art to which the present disclosure belongs from the description below.
[0013] In connection with the description of the drawings, the same or similar reference numerals may be used for the same or similar components.
[0014] FIG. 1 is a block diagram of an electronic device within a network environment according to one embodiment of the present disclosure.
[0015] FIG. 2 is a block diagram illustrating a program according to one embodiment of the present disclosure.
[0016] FIG. 3 is a diagram illustrating an embodiment in which a second application associated with a first application is executed when the first application is executed according to one embodiment of the present disclosure.
[0017] FIG. 4 is a block diagram of an electronic device according to one embodiment of the present disclosure.
[0018] FIG. 5 is a flowchart illustrating a method for generating chain information between multiple applications according to one embodiment of the present disclosure.
[0019] FIG. 6 is a flowchart illustrating a method for executing an application based on chain information according to one embodiment of the present disclosure.
[0020] FIG. 7 is a flowchart illustrating an application control method based on chain information according to one embodiment of the present disclosure.
[0021] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components. Furthermore, in the drawings and related descriptions, descriptions of well-known functions and configurations may be omitted for clarity and conciseness.
[0022] FIG. 1 is a block diagram of an electronic device (101) within a network environment (100) according to various embodiments. Referring to FIG. 1, in the network environment (100), the electronic device (101) may communicate with the electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of the electronic device (104) or the server (108) via a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).
[0023] The processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or calculations. According to one embodiment, as at least a part of the data processing or calculations, the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or a secondary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor)) that can operate independently or together therewith. For example, if the electronic device (101) includes a main processor (121) and a secondary processor (123), the secondary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a specified function. The secondary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
[0024] The auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, in the electronic device (101) itself where artificial intelligence is performed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.
[0025] The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or non-volatile memory (134).
[0026] The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
[0027] The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0028] The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
[0029] The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. In one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
[0030] The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).
[0031] The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0032] The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0033] The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0034] A haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. In one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0035] The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
[0036] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented, for example, as at least a part of a power management integrated circuit (PMIC).
[0037] A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0038] The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, the corresponding communication module can communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).
[0039] The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.
[0040] The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas by, for example, the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device through the selected at least one antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).
[0041] In one embodiment, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
[0042] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
[0043] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and / or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0044] FIG. 2 is a block diagram (200) illustrating a program according to one embodiment of the present disclosure.
[0045] The program (140) of FIG. 2 may be at least partially similar to the program (140) of FIG. 1, or may further include other embodiments of the program (140). The program (140) may include a program stored in a memory (e.g., memory (130) of FIG. 1) of an electronic device (e.g., electronic device (101) of FIG. 1).
[0046] According to one embodiment, the program (140) may include an operating system (e.g., operating system (142) of FIG. 1), middleware (e.g., middleware (144) of FIG. 1), or an application executable in the operating system (142) (e.g., application (146) of FIG. 1) for controlling one or more resources of the electronic device (101). The operating system (142) may be, for example, Android. TM , iOS TM , Windows TM , Symbian TM , Tizen TM , or, Bada TM At least some of the programs (140) may be preloaded onto the electronic device (101), for example, at the time of manufacture, or may be downloaded or updated from an external electronic device (e.g., the electronic device (102 or 104) of FIG. 1, or the server (108)) when used by the user.
[0047] The operating system (142) may control the management (e.g., allocation or recovery) of one or more system resources (e.g., functions, memory, or power) of the electronic device (101). The operating system (142) may additionally or alternatively include one or more driver programs for driving other hardware devices of the electronic device (101), for example, an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197) illustrated in FIG. 1.
[0048] Middleware (144) can provide various functions to the application (146) so that functions or information provided from one or more resources of the electronic device (101) can be used by the application (146). Middleware (144) can include, for example, an application manager (201), a window manager (203), a multimedia manager (205), a resource manager (207), a power manager (209), a database manager (211), a package manager (213), a connectivity manager (215), a notification manager (217), a location manager (219), a graphics manager (221), a security manager (223), a call manager (225), or a voice recognition manager (227).
[0049] The application manager (201) can manage, for example, the life cycle of the application (146). The window manager (203) can manage, for example, one or more GUI resources used on the screen. The multimedia manager (205) can, for example, identify one or more formats required for playing media files, and perform encoding or decoding of a corresponding media file among the media files using a codec suitable for the corresponding format selected among the formats. The resource manager (207) can manage, for example, the source code of the application (146) or the storage space of the memory (130). The power manager (209) can manage, for example, the capacity, temperature, or power of the battery (189), and determine or provide related information required for the operation of the electronic device (101) using the corresponding information. According to one embodiment, the power manager (209) can be linked with the basic input / output system (BIOS) (not shown) of the electronic device (101).
[0050] The database manager (211) can, for example, create, search, or modify a database to be used by the application (146). The package manager (213) can, for example, manage the installation or update of an application distributed in the form of a package file. The connectivity manager (215) can, for example, manage a wireless connection or direct connection between the electronic device (101) and an external electronic device (102, 104, server (108)). The notification manager (217) can, for example, provide a function for notifying a user of the occurrence of a specified event (e.g., an incoming call, a message, or an alarm). The location manager (219) can, for example, manage location information of the electronic device (101). The graphics manager (221) can, for example, manage one or more graphic effects to be provided to the user or a user interface related thereto.
[0051] The security manager (223) may provide, for example, system security or user authentication. The telephony manager (225) may manage, for example, a voice call function or a video call function provided by the electronic device (101). The voice recognition manager (227) may, for example, transmit the user's voice data to the server (108) and receive, from the server (108), a command corresponding to a function to be performed in the electronic device (101) based at least in part on the voice data, or text data converted based at least in part on the voice data. In one embodiment, the middleware (144) may dynamically delete some of the existing components or add new components. In one embodiment, at least a portion of the middleware (144) may be included as a part of the operating system (142) or implemented as separate software different from the operating system (142).
[0052] The application (146) may include an application related to at least one of, for example, a home (251), a dialer (253), an SMS / MMS (255), an instant message (IM) (257), a browser (259), a camera (261), an alarm (263), a contact (265) (e.g., contact information), a voice recognition (267), an email (269), a calendar (271), a media player (273), an album (275), a watch (277), health (279) (e.g., measuring biometric information such as the amount of exercise or blood sugar), or environmental information (281) (e.g., measuring barometric pressure, humidity, or temperature information).
[0053] According to one embodiment, the application (146) may further include an information exchange application (not shown) capable of supporting information exchange between the electronic device (101) and external electronic devices (102, 104, 108). The information exchange application may include, for example, a notification relay application configured to transmit specified information (e.g., a call, a message, or an alarm) to the external electronic device (102, 104, 108), or a device management application configured to manage the external electronic device (102, 104, 108).
[0054] The notification relay application may transmit notification information corresponding to a specified event (e.g., receipt of mail) generated from another application (e.g., email application (269)) of the electronic device (101) to an external electronic device, for example. Additionally or alternatively, the notification relay application may receive notification information from an external electronic device (102, 104, 108) and provide the notification information to a user of the electronic device (101). The device management application may control, for example, the power (e.g., turn-on or turn-off) or function (e.g., brightness, resolution, or focus) of an external electronic device (102, 104, 108) that communicates with the electronic device (101) or some component thereof (e.g., a display module or a camera module of the external electronic device). The device management application may additionally or alternatively support installation, deletion, or update of an application running on the external electronic device (102, 104, 108).
[0055] According to one embodiment, the program (140) may include a program that configures a home screen of the electronic device (101). For example, the package manager (213) included in the middleware (144) may manage a package file (e.g., a home screen package file) generated based on data and attribute information related to the configuration of the home screen. According to one embodiment, the electronic device (101) may generate a home screen based on the package file related to the configuration of the home screen, and may display the generated home screen through a display (e.g., a display module (160) of FIG. 1). According to one embodiment, when the initialized electronic device (101) performs an initial setting function (e.g., a setting function for the operation of the electronic device (101) when the electronic device (101) is booted), the electronic device (101) may implement a home screen based on the package file.
[0056] According to one embodiment, the program (140) may include a component recognition program for determining which component the application (146) is based on when the application (146) is executed. For example, the component may be classification information indicating a related operation of the application (146) when the application (146) is executed, and may include components corresponding to multiple types, such as “activity,” “service,” “provider,” and “broadcast.” For example, Android TMIn the OS, component types may include 'activity', 'service', 'broadcast receiver', and 'content provider'. In one embodiment, components are not limited to "activity", "service", "provider", and "broadcast". In one embodiment, components may be preset by the developer, and one component may be determined from among a plurality of components in response to the execution of the application (146).
[0057] According to one embodiment, when a specific application is executed, the electronic device (101) can determine based on which component the specific application was executed. For example, when the execution screen of the specific application is displayed through a display (e.g., the display module (160) of FIG. 1) when the specific application is executed, the component of the specific application can be determined as a specific type of “activity.” The electronic device (101) can confirm that the specific application has been executed based on the component “activity.”
[0058] FIG. 3 is a diagram illustrating an embodiment in which a second application associated with a first application is executed when the first application is executed according to one embodiment of the present disclosure.
[0059] The electronic device of FIG. 3 may be at least partially similar to the electronic device (101) of FIG. 1, or may further include other embodiments of the electronic device (101). The operations illustrated in FIG. 3 may be performed in the electronic device (101).
[0060] Referring to FIG. 3, when a first application (301) (e.g., the first APP, application (146) of FIGS. 1 and 2) is executed, the electronic device (101) can identify a component (310) related to the execution of the first application (301). For example, the component (310) may be classification information indicating a related operation of the first application (301) and may include a plurality of preset components.
[0061] The component (310) of FIG. 3 may include components of various types, such as “activity (311)”, “service (312)”, “provider (313)”, and / or “broadcast (314)”. For example, when the first application (301) is executed, if the execution screen of the first application (301) is displayed through a display (e.g., the display module (160) of FIG. 1), the component of the first application (301) may be determined as the first type of “activity (311)”. When the first application (301) is executed, if the first application (301) operates in a background state or a foreground state, the component of the first application (301) may be determined as the second type of “service (312)”. For example, when a music player application is executed in the background, a component of the music player application may be determined as a “service (312)” of the second type. When the first application (301) is executed, if data is loaded based on the first application (301), a component of the first application (301) may be determined as a “provider (313)” of the third type. For example, when account information is retrieved in response to a login operation performed according to the execution of a social application, a component of the social application may be determined as a “provider (313)” of the third type. When the first application (301) is executed, if a specific operation set based on the first application (301) is performed, a component of the first application (301) may be determined as a “broadcast (314)” of the fourth type.For example, component types may include application components used in the Android OS, such as “activity,” “service,” “broadcast receiver,” and “content provider.” An “activity” is an element that interacts with a user, and may include displaying an application’s execution screen that includes a user interface. A “service” may include running an application in the background. A “broadcast receiver” may include an application receiving events from the system or other apps. A “content provider” may include managing data and making the managed data accessible to other apps. The description of the above-described component types may be understood as examples and may not be limited to the above-described description.
[0062] According to one embodiment, when executing a specific application, the electronic device (101) may perform a specific operation (e.g., executing another application) based on at least one component among a plurality of components. For example, when executing a specific application, at least one or more components may be determined substantially simultaneously, and a specific operation set in response to each component may be performed.
[0063] Referring to FIG. 3, when executing a first application (301), the electronic device (101) can execute a second application (e.g., a second APP (302)) corresponding to a first type of component (e.g., “activity (311)”) of the first application (301). For example, the electronic device (101) can select a second application (302) having a relatively high execution probability among a plurality of applications (e.g., the second APP (302), the third APP (303)). For example, in a situation where the first application (301) is executed with a first type of component (e.g., “activity (311)”), a first list (321) can be implemented based on the execution history (e.g., execution history information) of applications that are executed in conjunction. In response to the first application (301) being executed as a first type component (e.g., “activity (311)”), the electronic device (101) may select a second application (302) having a relatively high execution probability (e.g., the highest execution probability) among the applications included in the first list (321). According to one embodiment, the electronic device (101) may generate first chain information (331) indicating a relationship between the first type component (e.g., “activity (311)”) of the first application (301) and the second application (302). The electronic device (101) may store the generated first chain information (331) in a memory (e.g., the memory (130) of FIG. 1).
[0064] Referring to FIG. 3, when executing a first application (301), the electronic device (101) may execute a fourth application (e.g., a fourth APP (304)) corresponding to a third type of component (e.g., “provider (313)”) of the first application (301). For example, the electronic device (101) may select, among a plurality of applications (e.g., the fourth APP (304), the second APP (302)), the fourth application (304) having a relatively high execution probability (e.g., the highest execution probability). For example, in a situation where the first application (301) is executed with a third type of component (e.g., “provider (313)”), the second list (322) may be implemented based on the execution history (e.g., execution history information) of the applications that are executed in conjunction. In response to the first application (301) being executed as a third type component (e.g., “provider (313)”), the electronic device (101) may select a fourth application (304) having a relatively high execution probability among the applications included in the second list (322). According to one embodiment, the electronic device (101) may generate second chain information (332) indicating a relationship between the third type component (e.g., “provider (313)”) of the first application (301) and the fourth application (304). The electronic device (101) may store the generated second chain information (332) in the memory (130).
[0065] Referring to FIG. 3, when the electronic device (101) executes the first application (301), if the fourth component (e.g., “broadcast (314)”) of the first application (301) is determined, the electronic device (101) may execute a third application (e.g., a third APP (303)) linked to the fourth component (e.g., “broadcast (314)”).
[0066] According to one embodiment, chain information (331, 332) may indicate a relationship between multiple applications. For example, chain information (331, 332) may include applications that are relatively important in a situation where a specific application is executed. Referring to the first chain information (331), in response to the first application (301) being executed as a first type of component (e.g., “activity (311)”), the second application (302) may be executed. For example, in a situation where the first application (301) is executed as a first type of component (e.g., “activity (311)”), the second application (302) may be determined as an application with relatively high importance (e.g., an application with a relatively high execution probability or a high virtual execution probability) in relation to the first type of component. Referring to the second chain information (332), in response to the first application (301) being executed as a third type component (e.g., “provider (313)”), the fourth application (304) may be executed. For example, in a situation where the first application (301) is executed as a third type component (e.g., “provider (313)”), the fourth application (304) may be determined as an application with relatively high importance in relation to the third type component. According to one embodiment, the electronic device (101) may store the chain information (331, 332) in the memory (130), and may add other chain information or delete existing stored chain information. The electronic device (101) may update the chain information (331, 332) stored in the memory (130).
[0067] According to one embodiment, the electronic device (101) can, in response to a situation in which the first application (301) is executed, identify at least one component (310) corresponding to the first application (301), and execute another application set in response to each component (e.g., a second application (302) corresponding to a first type of component (e.g., “activity (311)”), a fourth application (304) corresponding to a third type of component (e.g., “provider (313)”)). According to one embodiment, the electronic device (101) can, in response to a situation in which the first application (301) is executed, identify at least one component (310) corresponding to the first application (301), and execute at least one application corresponding to the at least one component (310). For example, when the first application (301) is executed, if the first type and the second type are confirmed, the second application corresponding to the first type and the third application corresponding to the second type can be executed.
[0068] According to one embodiment, in response to the first application (301) being executed as a first type component (e.g., “activity (311)”), the electronic device (101) may execute a second application (302). At this time, if the execution state of the first application (301) is continuously maintained, the execution state of the second application (302) may also be maintained in the same manner. In a situation where the first application (301) is executed, the second application (302) may be an application with relatively high importance and may maintain the execution state. According to one embodiment, in a situation where the first application (301) is being executed as a first type component (e.g., “activity (311)”), the electronic device (101) may at least partially suspend (e.g., kill operation) the execution of another application running in the background. In this situation, the electronic device (101) can maintain the execution state of the second application (302) with relatively high importance in order to maintain the execution state of the first application (301).
[0069] According to one embodiment, in response to the execution of the first application (301), the electronic device (101) may automatically execute a second application (302) corresponding to a first type of component (e.g., “activity (311)”) of the first application (301) based on the first chain information (331) stored in the memory (130). According to one embodiment, in response to the execution of the first application (301), the electronic device (101) may automatically execute a fourth application (304) corresponding to a third type of component (e.g., “provider (313)”) of the first application (301) based on the second chain information (332) stored in the memory (130). According to one embodiment, the electronic device (101) can, in response to execution of the first application (301), identify another application set based on at least one component, and execute the identified other application.
[0070] According to one embodiment, the electronic device (101) can improve the performance of the electronic device by controlling the operation of at least one application based on the relationship between applications (e.g., chain information, importance information). For example, when the first application (301) is running, the electronic device (101) can maintain the execution of an application whose importance is set relatively high, and can stop the execution (e.g., kill operation) of an application whose importance is set relatively low. According to one embodiment, the utilization of the memory (130) of the electronic device (101) can be improved. According to one embodiment, the efficiency of the battery (e.g., the battery (189) of FIG. 1) of the electronic device (101) can be improved.
[0071] FIG. 4 is a block diagram of an electronic device according to one embodiment of the present disclosure.
[0072] The electronic device of FIG. 4 may be at least partially similar to the electronic device (101) of FIG. 1, or may further include other embodiments of the electronic device (101).
[0073] Referring to FIG. 4, the electronic device (101) may include a processor (e.g., the processor (120) of FIG. 1), a memory (e.g., the memory (130) of FIG. 1), and / or a display (e.g., the display module (160) of FIG. 1). The processor (120) may include a collection module (421) that collects data and information and a control module (422) that controls at least one component. According to one embodiment, operations performed by the collection module (421) and the control module (422) may also be understood as being performed by the processor (120).
[0074] According to one embodiment, the processor (120) of the electronic device (101) may execute a program (e.g., program (140) of FIGS. 1 and 2) stored in the memory (130) to control at least one other component (e.g., hardware or software component) and perform various data processing or operations. The processor (120) may include a collection module (421) and a control module (422). For example, the collection module (421) may perform an operation of collecting data and information and storing the data and information in the memory (130), and the control module (422) may control the operation of at least one other component. According to one embodiment, the processor (120) may be operatively, functionally, and / or electrically connected to the memory (130) and / or the display (160).
[0075] According to one embodiment, the collection module (421) may collect at least one component (e.g., component (310) of FIG. 3) determined when an application is executed. For example, at least one component (310) may include “activity” (e.g., “activity (311)” of FIG. 3), “service” (e.g., “service (312)” of FIG. 3), “provider” (e.g., “provider (313)” of FIG. 3), and / or “broadcast” (e.g., “broadcast (314)” of FIG. 3). The collection module (421) may obtain component-related information to determine whether a specific application is executed based on a certain component when the application is executed. For example, the component type may be defined in the code of the application or may be determined by the electronic device (101) based on the type of operation being performed. The collection module (421) may collect chain information related to the execution of a second application when a second application configured to correspond to the first type of component is executed in response to the first application being executed as a first type of component. According to one embodiment, the collection module (421) may collect chain information generated based on a plurality of applications and store the collected chain information in chain information (432) of the memory (130).
[0076] According to one embodiment, the control module (422) can at least partially control the operation of at least one application based on the chain information (432) stored in the memory (130). For example, when a first application is executed as a first type of component, the control module (422) can identify a second application corresponding to the first type of component based on the chain information (432) and automatically execute the identified second application. According to one embodiment, the control module (422) can execute a second application that is operatively connected to the first application (e.g., has a high relevance to the first application based on the chain information (432)) in the background based on the first application running in the foreground. According to one embodiment, the control module (422) may, based on a first application running in the foreground, stop (e.g., kill operation) the execution of a third application that is not operatively connected with the first application (e.g., has little relevance to the first application) in the background.
[0077] According to one embodiment, the collection module (421) and the control module (422) may be included in an application framework (e.g., a software framework, an Android framework). For example, the collection module (421) and the control module (422) may set or control various operations related to an application. The collection module (421) and the control module (422) may, based on the Android framework, at least partially control at least one application.
[0078] According to one embodiment, the memory (130) may include component-related information (431) for storing component information determined based on the operation of a specific application when the specific application is executed. For example, the component-related information (431) may include a first type of “activity” (e.g., “activity (311)” of FIG. 3), a second type of “service” (e.g., “service (312)” of FIG. 3), a third type of “provider” (e.g., “provider (313)” of FIG. 3), and / or a fourth type of “broadcast” (e.g., “broadcast (314)” of FIG. 3). According to one embodiment, when the first application is executed, at least one component corresponding to the first application may be determined based on the component-related information (431). The component-related information (431) may include multiple types of components.
[0079] According to one embodiment, the memory (130) may include chain information (432) indicating a relationship between a plurality of applications. For example, in response to a first application being executed as a first type of component (e.g., “activity (311)”), the processor (120) may, based on the chain information (432), identify a second application having a relationship with the first type of component according to the execution of the first application. According to one embodiment, the electronic device (101) may store the chain information (432) in the memory (130), add other chain information, or delete existing stored chain information. The electronic device (101) may update the chain information (432) stored in the memory (130).
[0080] According to one embodiment, when there are multiple second applications having an association with a first application, the memory (130) may include importance information (433) indicating priorities and importance among the second applications. For example, in response to the first application being executed as a first type component (e.g., “activity (311)”), the processor (120) may, based on the chain information (432), identify multiple second applications having an association with the first type component according to the execution of the first application. Based on the importance information (433), the processor (120) may select one second application having a relatively high priority (e.g., having a relatively high importance for the first application to maintain execution) from among the multiple second applications. For example, the processor (120) may select one second application having the highest priority / importance from among the multiple second applications based on the importance information (433).
[0081] According to one embodiment, the display (160) may be a component that displays an execution screen of the first application when the first application is executed. For example, the processor (120) may display an execution screen of the first application through the display (160) in response to the execution of the first application. When the first application is executed as a first type component (e.g., “activity (311)”), the execution screen may be displayed through the display (160). For example, the first application may be executing in a foreground state. The processor (120) may determine that the first application is executed as a first type component (e.g., “activity (311)”) based on the component-related information (431) of the memory (130).
[0082] According to one embodiment, the processor (120) may, based on the chain information (432) of the memory (130), identify at least one second application linked to the first type of component when the first application is executed as a first type of component. The processor (120) may, based on the importance information (433) of the memory (130), select a second application having a relatively high priority or a relatively high importance from among the identified at least one second application. According to one embodiment, the electronic device (101) may automatically execute the selected second application in response to a situation in which the first application is executed as a first type of component (e.g., “activity (311)”). For example, the second application may be executing in the background.
[0083] According to one embodiment, when a request for executing a first type of component according to a first application is detected, the processor (120) may check a top component corresponding to an application (e.g., a top application) currently running in the foreground (e.g., top), and may check a correlation (e.g., presence or absence of chain information (432)) between the checked top component and the first type of component. For example, if the first type of component has a high correlation with the top component (e.g., if chain information (432) exists), the processor (120) may execute the first type of component. For another example, if the first type of component has a low correlation with the top component (e.g., if chain information (432) does not exist), the processor (120) may delay execution of the first type of component until processing of the top application is completed. After the processing of the top application is completed, the processor (120) can execute the first type of component.
[0084] According to one embodiment, the electronic device (101) may identify a third application running in the background when the first application is executed as a first type component. For example, the processor (120) may identify a third application that has a low correlation with the execution of the first application based on the chain information (432) of the memory (130). For example, if there is no chain information (432) between the first type (of the first application) and the third application, the third application may be determined to have a low correlation with the first application. For example, if there is chain information (432) between the first type (of the first application) and the third application, but the priority or importance of the third application is below a predetermined threshold, the correlation between the first application and the third application may be determined to be low. For example, in a situation where the first application is executed as a first type component, the third application in the background may include an application with a relatively low importance. According to one embodiment, the electronic device (101) may, in response to a situation in which a first application is executed as a first type of component (e.g., “activity (311)”), stop (e.g., perform a kill operation) the execution of a third application running in the background. For example, since the third application has a low correlation with the first application being executed as a first type of component (e.g., “activity (311)”), the execution of the third application may be stopped (e.g., perform a kill operation).
[0085] According to one embodiment, when a Kill operation (e.g., terminating the execution of an application) is requested for a specific application, the electronic device (101) may determine whether the specific application has an association (e.g., chain information (432)) with a top application based on chain information (432). For example, if the specific application has an association with a top application (e.g., the top application currently running in the foreground), the electronic device (101) may maintain the execution state of the specific application and skip or pending (e.g., delay) the kill operation for the specific application. For example, if the specific application does not have an association with a top application, the electronic device (101) may stop the execution of the specific application (e.g., kill operation).
[0086] According to one embodiment, the electronic device (101) may include a memory (130) that stores instructions and a processor (120). When the instructions are executed by the processor (120), the electronic device (101) may, in response to the execution of a first application (301) among a plurality of applications stored in the memory (130), confirm the execution of a second application (302) corresponding to a component (310) of the first application (301). When the instructions are executed by the processor (120), the electronic device (101) may store chain information (432) indicating a relationship between the first application (301) and the second application (302) in the memory (130). When the above instructions are executed by the processor (120), the electronic device (101) may be configured to execute the second application (302) corresponding to the component (310) of the first application (301) based on the chain information (432) stored in the memory (130) in response to the execution of the first application (301), while the chain information (432) between the plurality of applications is stored in the memory (130).
[0087] According to one embodiment, when the instructions are executed by the processor (120), the electronic device (101) may be configured to, in response to the execution of the first application (301), check the execution probability for at least one application corresponding to the component (310) of the first application (301), determine the second application (302) having a relatively high execution probability based on the checked execution probability, and generate the chain information (432) in which a relationship is formed between the first application (301) and the second application (302).
[0088] According to one embodiment, the electronic device (101) may further include a display (160). According to one embodiment, when the instructions are executed by the processor (120), the electronic device (101) may be configured to display an execution screen of the first application (301) through the display (160) and execute the second application (302) in a background state in response to the execution of the first application (301).
[0089] According to one embodiment, when the instructions are executed by the processor (120), the electronic device (101) may, through the display (160), check a request to stop execution of a third application running in a background state while the execution screen of the first application (301) is displayed, and, based on chain information (432) stored in the memory (130), if a relationship between the third application and the first application (301) is confirmed, the electronic device may be set to maintain execution of the third application.
[0090] According to one embodiment, when the instructions are executed by the processor (120), the electronic device (101) may be configured to check the priority corresponding to each application when there are multiple confirmed second applications (302), select at least one second application (302) to be executed based on the confirmed priority, and execute the selected at least one second application (302).
[0091] According to one embodiment, the priority may be determined based on the importance corresponding to the at least one second application (302) to maintain execution of the first application (301).
[0092] According to one embodiment, when the instructions are executed by the processor (120), the electronic device (101) may be configured to check for at least one third application running in the background, and if the checked at least one third application is not included in the at least one second application, stop the execution of the at least one third application.
[0093] According to one embodiment, the component (310) may include at least one of a first type of component in which an execution screen of the first application (301) is displayed, a second type of component in which the first application (301) is executed in a background state, a third type of component in which account information connected through the first application (301) is shared, and a fourth type of component in which at least one component included in the electronic device (101) is controlled based on the first application (301).
[0094] According to one embodiment, when the instructions are executed by the processor (120), the electronic device (101) may be configured to identify at least one preparatory operation to be performed prior to execution of the identified second application (302), and to perform at least some of the preparatory operations corresponding to the second application (302) in response to execution of the first application (301).
[0095] According to one embodiment, when the instructions are executed by the processor (120), the electronic device (101) may be configured to, in response to the execution of the first application (301), determine a situation in which the second application (302) is executed, determine additional chain information indicating a relationship between the first application (301) and the second application (302), and update chain information (432) stored in the memory (130) based on the determined additional chain information.
[0096] FIG. 5 is a flowchart illustrating a method for generating chain information between multiple applications according to one embodiment of the present disclosure.
[0097] In the following examples, the operations may be performed sequentially, but are not necessarily sequential. For example, the order of the operations may be changed, and at least two operations may be performed in parallel.
[0098] According to one embodiment, operations 501 to 509 may be understood to be performed by a processor (e.g., processor (120) of FIGS. 1 and 4) of an electronic device (e.g., electronic device (101) of FIGS. 1 and 4). The electronic device (101) of FIG. 5 may be at least partially similar to the electronic device (101) of FIGS. 1 and 4, or may further include other embodiments of the electronic device (101).
[0099] According to one embodiment, the processor (120) of the electronic device (101) may, in response to the execution of a first application (e.g., the first application (301) of FIG. 3), identify a component (e.g., the component (310) of FIG. 3) related to the execution of the first application (301). For example, the component (310) may include “activity” (e.g., “activity (311) of FIG. 3”), “service” (e.g., “service (312) of FIG. 3”), “provider” (e.g., “provider (313) of FIG. 3”), and / or “broadcast” (e.g., “broadcast (314) of FIG. 3”). For example, when the first application (301) is executed, if the execution screen of the first application (301) is displayed through a display (e.g., display (160) of FIG. 3), a component related to the execution of the first application (301) may be determined as “activity (311)”. For example, when the first application (301) is executed, if the first application (301) operates in a background state or a foreground state, a component related to the execution of the first application (301) may be determined as “service (312)”. For example, when the first application (301) is executed, if data (e.g., account information) is loaded based on the first application (301), a component of the first application (301) may be determined as “provider (313)”. For example, when a specific operation set based on the first application (301) is performed during execution of the first application (301), a component of the first application (301) may be determined as “broadcast (314).” According to one embodiment, the processor (120) may identify multiple applications being executed in response to the components of the first application (301).For example, in response to a component of the first application (301), a plurality of applications to be executed can be identified based on chain information (432) stored in the memory (130). For example, the processor (120) can recognize applications executed within a predetermined time period before the execution of the component of the first application (301). For example, the processor (120) can identify an execution probability for each of the identified plurality of applications based on history information (e.g., history information) related to the execution of applications. The processor (120) can select a second application (e.g., the second application (302) of FIG. 3) having a relatively high execution probability. According to one embodiment, the processor (120) can execute the selected second application (302) corresponding to the component of the first application (301) in response to the execution of the first application (301). According to one embodiment, the processor (120) can generate chain information (e.g., chain information (432) of FIG. 4) indicating a relationship between a component of a first application (301) and a second application (302), and can store the generated chain information (432) in the memory (130).
[0100] Referring to FIG. 5, in operation 501, the processor (120) of the electronic device (101) can confirm the execution of the first application (301). For example, when the first application (301) is executed, at least one component can be determined in relation to the execution of the first application (301).
[0101] In operation 503, the processor (120) can identify components related to the execution of the first application (301). For example, the component (310) may include “activity (311),” “service (312),” “provider (313),” and / or “broadcast (314).” According to one embodiment, the number of components (310) is not limited to the aforementioned number, and other types of components may be added in relation to the operation of the application.
[0102] In operation 505, the processor (120) can check the execution probability of at least one application being executed in response to a component of the first application (301). For example, if multiple applications are related to the same component, the execution probability for each application can be checked based on history information (e.g., history information) related to the execution of each application. For example, in a situation where the first component of the first application (301) is executed, the processor (120) can check information related to at least one second application being executed within a set time period. For example, multiple applications related to the component of the first application (301) can be determined based on chain information (432) stored in the memory (130). For example, if there are multiple second applications, the processor (120) can check the execution probability for each of the second applications that are executed within a set time period in connection with the first application (301) when the first application (301) is executed. For example, if the second application is always executed within a set time whenever the first application (301) is executed, the execution probability of the second application associated with the first application (301) can be confirmed as approximately 100%. For example, the execution probability for at least one application can indicate the importance of the at least one second application in a situation where the first application (301) is executed as a corresponding component. The execution probability of the second application corresponding to the first application (301) can indicate a correlation between the first application (301) and the second application. If the execution probability for a specific application is high, the importance of the specific application can be relatively high.For example, when the first application (301) is executed, an application with high importance can be executed.
[0103] In operation 507, the processor (120) can identify a second application (302) having a relatively high execution probability based on the confirmed execution probability. For example, the processor (120) can identify a second application (302) having the highest execution probability. For example, the processor (120) can identify the second application (302) whose execution probability exceeds a set threshold value. According to one embodiment, the processor (120) can execute a second application (302) having a relationship with the first application (301) in response to the execution of the first application (301).
[0104] In operation 509, the processor (120) may store chain information (e.g., chain information (432) of FIG. 4) indicating a relationship between the first application (301) and the second application (302) in the memory (130). For example, the processor (120) may store chain information (432) indicating a relationship between the first application (301) and applications (e.g., the second application (302)) related to components of the first application (301) in the memory (130). For example, applications related to components of the first application (301) may be executed within a set time after execution of the first application (301).
[0105] Table 1 below shows an example of chain information (432).
[0106] callee: Second application (302) caller: First application (301) component chain code com.android.app.aodservice com.android.calendarprovider13137ce com.android.providers.settings com.android.app.aodserviceprovider92bbb7 com.android.app.reminder com.android.calendarprovider13137ce com.android.providers.settings com.android.app.reminderprovider7243566 com.android.scscom.android.calendarprovider13137ce com.android.providers.settings com.android.scsprovider26ef899
[0107] For example, the first application (301) may include a calendar-related application and may be executed based on a widget interface. In response to the execution of the first application (301) (e.g., com.android.calendar), the processor (120) may identify a component (e.g., “provider”, “provider (313)” of FIG. 3) related to the execution of the first application (301). The processor (120) may identify a first chain code (e.g., 13137ce) corresponding to the component (e.g., “provider”) of the first application (301). Referring to Table 1, the electronic device (101) may call at least one second application (302) (e.g., “aodservice”, “reminder”, and / or “scs”) in response to the first chain code being “13137ce”. (Referring to Table 1), in response to the execution of the 2-1 application (“aodservice”), the processor (120) can check the 2-1 chain code (e.g., 92bbb7) corresponding to the component (e.g., “provider”) of the 2-1 application (“aodservice”), in response to the execution of the 2-2 application (“reminder”), the processor (120) can check the 2-2 chain code (e.g., 7243566) corresponding to the component (e.g., “provider”) of the 2-2 application (“reminder”), and in response to the execution of the 2-3 application (“scs”), the processor (120) can check the 2-3 chain code (e.g., 26ef899) corresponding to the component (e.g., “provider”) of the 2-3 application (“scs”).
[0108] According to one embodiment, the electronic device (101) can generate chain information (432) including a chain code indicating a relationship between a first application (301) and a second application (302), and store the chain information (432) in a memory (130).
[0109] According to one embodiment, in response to the execution of the first application (301), the processor (120) can identify a second application (302) corresponding to a component of the first application (301) based on chain information (432) stored in the memory (130), and can automatically execute the identified second application (302).
[0110] FIG. 6 is a flowchart illustrating a method for executing an application based on chain information according to one embodiment of the present disclosure.
[0111] In the following examples, the operations may be performed sequentially, but are not necessarily sequential. For example, the order of the operations may be changed, and at least two operations may be performed in parallel.
[0112] According to one embodiment, operations 601 to 605 may be understood to be performed in a processor (e.g., processor (120) of FIGS. 1 and 4) of an electronic device (e.g., electronic device (101) of FIGS. 1 and 4). The electronic device (101) of FIG. 6 may be at least partially similar to the electronic device (101) of FIGS. 1 and 4, or may further include other embodiments of the electronic device (101).
[0113] According to one embodiment, the electronic device (101) may have chain information (e.g., chain information (432) of FIG. 4) indicating a relationship between a first application (e.g., a first application (301) of FIG. 3) and a second application (e.g., a second application (302) of FIG. 3) stored in a memory (e.g., a memory (130) of FIG. 4).
[0114] Referring to FIG. 6, in operation 601, the processor (120) of the electronic device (101) can confirm the execution of the first application (301). For example, the processor (120) can confirm a component (e.g., component (310) of FIG. 3) indicating an operation according to the execution of the first application (301). The component can be stored as component-related information (431) of the memory (130).
[0115] In operation 603, the processor (120) may, in response to the execution of the first application (301), identify a second application (302) corresponding to a component of the first application (301) based on chain information (432) stored in the memory (130). For example, the processor (120) may identify at least one second application corresponding to a component of the first application (301) and may identify an importance (e.g., importance information (433) of FIG. 3) for the identified at least one second application. The processor (120) may select a second application (302) having a relatively high importance from among the identified at least one second application.
[0116] In operation 605, the processor (120) can automatically execute a second application (302) (e.g., a second application (302) determined to have relatively high importance). Based on chain information (432), the processor (120) can select a second application (302) corresponding to a component of the first application (301) and automatically execute the selected second application (302). For example, the second application (302) can include an application that is relatively important in maintaining the execution state of the first application (301).
[0117] According to one embodiment, the processor (120) may perform at least some preparatory operations (e.g., preloading operations) in advance before the second application (302) is executed. For example, the processor (120) may at least partially perform the preloading operations (e.g., preloading operations) corresponding to the second application (302). For example, when the second application (302) is identified, the processor (120) may preload the second application (302), and when the execution of the second application (302) is determined, the processor (120) may execute the preloaded second application (302). When the preloading operation of the second application (302) is performed, the time required for the execution of the second application (302) may be shortened. According to one embodiment, by performing the preloading operation of the second application (302), the processing speed of the electronic device (101) may be improved. The usability of the electronic device (101) can be improved.
[0118] FIG. 7 is a flowchart illustrating an application control method based on chain information according to one embodiment of the present disclosure.
[0119] In the following examples, the operations may be performed sequentially, but are not necessarily sequential. For example, the order of the operations may be changed, and at least two operations may be performed in parallel.
[0120] According to one embodiment, operations 701 to 707 may be understood to be performed by a processor (e.g., the processor (120) of FIGS. 1 and 4) of an electronic device (e.g., the electronic device (101) of FIGS. 1 and 4). The electronic device (101) of FIG. 7 may be at least partially similar to the electronic device (101) of FIGS. 1 and 4, or may further include other embodiments of the electronic device (101).
[0121] According to one embodiment, the electronic device (101) may have chain information (e.g., chain information (432) of FIG. 4) indicating a relationship between a first application (e.g., a first application (301) of FIG. 3) and a second application (e.g., a second application (302) of FIG. 3) stored in a memory (e.g., a memory (130) of FIG. 4).
[0122] Referring to FIG. 7, in operation 701, the processor (120) of the electronic device (101) can confirm the execution of the first application (301). For example, the processor (120) can confirm a component (e.g., component (310) of FIG. 3) indicating an operation according to the execution of the first application (301). The component can be stored as component-related information (431) of the memory (130).
[0123] In operation 703, the processor (120) may, in response to the execution of the first application (301), identify a second application (302) corresponding to a component of the first application (301) based on chain information (432) stored in the memory (130). For example, the processor (120) may identify at least one second application corresponding to a component of the first application (301) and may identify the importance of the at least one second application (e.g., importance information (433) of FIG. 3). Based on the at least one second application, the processor (120) may select a second application (302) having a relatively high importance. The processor (120) may execute the second application (302) having a relatively high importance. The processor (120) can select a second application (302) based on the chain information (432) and execute the selected second application (302). The second application (302) may include an application that is relatively important in maintaining the execution state of the first application (301). The processor (120) may perform at least some preparatory operations (e.g., preloading operations) in advance before the second application (302) is executed. For example, the processor (120) may at least partially perform a preloading operation (e.g., preparatory operation) corresponding to the second application (302). For example, when the second application (302) is confirmed, the processor (120) may preload the second application (302), and when execution of the second application (302) is determined, the preloaded second application (302) may be executed.
[0124] In operation 705, the processor (120) may identify at least one third application that is running in the background and does not match the second application (302). For example, the electronic device (101) may have multiple applications running in the background. The processor (120) may select a third application from among the multiple applications that does not match the identified second application (302). For example, the at least one third application may include an application that has a relatively low correlation (e.g., a relatively low importance, a relatively low priority) with respect to the first application (301) being executed. Alternatively, the at least one third application may include a third application that does not have chain information (432) with the first application (301).
[0125] In operation 707, the processor (120) may stop (e.g., kill) the execution of at least one identified third application. For example, the processor (120) may stop (e.g., kill) the execution of a third application with relatively low importance among the applications running in the background to improve the performance of the electronic device (101).
[0126] According to one embodiment, when a plurality of applications are running simultaneously, the electronic device (101) may, in consideration of a situation in which the memory (130) is insufficient, preferentially stop (e.g., kill operation) an application running in the background. For example, the electronic device (101) may select a third application that is determined to have a relatively low importance (e.g., priority) among the plurality of applications running in the background, and stop (e.g., kill operation) the execution of the selected third application. According to one embodiment, when the first application (301) is running, the electronic device (101) may select a third application that has a relatively low correlation with the first application (301), and stop (e.g., kill operation) the execution of the selected third application. According to one embodiment, by stopping (e.g., kill operation) the execution of a third application that is unnecessarily running in the background, the performance of the electronic device (101) may be improved. In one embodiment, when the execution of a third application is stopped (e.g., a kill operation), the memory (130) capacity occupied by the third application may be reduced, thereby improving the utilization of the memory (130). In addition, the usage of the battery (e.g., the battery (189) of FIG. 1) due to the execution of the third application may be reduced, and the efficiency of the battery (189) may be improved.
[0127] According to one embodiment, a method for executing an application of an electronic device may include an operation of confirming execution of a second application (302) corresponding to a component (310) of a first application (301) among a plurality of applications stored in a memory (130), in response to execution of the first application (301), an operation of storing chain information (432) indicating a relationship between the first application (301) and the second application (302) in the memory (130), and an operation of executing the second application (302) corresponding to the component (310) of the first application (301) based on the chain information (432) stored in the memory (130) in a state in which the chain information (432) between the plurality of applications is stored in the memory (130), in response to execution of the first application (301).
[0128] According to one embodiment, the method may further include, in response to the execution of the first application (301), an operation of checking an execution probability for at least one application corresponding to a component (310) of the first application (301), an operation of determining a second application (302) having a relatively high execution probability based on the checked execution probability, and an operation of generating chain information (432) in which a relationship is formed between the first application (301) and the second application (302).
[0129] A method according to one embodiment may further include an operation of displaying an execution screen of the first application (301) through a display (160) in response to execution of the first application (301), and an operation of executing the second application (302) in a background state.
[0130] A method according to one embodiment may further include an operation of confirming a request to stop execution of a third application running in a background state while the execution screen of the first application (301) is displayed through the display (160), and an operation of maintaining execution of the third application when a relationship between the third application and the first application (301) is confirmed based on chain information (432) stored in the memory (130).
[0131] According to one embodiment, the method may further include, when there are multiple confirmed second applications (302), an operation of checking a priority corresponding to each application, an operation of selecting at least one second application (302) to be executed based on the confirmed priority, and an operation of executing the selected at least one second application (302).
[0132] According to one embodiment, the priority may be determined based on the importance corresponding to the at least one second application (302) to maintain execution of the first application (301).
[0133] A method according to one embodiment may further include an operation of identifying at least one third application running in the background, and an operation of stopping execution of the at least one third application if the identified at least one third application is not included in the at least one second application.
[0134] According to one embodiment, the component (310) may include at least one of a first type of component in which the execution screen of the first application (301) is displayed, a second type of component in which the first application (301) is executed in a background state, a third type of component in which account information connected through the first application (301) is shared, and a fourth type of component in which at least one component included in the electronic device (101) is controlled based on the first application (301).
[0135] According to one embodiment, the method may further include an operation of confirming at least one preparatory operation to be performed prior to execution of the identified second application (302), and an operation of performing at least some of the preparatory operations corresponding to the second application (302) in response to execution of the first application (301).
[0136] According to one embodiment, the method may further include an operation of confirming a situation in which the second application (302) is executed in response to the execution of the first application (301), an operation of confirming additional chain information indicating a relationship between the first application (301) and the second application (302), and an operation of updating chain information (432) stored in the memory (130) based on the confirmed additional chain information.
[0137] According to one embodiment, a non-transitory computer-readable storage medium (or computer program product) storing one or more programs for executing an application execution method of an electronic device (101) may be described. According to one embodiment, when the one or more programs are executed by the processor (120) of the electronic device (101), in response to the execution of a first application (301) among a plurality of applications stored in the memory (130), an operation of confirming the execution of a second application (302) corresponding to a component (310) of the first application (301), an operation of storing chain information (432) indicating a relationship between the first application (301) and the second application (302) in the memory, an operation of confirming the second application (302) corresponding to the component (310) of the first application (301) based on the chain information (432) stored in the memory (130) in a state where the chain information (432) between the plurality of applications is stored in the memory (130), in response to the execution of the first application (301), and executing the confirmed second application (302). It may contain commands that perform actions that are executed automatically.
[0138] According to one embodiment, the one or more programs may include instructions that, when executed by the processor (120) of the electronic device (101), perform an operation of checking an execution probability for at least one application corresponding to a component (310) of the first application (301) in response to execution of the first application (301), an operation of determining the second application (302) having a relatively high execution probability based on the checked execution probability, and an operation of generating the chain information (432) in which a relationship is formed between the first application (301) and the second application (302).
[0139] Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.
[0140] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0141] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0142] Various embodiments of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
[0143] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as a computer program product. The computer program product may be traded between sellers and buyers as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)) or may be provided through an application store (e.g., Play Store). TM ) or directly between two user devices (e.g., smart phones), online distribution (e.g., downloading or uploading). In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0144] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims
1. In an electronic device (101), Memory (130) for storing instructions; and Contains a processor (120), When the above instructions are executed by the processor (120), the electronic device (101) causes: In response to the execution of the first application (301) among the multiple applications stored in the above memory (130), the execution of the second application (302) corresponding to the component (310) of the first application (301) is confirmed, Store chain information (432) indicating the relationship between the first application (301) and the second application (302) in the memory (130), An electronic device configured to execute the second application (302) corresponding to the component (310) of the first application (301) based on the chain information (432) stored in the memory (130) in response to execution of the first application (301), while the chain information (432) between the plurality of applications is stored in the memory (130).
2. In paragraph 1, When the above instructions are executed by the processor (120), the electronic device (101) causes: In response to the execution of the first application (301), the execution probability for at least one application corresponding to the component (310) of the first application (301) is checked, Based on the above-mentioned confirmed execution probability, the second application (302) with a relatively high execution probability is determined, An electronic device configured to generate chain information (432) in which a relationship is formed between the first application (301) and the second application (302).
3. In paragraph 1, Further including a display (160); When the above instructions are executed by the processor (120), the electronic device (101) causes: In response to the execution of the first application (301), the execution screen of the first application (301) is displayed through the display (160), An electronic device set to run the second application (302) in the background.
4. In paragraph 3, When the above instructions are executed by the processor (120), the electronic device (101) causes: Through the above display (160), while the execution screen of the first application (301) is displayed, a request to stop execution of the third application running in the background is confirmed, An electronic device set to maintain execution of the third application when a relationship between the third application and the first application (301) is confirmed based on the chain information (432) stored in the memory (130).
5. In paragraph 1, When the above instructions are executed by the processor (120), the electronic device (101) causes: If there are multiple confirmed second applications (302), check the priority corresponding to each application, Based on the above-determined priorities, at least one second application (302) to be executed is selected, Executing at least one second application (302) selected above, An electronic device in which the above priority is determined based on the importance corresponding to the at least one second application (302) to maintain execution of the first application (301).
6. In paragraph 5, When the above instructions are executed by the processor (120), the electronic device (101) causes: An electronic device that selects at least one second application (302) to be executed based on one of a condition for selecting an application with the highest priority and a condition for selecting an application whose priority exceeds a set threshold.
7. In paragraph 5, When the above instructions are executed by the processor (120), the electronic device (101) causes: Check for at least one third-party application running in the background, An electronic device configured to stop execution of at least one third application if the at least one third application identified above is not included in the at least one second application.
8. In paragraph 7, An electronic device wherein said at least one third application comprises one of an application that does not match said at least one second application, an application with a low priority, and an application for which chain information does not exist with said first application.
9. In paragraph 1, The above component (310) is an electronic device including at least one of a first type of component in which the execution screen of the first application (301) is displayed, a second type of component in which the first application (301) is executed in a background state, a third type of component in which account information connected through the first application (301) is shared, and a fourth type of component in which at least one component included in the electronic device (101) is controlled based on the first application (301).
10. In paragraph 1, When the above instructions are executed by the processor (120), the electronic device (101) causes: Before the execution of the second application (302) confirmed above, at least one preparatory operation is confirmed to be performed, An electronic device configured to perform at least some of the preparatory operations corresponding to the second application (302) in response to execution of the first application (301).
11. In paragraph 1, When the above instructions are executed by the processor (120), the electronic device (101) causes: In response to the execution of the above first application (301), a situation is confirmed in which the above second application (302) is executed, Check additional chain information indicating the relationship between the first application (301) and the second application (302), An electronic device set to update chain information (432) stored in the memory (130) based on the additional chain information confirmed above.
12. In paragraph 1, When the above instructions are executed by the processor (120), the electronic device (101) causes: An electronic device that, in response to the execution of the first application (301), checks whether a second application (302) corresponding to a component (310) of the first application (301) has been executed within a set time.
13. In paragraph 1, When the above instructions are executed by the processor (120), the electronic device (101) causes: In response to the execution of the above first application (301), the top application running in the foreground is checked, Check whether there is a corresponding chain information (432) between the first application (301) and the top application. If the above chain information (432) exists, the execution of the first application (301) is maintained, An electronic device that delays execution of the first application (301) until processing of the top application is completed if the above chain information (432) does not exist.
14. In a method for executing an application of an electronic device, An operation of confirming the execution of a second application (302) corresponding to a component (310) of the first application (301) in response to the execution of a first application (301) among a plurality of applications stored in the memory (130); An operation of storing chain information (432) indicating a relationship between the first application (301) and the second application (302) in the memory (130); and A method including: an operation of executing a second application (302) corresponding to a component (310) of the first application (301) based on the chain information (432) stored in the memory (130) in response to execution of the first application (301), while the chain information (432) between the plurality of applications is stored in the memory (130); 15. In a non-transitory computer-readable storage medium storing one or more programs for performing an application execution method of an electronic device (101), The above one or more programs, when executed by the processor (120) of the electronic device (101), An operation of confirming the execution of a second application (302) corresponding to a component (310) of the first application (301) in response to the execution of a first application (301) among a plurality of applications stored in the memory (130); An operation of storing chain information (432) indicating a relationship between the first application (301) and the second application (302) in the memory; and A computer-readable storage medium including commands for performing an operation of executing a second application (302) corresponding to a component (310) of the first application (301) based on the chain information (432) stored in the memory (130) in response to the execution of the first application (301), while the chain information (432) between the plurality of applications is stored in the memory (130).
Citation Information
Patent Citations
Multi-open application processing method and device and electronic equipment
CN111796747A
Method, software and apparatus for using application state history information when re-launching applications
KR100934883B1
Method and syetem for interworking plurality of applications
KR1020060081997A
Application program switch method, apparatus and electronic terminal
KR1020170045269A
Tissue for removing residual urine
KR102161829B1