Electronic device and method for optimizing applications
Patent Information
- Application Number
- PCT/KR2024/009366
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-01
- Filing Date
- 2024-07-03
- Publication Date
- 2025-01-09
Smart Images

Figure KR2024009366_09012025_PF_FP_ABST
Abstract
Description
How to optimize electronic devices and applications
[0001] The present disclosure relates to a method for optimizing electronic devices and applications.
[0002] When an application is installed on an electronic device, the codes written in a programming language can be converted to fit the platform supported by the electronic device, and the converted codes can be used as a set of instructions to achieve the specific purpose. For example, in an electronic device equipped with the Android operating system, the application codes can be compiled into executable code (native code) by being converted to fit the runtime environment. Compilation can involve converting source code or byte code into native code.
[0003] The hybrid approach allows an application's code to be compiled when execution conditions are met (e.g., charging, idle, or at a specified time of day).
[0004] Electronic devices that include hybrid methods have a problem in that they have difficulty optimizing applications if they do not reach the execution conditions for optimizing applications according to the user's usage patterns for a long time.
[0005] A method for optimizing an electronic device and application according to one embodiment of the present disclosure is provided for optimizing an application or package while the electronic device generates executable code using a hybrid method.
[0006] A method for optimizing an electronic device and application according to one embodiment of the present disclosure is provided for optimizing an application or package while controlling a heat generation state of an electronic device that generates executable code using a hybrid method.
[0007] An electronic device of the present disclosure may include at least one processor including a processing circuit.
[0008] The electronic device of the present disclosure may include a battery.
[0009] The instructions stored in the memory of the present disclosure, when individually or collectively executed by the at least one processor, can cause the electronic device to determine whether the state of the electronic device corresponds to an application optimization execution condition.
[0010] The instructions stored in the memory of the present disclosure, when individually or collectively executed by the at least one processor, can cause the electronic device to determine whether the power level of the battery being charged is less than or equal to a specified power level.
[0011] The instructions stored in the memory of the present disclosure, when individually or collectively executed by the at least one processor, may cause the electronic device to generate a list of applications for which application optimization is to be executed if the power level of the battery being charged is less than or equal to a specified power level.
[0012] The instructions stored in the memory of the present disclosure, when individually or collectively executed by the at least one processor, may cause the electronic device to ascertain information about a temperature (e.g., a temperature (e.g., a surface temperature)) of the electronic device.
[0013] The instructions stored in the memory of the present disclosure, when individually or collectively executed by the at least one processor, may cause the electronic device to perform application optimization based on the list and the temperature (e.g., surface temperature).
[0014] The operation of performing application optimization based on the above list of the present disclosure may include an operation of adjusting the number of applications to be optimized.
[0015] The operation of executing application optimization based on the temperature of the present disclosure may include an operation of controlling execution of a rescheduling operation when the current temperature of the electronic device exceeds a specified temperature.
[0016] A method for optimizing an application of an electronic device of the present disclosure may include: an operation of determining whether a state of the electronic device corresponds to an application optimization execution condition; an operation of determining whether a power level of a battery being charged is less than or equal to a specified power level; an operation of generating a list of applications for which application optimization is to be executed if the power level of the battery being charged is less than or equal to the specified power level; an operation of determining information regarding a temperature of the electronic device; and an operation of executing application optimization based on the list and the temperature.
[0017] An electronic device-readable recording medium storing instructions of the present disclosure may include instructions that, when executed in an electronic device, cause the electronic device to perform an operation of checking whether a state of the electronic device (101) corresponds to an application optimization execution condition, an operation of checking whether a power level of a battery (189) being charged is less than or equal to a specified power level, an operation of generating a list of applications for which application optimization is to be executed if the power level of the battery (189) being charged is less than or equal to the specified power level, an operation of checking information about a temperature of the electronic device (101), and an operation of executing application optimization based on the list and the temperature, wherein the operation of executing application optimization based on the list includes an operation of adjusting the number of applications to be optimized, and the operation of executing application optimization based on the temperature may cause the electronic device to execute an operation of controlling a rescheduling operation to be executed if the current temperature of the electronic device exceeds a specified temperature.
[0018] A method for optimizing an electronic device and an application according to one embodiment of the present disclosure can improve the performance of the electronic device by optimizing the application while maintaining the charging state of the electronic device and suppressing heat generation.
[0019] In connection with the description of the drawings, the same or similar reference numerals may be used for the same or similar components.
[0020] FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments of the present disclosure.
[0021] FIG. 2 is an exemplary block diagram of a program according to one embodiment of the present disclosure.
[0022] FIG. 3 is a diagram illustrating a method for obtaining compiled packages by compiling an application according to one embodiment of the present disclosure.
[0023] FIG. 4 is a drawing for explaining the AOT method, JIT method, and / or hybrid method of the electronic device of the present disclosure.
[0024] FIG. 5 is a flowchart illustrating a method for optimizing an application of an electronic device according to one embodiment of the present disclosure.
[0025] FIG. 1 is a block diagram of an electronic device (101) within a network environment (100) according to various embodiments.
[0026] Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network). In 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)).
[0027] 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 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.
[0028] 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, on the electronic device (101) itself where the artificial intelligence model is executed, 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.
[0029] 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).
[0030] 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).
[0031] 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).
[0032] 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.
[0033] 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. According to 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.
[0034] 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).
[0035] 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.
[0036] 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.
[0037] 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).
[0038] The 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. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0039] 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.
[0040] 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 as, for example, at least a part of a power management integrated circuit (PMIC).
[0041] 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.
[0042] 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).
[0043] 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.
[0044] 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, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the at least one selected 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).
[0045] According to various embodiments, 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.
[0046] 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)).
[0047] 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.
[0048] FIG. 2 is an exemplary block diagram of a program (140) according to one embodiment of the present disclosure.
[0049] In one embodiment, the program (140) may be stored in the memory (130). When the program (140) stored in the memory (130) is executed under the control of the processor (120), it may cause the electronic device (101) to execute instructions included in the program (140).
[0050] In one embodiment, the program (140) may include an operating system (142), an application (146), a framework (220), a runtime (230), and / or an ahead-of-time (AOT) background service module (240). At least some of the programs (140) may be preloaded onto the electronic device (101), for example, during manufacturing, or may be downloaded or updated from an external electronic device (e.g., the electronic device (102 or 104), or a server (108)) when used by a user. The codes are compiled using an ahead-of-time (AOT) method, a just-in-time (JIT) method, or a hybrid method combining the AOT method and the JIT method.
[0051] AOT compiles application code at the time of installation, converts it into executable code, stores it, and then reads the converted executable code directly at the time of application execution. Since AOT code is already converted into executable code upon installation, it can shorten the application execution time. However, it also requires a significant amount of installation time and storage space.
[0052] Just-in-Time (JIT) compiles only the necessary code at the appropriate time during application execution. JIT interprets loaded classes and, when repetitive execution is detected, the JIT compiler kicks in appropriately, improving execution speed. This means that executable code execution is extremely fast, and because memory caching is built in, performance can be maximized when classes are repeatedly called. However, because JIT compiles codes into executable codes during runtime, while application installation time is shortened, application execution time can be significantly increased. Furthermore, when cached codes are released and re-execution is detected, the time required to re-translate the codes can cause delays in application operation.
[0053] The hybrid method uses the JIT method when installing an application to shorten the installation time and reduce the application's installation space, and after saving a profile according to the user pattern through an interpreter, when the execution conditions are met, the job scheduler starts an AOT background daemon to compile in the background and generate executable codes, and when the application is executed, the executable codes are used directly, thereby shortening the execution time.
[0054] Meanwhile, in recent electronic devices with the Android operating system, an execution environment called Android Runtime (hereinafter referred to as ART) is supported, and ART can use a hybrid method. ART uses a tool called dex2oat to compile the dex (dalvik executable) file (a collection of codes) of an application. The operating method can be specified by the setting value of the compile filter, and the compile filter can be set based on a profile according to a user pattern. In other words, in ART, the codes of an application can be compiled according to a compile filter set based on a profile according to a user pattern.
[0055] In one embodiment, the operating system (142) may control the management (e.g., allocation or reclaim) of one or more system resources (e.g., process (140), memory (130), or power) of the electronic device (101). For example, the operating system (142) may be Android™, iOS™, and / or Windows™. The operating system (142) may control the environment for executing software, such as applications, as well as hardware.
[0056] In one embodiment, the application (146) may be composed of multiple codes to achieve a specific purpose and may be packaged and distributed. The application (146) may include multiple applications. For example, the application (146) may include a dial (211), a camera (212), and / or a calendar (213) application. However, the present invention is not limited thereto, and the application (146) may further include applications such as games, home, SMS / MMS, instant messaging (IM), browser, alarm, contact, email, health, clock, album, voice food, and / or environmental information.
[0057] In one embodiment, the framework (220) may provide functionality or information provided from one or more resources of the electronic device (101) to the application (146).
[0058] In one embodiment, the framework (220) may include a package manager (221), a notification manager (222), a window manager (223), and / or a job scheduler (224). However, the framework (220) is not limited thereto, and may further include a resource manager, an activity manager, and a content provider.
[0059] In one embodiment, the package manager (221) can manage the installation and / or update of an application distributed in the form of a package file. The application can be distributed in the form of a package file (e.g., an apk file), and the package manager (221) can parse the package under the control of the processor (120) to separate the code and data contained in the package and store them in the memory (130).
[0060] In one embodiment, a package file may mean a set of multiple instructions and a group of one or more files or a compressed file of one or more files stored in memory for execution of an application.
[0061] In one embodiment, the instructions may comprise native code. For example, the instructions may be contained in a binary file stored in memory (130) and may be at least a portion of machine language and / or assembly language encoded in a binary format. For example, the instructions may comprise instructions generated by compiling other instructions.
[0062] For example, other instructions may be composed of source code and / or byte code. For example, source code may include C language, JAVA language, and / or BASIC (beginner's all-purpose symbolic instruction code), but is not limited thereto. For example, instructions may refer to instructions that are readable by an interpreter, which is software executed by a processor, and / or a virtual machine (e.g., a JVM (Java virtual machine)), such as byte code. Byte code may be an instruction with a specified length (e.g., 1 byte). Hereinafter, a package may refer to a set of instructions.
[0063] In one embodiment, one or more files compressed within a package may contain data required for the execution of an application corresponding to the package. For example, the one or more files may contain at least one of one or more resources (e.g., icons, images, and / or videos), design elements (e.g., an XML file defining an activity), and / or metadata (e.g., an XML file with a designated name, such as a manifest) required for the operation of the application.
[0064] In one embodiment, the package manager (221) may store the most recent execution time information of the applications in the memory (130) when at least one of the applications is executed under the control of the processor (120).
[0065] In one embodiment, an electronic device (101) equipped with an Android operating system may, under the control of a processor (120), classify the execution time of an application through an API and store it in memory (130) when at least one of the applications is executed. For example, the electronic device (101) may classify the execution time by reason through a notifyPackageUse API and store it in memory (130) by managing it as a timestamp. For example, the reason may be information regarding the execution history of the application.
[0066] In one embodiment, the runtime (230) may, under the control of the processor (120), store a user-based profile for each application in the memory (130) based on the user's usage patterns. For example, the usage patterns may relate to the order in which the user frequently uses the applications.
[0067] In one embodiment, the notification manager (222) may provide functionality to notify a user of the occurrence of a specified event (e.g., an incoming call, a message, or an alarm).
[0068] In one embodiment, the window manager (223) may manage resources relating to one or more graphical user interfaces, localized strings, graphics, and layouts used on a screen displayed on a display (e.g., a display module (160)).
[0069] In one embodiment, a resource manager may manage the source code or storage space of an application (1460) or memory (130), and an activity manager may manage the life cycle of an application. A content provider may support an application's ability to access or share data with other applications.
[0070] In one embodiment, the job scheduler (224) may include a job service and job info.
[0071] In one embodiment, a job may be a task or execution unit in computing processing. The job scheduler (225) may process the execution operations of jobs, etc., depending on the situation. For example, the job scheduler (225) may process which jobs to perform, whether to postpone them, whether to run them in the background, or whether to execute them in order, depending on the situation.
[0072] In one embodiment, the job scheduler (224) can define what needs to be done when executing a job in the job service, and can define in which situation the job needs to be executed in the job info.
[0073] In one embodiment, the job scheduler (224) can call different functions depending on the status of the job, such as start, completion, or interruption. For example, when executing a scheduled job, a specific function (onStartJob) defined in the job service can be called. The job scheduler (224) can call a specific function (onStopJob) when the job needs to be stopped. When the scheduled job is completed or interrupted, the job scheduler (224) can call a specific function (JobFinished) in the job service to notify the job scheduler that the job has ended. When a job is interrupted, the job scheduler (224) can check the reason for the interruption and reschedule the interrupted job.
[0074] In one embodiment, the job scheduler (224) can manage background tasks to be performed under execution conditions. For example, the job scheduler (224) can activate an AOT daemon (Ahead of Time Daemon) or an AOT background service module (240) under execution conditions, and control the compilation of the codes of the application (146) through the AOT background service module (240). The daemon can include a process that is automatically executed at boot time and continues to run in the background to provide application services in the background.
[0075] In one embodiment, the job scheduler (224) may interrupt and reschedule background tasks to be performed under interrupt conditions.
[0076] In one embodiment, the job scheduler (224), under the control of the processor (130), may define and / or store information regarding execution conditions in the job info.
[0077] In one embodiment, the job scheduler (224) may define and / or store background tasks to be performed in the job service under the control of the processor (130).
[0078] In one embodiment, the execution condition may be a condition regarding the state and / or execution cycle of the electronic device (101) for the electronic device (101) to execute application optimization.
[0079] In one embodiment, the electronic device (101) may execute the job scheduler (224) and / or the AOT background service module (240) under the control of the processor (120) in an execution cycle (e.g., 24 hours). For example, the electronic device (101) may compile the application (146) by executing the job scheduler (224) and / or the AOT background service module (240) once based on the execution cycle under the control of the processor (120). In one embodiment, the state of the electronic device (101) may be a charging state of the electronic device (101) and / or an idle state of the electronic device. For example, the charging state of the electronic device (101) may be a state in which the electronic device (101) receives power from an external power source to charge the battery (189) and / or a state including information on how much of the total capacity of the battery (189) is being charged.
[0080] In one embodiment, the electronic device (101) may execute a job scheduler (224) and / or an AOT background service module (240) based on maintaining an optimized execution condition under the control of the processor (120).
[0081] For example, the charging state of the electronic device (101) may be a state in which the electronic device (101) is charged to a level less than or equal to a power level specified when the battery (189) is fully charged, based on the power level when the battery (189) is fully charged.
[0082] In one embodiment, the processor (120) may determine that the electronic device (101) is in a charging state if the electronic device (101) is in a state where it is receiving power from an external power source and charging the battery (189).
[0083] In one embodiment, the processor (120) may determine that the electronic device (101) is in a charging state when the electronic device (101) is in a state where the electronic device (101) is charging the battery (189) by receiving power from an external power source and the battery (189) is charged to a level less than or equal to a power level specified when the battery is fully charged (e.g., 80% of the fully charged power).
[0084] In one embodiment, the processor (120) may determine that the electronic device (101) is in an idle state when the display (e.g., display module (160)) of the electronic device (101) is turned off and a specified period of time has elapsed (e.g., 31 minutes after being turned off). However, the present invention is not limited thereto, and the idle state of the electronic device (101) may be unrelated to whether the display is on or off. For example, the processor (120) may determine that the electronic device (101) is in an idle state when a process running on the electronic device (101) uses resources below a certain level.
[0085] In one embodiment, the electronic device (101) may execute application optimization under the control of the processor (120) when an execution cycle arrives based on an execution condition and is in a charging state and an idle state.
[0086] For example, applications installed on an electronic device (101) in a hybrid manner (e.g., applications included in the application (146)) can have at least one code of the application (146) compiled through an AOT daemon or an AOT background service module (240) under execution conditions to generate a compilation file (e.g., an oat file or an odex file). The runtime (230) can execute applications using at least one compilation file. However, if there is an update (e.g., an OTA (over the air) update and / or a mainline update) of the operating system (142), the framework (220), the application (146) and / or the program (140), the compilation file cannot be used, and thus it is necessary to compile the codes of the application (146) again through the AOT background service module (240). In one embodiment, the operation of re-compiling the codes of the application (146) through the AOT background service module (240) due to updates to the operating system (142), framework (220), application (146) and / or program (140) may be referred to as an application optimization and / or package optimization operation.
[0087] In one embodiment, the stop condition may be a condition regarding the state of the electronic device (101) to stop the optimization of an application that the electronic device (101) is running.
[0088] In one embodiment, the interruption condition may be that the electronic device (101) is out of a charging state or out of an idle state.
[0089] In one embodiment, the interruption condition may be that the electronic device (101) has been optimizing the application for a specified period of time (e.g., 10 minutes).
[0090] In one embodiment, the stop condition may be a state in which the battery (189) is being charged above a specified level (e.g., 80% of the fully charged power) relative to its power level when fully charged.
[0091] In one embodiment, the interrupt condition may be that the current temperature of the electronic device (101) exceeds a specified temperature (e.g., 40°C). The temperature or surface temperature of the electronic device (101) may be measured based on a temperature sensor included in the electronic device (101). The current temperature of the electronic device (101) may be a temperature (e.g., surface temperature) measured while performing application optimization of the electronic device (101).
[0092] In one embodiment, the interrupt condition may be that the current temperature of the electronic device (101) exceeds a specified range from a temperature determined prior to performing application optimization. The determined temperature may be the temperature (e.g., surface temperature) of the electronic device (101).
[0093] For example, if the temperature of the electronic device (101) confirmed before performing application optimization is 36°C, the specified range may be 1.0°C. If the current temperature of the electronic device (101) after performing application optimization exceeds 37°C, the electronic device (101) may stop application optimization under the control of the processor (120). The electronic device (101) may store the temperature (e.g., surface temperature) of the electronic device (101) confirmed before performing application optimization in the memory (130).
[0094] Table 1 may indicate the temperature (e.g., surface temperature) and specified range of the electronic device (101) checked before performing application optimization according to one embodiment.
[0095] Temperature of the electronic device (101) confirmed before performing application optimization (e.g. surface temperature) Specified range 36℃ or less Within 1.0℃ change from the confirmed temperature Exceeding 36℃ to 37℃ or less Within 0.8℃ change from the confirmed temperature Exceeding 37℃ to 38℃ or less Within 0.5℃ change from the confirmed temperature Exceeding 38℃ to 39℃ or less Within 0.2℃ change from the confirmed temperature Exceeding 39℃ The temperature of the electronic device (101) after performing application optimization (e.g. surface temperature) is 40℃ or less
[0096] In one embodiment, the interruption condition may be a state in which the space available for storage in the memory (130) of the electronic device (101) is less than a specified size (e.g., 5% of the total memory size). In one embodiment, the job scheduler (224) may select applications to be optimized based on a specific condition (e.g., temperature of the electronic device (101)) based on the application optimization list.
[0097] For example, if the temperature (e.g., surface temperature) of the electronic device (101) exceeds a specified temperature (e.g., 39°C), the job scheduler (224) can adjust the AOT background service module (240) to perform optimization only for a few (e.g., 5) applications included at the top among the applications on the list.
[0098] In one embodiment, when the power level of the battery (189) exceeds a specified level (e.g., 80% of the fully charged power) based on the power level when the battery (189) is fully charged, a full charge of the battery (189) can be expected. At this time, the job scheduler (224) can reschedule the entire application so that it can perform optimized operations when the battery (189) is fully charged.
[0099] In one embodiment, the job scheduler (224) can schedule the AOT background service module (240) to perform optimization on a few (e.g., five) applications at the top of the list, regardless of the power level of the battery (189).
[0100] In one embodiment, the job scheduler (224) can adjust the number of applications to be optimized based on the application optimization list according to the charging period of the battery (189).
[0101] For example, the charging section of the battery (189) may have a CC (constant current) section or a CV (constant voltage) section. The package manager (221) or the AOT background service module (240) may create, define, and / or store a list so that more applications can be optimized when the charging section of the battery (189) is in the CV (constant voltage) section than when it is in the CC (constant current) section. For example, the charging section of the battery (189) may have a CC (Constant Current) section in which it is charged at a specified ampere to continuously flow a constant current, or a CV (Constant Voltage) section in which it is charged at a specified volt to maintain a constant voltage. When the appropriate battery voltage is reached, the voltage is fixed and the current flows, so that heat generation is reduced, so that more applications can be optimized.
[0102] In one embodiment, the package manager (221) or the AOT background service module (240) may obtain information about the charging section of the battery (189) and / or information about the charging level of the battery (189) through the battery manager, which is a system service.
[0103] In one embodiment, the job scheduler (224) may, under the control of the processor (120), cause the job service (e.g., application optimization) to be performed at the next execution cycle (e.g., after 24 hours) without rescheduling if the rescheduling operation for application optimization is repeated a specified number of times (e.g., three times).
[0104] In one embodiment, the runtime (230) may be a library or program of basic code used by a compiler or virtual machine to manage the program (140). The electronic device (101) may include ART (Android runtime) as the runtime (230).
[0105] In one embodiment, the runtime (230) is a runtime used by the application (146) and the system service, and can compile a dex file using the dex2oat tool to generate an oat file, and can directly use the oat file to execute the application (146) when executing it. The runtime (230) can perform AOT (ahead-of-time) compilation.
[0106] In one embodiment, an electronic device (101) to which an Android operating system is applied may support an execution environment called Android Runtime (hereinafter referred to as ART). ART may use a hybrid method. In one embodiment, ART uses a tool called dex2oat to compile a dex file of an application that can be executed in dalvik (Android virtual machine). The operating method may be specified by the setting value of a compiler filter, and the compiler filter may be set based on a profile according to a user's application usage pattern. In ART, application codes may be compiled according to the set compiler filter.
[0107] For example, in an electronic device (101) equipped with an Android operating system, the processor (120) can compile application codes to suit a runtime environment and convert them into executable codes (native codes). The codes can be compiled using an AOT (ahead-of-time) method, a JIT (just-in-time) method, or a hybrid method combining the AOT and JIT methods.
[0108] The electronic device (101), under the control of the processor (120), can convert and store second type instructions (e.g., source code, byte code, instructions readable by an interpreter and a virtual machine) included in the application (146) into first type instructions (native code) at the time of installing the application (146). For example, converting and storing second type instructions into first type instructions at the time of installing packages can be referred to as an AOT (ahead of time) method.
[0109] AOT compiles application code at the time of installation, converts it into executable code, stores it, and then reads the converted executable code directly at the time of application execution. Since AOT code is already converted into executable code upon installation, it can shorten the application execution time. However, it also requires a lot of installation time and storage space.
[0110] The JIT method compiles only the necessary codes at the appropriate time when executing an application. In the JIT method, the JIT compiler operates in an interpreter mode for loaded classes and, when repetitive execution is detected, operates appropriately to improve execution speed. The JIT method executes executable codes very quickly, and because caches are created in memory (130) by default, performance can be maximized when classes are repeatedly called. For example, some areas of the memory (130) include a JIT cache code area, and because the codes are executed from the JIT cache code through the JIT method, performance can be maximized. However, in the JIT method, because codes are compiled into executable codes during runtime, the installation time of the application is shortened, but the execution time of the application can be long. Furthermore, when the codes cached in the memory (130) are released and re-execution of the codes is detected, the time required to re-convert the codes can be delayed, which may cause delays in the operation of the application. For example, when re-execution of codes is detected, the codes stored in the JIT cache code included in the memory (130) are moved back to the memory (130), and when re-execution of codes is detected again, it takes time to read or re-convert the codes into the cache memory, which may cause a delay in the operation of the application.
[0111] The hybrid approach utilizes the Just-in-Time (JIT) method during application installation to shorten the application installation time and reduce the application's installation footprint. The hybrid approach stores a profile based on the user's application usage patterns through an interpreter. When execution conditions are met, the AOT background service module (240) starts, compiles the application in the background, generates executable code, and makes the executable code immediately available when the application is executed. For example, compiling within execution conditions may involve a hybrid approach (e.g., a combination of the AOT method and the JIT method).
[0112] In one embodiment, the runtime (230) may determine whether optimization is required for the application (146). For example, the runtime (230) may determine whether optimization is required for the application (146) based on a profile according to user patterns.
[0113] In one embodiment, the AOT background service module (240) is executed by the job scheduler (224) and can operate as a background service. The AOT background service module (240) can compile a dex file existing in an apk file, which is a package form of an application (146), using the dex2oat tool. The dex file compiled by the AOT background service module (240) can be generated as an oat file.
[0114] In one embodiment, the AOT background service module (240) can perform or stop optimization of an application based on an application optimization list based on a job scheduler (224).
[0115] In one embodiment, the package manager (221) or the AOT background service module (240) may, under the control of the processor (130), define and / or store an application optimization list for which application optimization is to be performed.
[0116] In one embodiment, the package manager (221) or the AOT background service module (240) may, under the control of the processor (120), create, define and / or store an application optimization list for which application optimization will be performed based on application-specific user profiles stored by the package manager (221).
[0117] In one embodiment, the package manager (221) or the AOT background service module (240) may exclude applications or packages without byte code from the list of applications for which application optimization is to be performed.
[0118] In one embodiment, the package manager (221) or the AOT background service module (240) may exclude applications or packages in a maximum power saving mode (e.g., hibernation) from the application optimization list for which application optimization is to be performed. For example, an application may be said to be in a hibernation state if it has not been used for a specified period of time (e.g., 90 days). For example, when an electronic device is in a hibernation state, it may perform an operation to reduce power consumption by not executing an application or package.
[0119] In one embodiment, the package manager (221) or the AOT background service module (240) may create, define, and / or store a list of applications or packages containing foreground activities and / or services that have been executed within a specified time period (e.g., 3 days) sorted in order of most recently executed.
[0120] FIG. 3 is a diagram illustrating a method of compiling an application (e.g., application (146)) according to one embodiment of the present disclosure and obtaining compiled packages.
[0121] Referring to FIG. 3, the electronic device (101) may compile an application (146) based on a job scheduler (224) and / or an AOT background service module (240) under the control of a processor (120) to obtain compiled packages (310). For example, the application (146) may include a second type of instructions, such as byte code. For example, the compiled packages (310) may include a first type of instructions, such as native code.
[0122] In one embodiment, the electronic device (101) may execute instructions of a first type under the control of the processor (120). For example, the instructions of the first type may include native code. For example, the instructions of the first type may be at least a portion of machine language and / or assembly language encoded in a binary format and contained in a binary file stored in the memory (130). For example, the instructions of the first type may include instructions generated by compiling instructions of the second type.
[0123] For example, the second type of instructions may be composed of source code and / or byte code. For example, the source code may include C language, JAVA language, and / or BASIC (beginner's all-purpose symbolic instruction code). However, the present invention is not limited thereto. For example, the second type of instructions may refer to instructions that are readable by an interpreter (230), which is software executed by the processor (120), and / or a virtual machine (e.g., a Java virtual machine (JVM)), such as byte code. The byte code may be an instruction having a specified length (e.g., 1 byte). Hereinafter, a package may refer to a set of the second type of instructions and a group of one or more files (or a single file in which the one or more files are compressed) stored in the memory (130) for executing an application.
[0124] FIG. 4 is a drawing for explaining the AOT method, JIT method, and / or hybrid method of the electronic device (101) of the present disclosure.
[0125] In one embodiment, the runtime (230) may be a library or program of basic code used by a compiler or virtual machine to manage the program (140). The electronic device (101) may include ART (Android runtime) as the runtime (230).
[0126] In one embodiment, the runtime (230) is a runtime used by applications (146) and system services, and can compile a dex file using the dex2oat tool to generate an oat file.
[0127] In one embodiment, the electronic device (101) may use an oat file when executing an application (146) under the control of the processor (120) in operation 401.
[0128] In one embodiment, the electronic device (101), under the control of the processor (120), in operation 403, the runtime (230) may perform ahead-of-time (AOT) compilation. The electronic device (101), under the control of the processor (120), in operation 405, may execute the application (146) by performing ahead-of-time (AOT) compilation.
[0129] When an application is first installed, converting and storing instructions of the second type into instructions of the first type can be called an AOT (ahead of time) method.
[0130] When installing an application for the first time, the electronic device (101) can use a dex file at operation 405 under the control of the processor (120) when installing the application. The electronic device (101) can, at operation 407 under the control of the processor (120), check whether the runtime (230) is installing the application for the first time. If the application is installed for the first time, the electronic device (101) can compile a dex file using a JIT compiler at operation 411 under the control of the processor (120).
[0131] Referring to operations 405, 407, 411, and 413, when the application is first installed, the electronic device (101) can execute the application (146) by compiling a dex file using a JIT compiler under the control of the processor (120).
[0132] If this is not the first installation of the application, the electronic device (101) can execute the dex file using an interpreter under the control of the processor (120) at operation 409.
[0133] The electronic device (101) can, under the control of the processor (120), in operation 409, store a profile according to the user's application usage pattern using a dex file interpreter.
[0134] After saving a profile according to the user's application usage pattern through an interpreter, the electronic device (101) can compile the application in the background and generate executable codes by starting the AOT background service module (240) when the execution conditions are met.
[0135] The hybrid method can shorten the installation time of an application and reduce the installation space of the application by using the JIT method when installing the application, and after saving a profile according to the user's application usage pattern through an interpreter, when the execution conditions are met, the AOT background service module (240) starts to compile the application in the background to generate executable codes, and when the application is executed, the executable codes can be used immediately.
[0136] FIG. 5 is a flowchart illustrating a method for optimizing an application of an electronic device (101) according to one embodiment of the present disclosure.
[0137] In one embodiment, the electronic device (101), under the control of the processor (120), in operation 501, may determine whether a state of the electronic device (101) corresponds to an application optimization execution condition.
[0138] In one embodiment, the electronic device (101) can manage background tasks to be performed under execution conditions based on a job scheduler (224) under the control of the processor (120) in operation 501.
[0139] In one embodiment, the electronic device (101) may, in operation 501, define and / or store information about execution conditions in job info based on the job scheduler (224) under the control of the processor (120).
[0140] In one embodiment, the execution condition may be a condition regarding the state and / or execution cycle of the electronic device (101) for the electronic device (101) to execute application optimization.
[0141] In one embodiment, the execution cycle may be one day (24 hours). For example, the electronic device (101), under the control of the processor (120), may determine that optimization execution should be performed according to the execution cycle when the execution cycle is set to one day.
[0142] In one embodiment, the state of the electronic device (101) may be a charging state of the electronic device (101) and / or an idle state of the electronic device (101). The charging state may include a state in which the electronic device (101) is being charged. For example, the electronic device (101) may determine, under the control of the processor (120), that optimization of the charging state and / or the idle state of the electronic device (101) should be performed.
[0143] In one embodiment, the electronic device (101) may determine that the electronic device (101) is in a charging state if, under the control of the processor (120), the electronic device (101) is in a state of receiving power from an external power source and charging the battery (189) in operation 501.
[0144] In one embodiment, the electronic device (101) may determine that the electronic device (101) is in an idle state when, under the control of the processor (120), the display (e.g., the display module (160)) of the electronic device (101) is turned off and a specified period of time (e.g., 31 minutes after turning off) has elapsed, in operation 501. However, the present invention is not limited thereto, and the idle state of the electronic device (101) may be unrelated to whether the display is on or off. For example, the electronic device (101) may determine that the electronic device (101) is in an idle state when, under the control of the processor (120), processes running in the electronic device (101) use resources below a certain level. For example, the idle state may include a state in which no interaction between the electronic device (101) and the user occurs for a specified period of time (e.g., 31 minutes). For example, the execution condition may include a state in which the battery (189) of the electronic device (101) is being charged by an external object and the display (e.g., the display module (160)) is off. For example, the idle state of the electronic device (101) may include a state in which a screen related to the idle state is displayed on the display (e.g., the display module (160)) based on the execution of an always-on-display (AOD) function.
[0145] In one embodiment, the electronic device (101) can generate an oat / art file under the control of the processor (120) when the conditions of the electronic device (101) being charging, being idle, and once a day, which are application optimization execution conditions, are satisfied.
[0146] In one embodiment, if the state of the electronic device (101) corresponds to an application optimization execution condition, the electronic device (101) may branch from operation 501 to operation 503.
[0147] In one embodiment, if the state of the electronic device (101) does not correspond to the application optimization execution condition, the application optimization operation of the electronic device (101) is terminated and the work being performed can be continued.
[0148] In one embodiment, the electronic device (101), under the control of the processor (120), in operation 503, may determine whether the power level of the battery (189) being charged is less than or equal to a specified power level.
[0149] In one embodiment, the electronic device (101) may, in operation 503, obtain information about the charging section of the battery (189) and / or information about the charging level of the battery (189) through the battery manager, which is a system service, under the control of the processor (120).
[0150] For example, the charging state of the electronic device (101) may be a state in which the electronic device (101) receives power from an external power source and charges the battery (189).
[0151] In one embodiment, when the electronic device (101) receives power from an external power source to charge the battery (189), the electronic device (101) may, in operation 503, determine, under the control of the processor (120), whether to charge the battery (189) to a level less than or equal to a specified level (e.g., 80% of the fully charged power) based on the power level when the battery (189) is fully charged.
[0152] In one embodiment, the electronic device (101), in operation 503, may, under the control of the processor (120), determine whether the power level of the battery (189) being charged is less than or equal to a specified power level each time optimization is performed based on a list of applications for which application optimization is to be performed.
[0153] In one embodiment, if the level of the battery (189) being charged is less than or equal to a specified level, the electronic device (101) may branch from operation 503 to operation 505.
[0154] In one embodiment, if the level of the battery (189) being charged exceeds a specified level, the electronic device (101) may branch from operation 503 to operation 513.
[0155] In one embodiment, the electronic device (101) may, in operation 505, generate a list of applications for which application optimization is to be performed under the control of the processor (120).
[0156] However, this is not limited thereto, and the electronic device (101) may pre-generate a list of applications for which application optimization will be performed. If the electronic device (101) pre-generates a list of applications for which application optimization will be performed, operation 505 may be omitted.
[0157] In one embodiment, the electronic device (101) may, in operation 505, create, define and / or store an application optimization list for performing application optimization based on application-specific user profiles stored by the package manager (221) under the control of the processor (120).
[0158] In one embodiment, the electronic device (101), under the control of the processor (120), in operation 505, may exclude applications or packages without byte code from the application optimization list for which application optimization is to be performed.
[0159] In one embodiment, the electronic device (101), in operation 505, under the control of the processor (120), may exclude applications or packages in a hibernation state from the application optimization list for which application optimization is to be performed.
[0160] In one embodiment, the electronic device (101) may, in operation 505, create, define and / or store a list of applications or packages containing foreground activities and / or services executed within a specified time period (e.g., 3 days) sorted in order of most recently executed, under the control of the processor (120).
[0161] In one embodiment, the electronic device (101) may, in operation 505, adjust the number of applications to be optimized based on the application optimization list under the control of the processor (120).
[0162] In one embodiment, before performing application optimization, if the temperature (e.g., surface temperature) of the electronic device (101) is below a specified temperature (e.g., 39° C.), the electronic device (101), in operation 505, may cause the AOT background service module (240) to perform optimization on applications in the list under the control of the processor (120).
[0163] In one embodiment, if the temperature (e.g., surface temperature) of the electronic device (101) exceeds a specified temperature (e.g., 39° C.), the electronic device (101), under the control of the processor (120), in operation 505, may cause the AOT background service module (240) to perform optimization only on a few (e.g., five) applications included at the top among the applications on the list.
[0164] In one embodiment, the electronic device (101) may, in operation 505, adjust the number of applications to be optimized based on the application optimization list according to the charging period of the battery (189) under the control of the processor (120).
[0165] For example, the charging section of the battery (189) may have a CC (constant current) section or a CV (constant voltage) section. In operation 303, the electronic device (101), under the control of the processor (120), may generate a list so that more applications can be optimized when the charging section of the battery (189) is in the CV (constant voltage) section than when it is in the CC (constant current) section.
[0166] In one embodiment, the electronic device (101) may, in operation 507, determine the temperature of the electronic device (101) under the control of the processor (120).
[0167] In one embodiment, the electronic device (101) may, in operation 507, under the control of the processor (120), check the temperature of the electronic device (101), information about the temperature, the temperature (e.g., surface temperature) of the electronic device (101), and / or the surface temperature of the battery (189).
[0168] The temperature or temperature (e.g., surface temperature) of the electronic device (101) can be measured based on a temperature sensor included in the electronic device (101).
[0169] In one embodiment, the electronic device (101) may, in operation 507, store information about the temperature (e.g., surface temperature) of the identified electronic device (101) in the memory (130) under the control of the processor (120).
[0170] In one embodiment, the electronic device (101) may, in operation 509, perform application optimization based on the application optimization list and the confirmed temperature under the control of the processor (120).
[0171] In one embodiment, the electronic device (101) may, in operation 509, sequentially perform application optimization based on the application optimization list and the confirmed temperature under the control of the processor (120).
[0172] For example, in operation 509, the electronic device (101) sequentially optimizes applications according to the ranking in the application optimization list under the control of the processor (120), and when application optimization is performed for one application, the electronic device (101) can branch from operation 509 to operation 511 to check whether application optimization is to be stopped.
[0173] In one embodiment, the electronic device (101) sequentially optimizes applications according to the order in the application optimization list to reduce heat generation of the electronic device (101) due to application optimization and to ensure stable battery (189) charging, and when application optimization is performed for one application, it can be checked whether application optimization is to be stopped.
[0174] In one embodiment, applications installed on the electronic device (101) in a hybrid manner (e.g., applications included in the application (146)) may have the codes of the application (146) compiled through an AOT daemon or an AOT background service module (240) under execution conditions to generate a compilation file (e.g., an oat file or an odex file). The runtime (230) may execute the applications using the compilation file. However, if there is an update (e.g., an over-the-air (OTA) update and / or a mainline update) of the operating system (142), the framework (220), the application (146), and / or the program (140), the compilation file may not be usable, and thus, it is necessary to compile the codes of the application (146) again through the AOT background service module (240). The operation of re-compiling and re-generating the codes of the application (146) through the AOT background service module (240) due to updates to the operating system (142), framework (220), application (146) and / or program (140) may be referred to as an application optimization and / or package optimization operation.
[0175] In one embodiment, the electronic device (101) may, in operation 511, determine, under the control of the processor (120), whether the state of the electronic device (101) corresponds to an application optimization stop condition.
[0176] In one embodiment, the stop condition may be a condition regarding the state of the electronic device (101) to stop the optimization of an application that the electronic device (101) is running.
[0177] If the state of the electronic device (101) corresponds to an application optimization stop condition, the electronic device (101) can branch from operation 511 to operation 513.
[0178] If the state of the electronic device (101) corresponds to the application optimization stop condition, the electronic device (101) can branch from operation 511 to operation 509 and perform optimization on an application that has not yet been optimized after an application that has been optimized on the application optimization list.
[0179] In one embodiment, the electronic device (101) may, at operation 513, stop the application optimization operation and perform a rescheduling operation under the control of the processor (120).
[0180] In one embodiment, the electronic device (101), in operation 513, under the control of the processor (120), if the rescheduling operation for application optimization is repeated a specified number of times (e.g., 3 times) or more, may perform application optimization at the next execution cycle (e.g., after 24 hours) without rescheduling.
[0181] In one embodiment, the interruption condition may be that the electronic device (101) is out of a charging state or out of an idle state.
[0182] In one embodiment, the interruption condition may be that the electronic device (101) has been optimizing the application for a specified period of time (e.g., 10 minutes).
[0183] In one embodiment, the stop condition may be a state in which the battery (189) is being charged above a specified level (e.g., 80% of the fully charged power) relative to its power level when fully charged.
[0184] In one embodiment, the interrupt condition may be that the current temperature of the electronic device (101) exceeds a specified temperature (e.g., 40°C). The temperature or surface temperature of the electronic device (101) may be measured based on a temperature sensor included in the electronic device (101). The current temperature of the electronic device (101) may be a temperature (e.g., surface temperature) measured while performing application optimization of the electronic device (101).
[0185] Referring to Table 1, the interruption condition may be a state where the current temperature of the electronic device (101) exceeds a specified range from the temperature checked before performing application optimization. The checked temperature may be the temperature (e.g., surface temperature) of the electronic device (101).
[0186] In one embodiment, the interruption condition may be a state where the available space in the memory (130) of the electronic device (101) is less than a specified size (e.g., 5% of the total memory size).
[0187] In one embodiment, the electronic device (101) may, in operation 311, determine, under the control of the processor (120), whether the current temperature of the electronic device (101) is lower than a specified temperature (e.g., 40° C.).
[0188] In one embodiment, if the current temperature of the electronic device (101) is lower than a specified temperature (e.g., 40° C.), the electronic device (101) may sequentially perform application optimization based on the application optimization list and the confirmed temperature under the control of the processor (120).
[0189] In one embodiment, if the current temperature of the electronic device (101) exceeds a specified temperature (e.g., 40° C.), the electronic device (101) may, under the control of the processor (120), stop the application optimization operation and perform a rescheduling operation.
[0190] In one embodiment, the electronic device (101) may, in operation 311, determine, under the control of the processor (120), whether the current temperature of the electronic device (101) is within a specified range from a temperature checked before performing application optimization.
[0191] In one embodiment, if the current temperature of the electronic device (101) is within a specified range from the temperature confirmed before performing application optimization, the electronic device (101) can sequentially perform application optimization based on the application optimization list and the confirmed temperature under the control of the processor (120).
[0192] In one embodiment, if the current temperature of the electronic device (101) exceeds a specified range from the temperature checked before performing application optimization, the electronic device (101) may, under the control of the processor (120), stop the application optimization operation and perform a rescheduling operation.
[0193] Referring to Table 1, if the temperature of the electronic device (101) confirmed before performing application optimization is 36°C, the specified range may be 1.0°C. If the current temperature of the electronic device (101) after performing application optimization exceeds 37°C, the electronic device (101) may stop application optimization under the control of the processor (120).
[0194] Referring to Table 1, if the temperature of the electronic device (101) confirmed before performing application optimization is 36.5°C, the specified range may be 0.8°C. If the current temperature of the electronic device (101) after performing application optimization exceeds 37.3°C, the electronic device (101) may stop application optimization under the control of the processor (120).
[0195] Referring to Table 1, if the temperature of the electronic device (101) confirmed before performing application optimization is 37.5°C, the specified range may be 0.5°C. If the current temperature of the electronic device (101) after performing application optimization exceeds 38°C, the electronic device (101) may stop application optimization under the control of the processor (120).
[0196] Referring to Table 1, if the temperature of the electronic device (101) confirmed before performing application optimization is 38.5°C, the specified range may be 0.2°C. If the current temperature of the electronic device (101) after performing application optimization exceeds 38.7°C, the electronic device (101) may stop application optimization under the control of the processor (120).
[0197] Referring to Table 1, if the temperature of the electronic device (101) confirmed before performing application optimization is 39.5°C, the specified range may be 40°C. If the current temperature of the electronic device (101) after performing application optimization exceeds 40°C, the electronic device (101) may stop application optimization under the control of the processor (120).
[0198] In one embodiment, the electronic device (101) may include at least one processor (120) including a processing circuit, a battery (189), and a memory (130).
[0199] In one embodiment, the instructions stored in the memory (130), when individually or collectively executed by at least one processor (120), cause the electronic device (101) to: check whether the state of the electronic device (101) corresponds to an application optimization execution condition; check whether the power level of the battery (189) being charged is less than or equal to a specified power level; if the power level of the battery (189) being charged is less than or equal to the specified power level, generate a list of applications for which application optimization is to be executed; check information about the temperature of the electronic device (101); and control to execute application optimization based on the list and the temperature; the operation of executing application optimization based on the list may include the operation of adjusting the number of applications to be optimized; and the operation of executing application optimization based on the temperature may include the operation of controlling to execute a rescheduling operation if the current temperature of the electronic device exceeds the specified temperature.
[0200] In one embodiment, instructions stored in memory (130), when individually or collectively executed by at least one processor (120), may cause the electronic device (101) to adjust the number of applications to be optimized based on the list, depending on the charge interval of the battery (189).
[0201] In one embodiment, the instructions stored in the memory (130), when individually or collectively executed by at least one processor (120), may cause the electronic device (101) to generate a list of applications, including foreground activities and / or services, executed within a specified time period, sorted in order of most recently executed.
[0202] In one embodiment, instructions stored in memory (130), when individually or collectively executed by at least one processor (120), may cause the electronic device (101) to perform rescheduling if the power level of the battery (189) being charged exceeds a specified power level.
[0203] In one embodiment, instructions stored in memory (130), when individually or collectively executed by at least one processor (120), may cause the electronic device (101) to perform optimization operations for the entire application when the power level of the battery (189) being charged exceeds a specified power level.
[0204] In one embodiment, the application optimization execution conditions may be that the electronic device (101) is in a charging state and that the electronic device (101) is in an idle state.
[0205] In one embodiment, the instructions stored in the memory (130), when individually or collectively executed by at least one processor (120), may control the electronic device (101) to sequentially execute application optimization based on the list and temperature, determine whether the state of the electronic device (101) corresponds to an application optimization interruption condition, and execute rescheduling if the state of the electronic device (101) corresponds to the interruption condition.
[0206] In one embodiment, instructions stored in memory (130), when individually or collectively executed by at least one processor (120), may control the electronic device (101) to perform a rescheduling operation when the electronic device (101) is out of a charging state or out of an idle state.
[0207] In one embodiment, the instructions stored in the memory (130), when individually or collectively executed by at least one processor (120), may control the electronic device (101) to perform a rescheduling operation if the current temperature of the electronic device (101) exceeds a specified temperature after performing application optimization for at least one application based on the list.
[0208] In one embodiment, instructions stored in memory (130), when individually or collectively executed by at least one processor (120), may control the electronic device (101) to perform a rescheduling operation if the current temperature of the electronic device (101) exceeds a specified range from a temperature determined before performing application optimization.
[0209] In one embodiment, a method for optimizing an application of an electronic device (101) includes an operation of checking whether a state of the electronic device (101) corresponds to an application optimization execution condition, an operation of checking whether a power level of a battery (189) being charged is less than or equal to a specified power level, an operation of generating a list of applications for which application optimization is to be executed if the power level of the battery (189) being charged is less than or equal to the specified power level, an operation of checking information about a temperature of the electronic device (101), and an operation of executing application optimization based on the list and the temperature, wherein the operation of executing application optimization based on the list includes an operation of adjusting the number of applications to be optimized, and the operation of executing application optimization based on the temperature may include an operation of controlling to execute a rescheduling operation if a current temperature of the electronic device exceeds a specified temperature.
[0210] In one embodiment, a method of optimizing an application of an electronic device (101) may include adjusting the number of applications to be optimized based on a list, depending on a charging period of a battery (189).
[0211] In one embodiment, a method of optimizing an application of an electronic device (101) may include generating a list of applications that include foreground activities and / or services executed within a specified period of time, sorted by most recently executed order.
[0212] In one embodiment, a method of optimizing an application of an electronic device (101) may include performing rescheduling when a power level of a battery (189) being charged exceeds a specified power level.
[0213] In one embodiment, a method of optimizing an application of an electronic device (101) may include performing an optimization operation for the entire application when the power level of a battery (189) being charged exceeds a specified power level.
[0214] In one embodiment, a method for optimizing an application of an electronic device (101) may include sequentially executing application optimization based on a list and a temperature, checking whether a state of the electronic device (101) corresponds to an application optimization stop condition, and executing rescheduling if the state of the electronic device (101) corresponds to the stop condition.
[0215] In one embodiment, a method of optimizing an application of an electronic device (101) may include performing a rescheduling operation when the electronic device (101) is out of a charging state or out of an idle state.
[0216] In one embodiment, a method of optimizing an application of an electronic device (101) may include performing application optimization for at least one application based on a list, and then, if a current temperature of the electronic device (101) exceeds a specified temperature, performing a rescheduling operation.
[0217] In one embodiment, a method of optimizing an application of an electronic device (101) may include executing a rescheduling operation if the current temperature of the electronic device (101) exceeds a specified range from a temperature determined before performing application optimization.
[0218] In one embodiment, an electronic device-readable recording medium storing instructions may include instructions that, when executed in an electronic device, cause the electronic device to perform an operation of checking whether a state of the electronic device (101) corresponds to an application optimization execution condition, an operation of checking whether a power level of a battery (189) being charged is less than or equal to a specified power level, an operation of generating a list of applications for which application optimization is to be executed if the power level of the battery (189) being charged is less than or equal to the specified power level, an operation of checking information about a temperature of the electronic device (101), and an operation of executing application optimization based on the list and the temperature, wherein the operation of executing application optimization based on the list includes an operation of adjusting the number of applications to be optimized, and the operation of executing application optimization based on the temperature may cause the electronic device to execute an operation of controlling a rescheduling operation to be executed if a current temperature of the electronic device exceeds a specified temperature.
[0219] 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.
[0220] 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.
[0221] 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).
[0222] 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.
[0223] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0224] 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 electronic devices, At least one processor comprising a processing circuit; Battery; and Instructions stored in memory, when individually or collectively executed by said at least one processor, cause the electronic device to: Check whether the state of the above electronic device corresponds to the application optimization execution conditions, Check whether the power level of the above battery being charged is less than or equal to the specified power level, If the power level of the above battery being charged is less than or equal to the specified power level, a list of applications for which application optimization will be executed is generated. Check the temperature information of the above electronic device, Based on the above list and the above temperature, control is made to execute application optimization, The action of performing application optimization based on the above list includes the action of adjusting the number of applications to be optimized. An electronic device comprising an action for executing application optimization based on the above temperature, the action for controlling executing a rescheduling operation if the current temperature of the electronic device exceeds a specified temperature.
2. In paragraph 1, The above instructions, when individually or collectively executed by the at least one processor, cause the electronic device to: An electronic device that adjusts the number of applications to be optimized based on the list, depending on the charging section of the battery.
3. In paragraph 1, The above instructions, when individually or collectively executed by the at least one processor, cause the electronic device to: An electronic device that controls the generation of a list of applications containing foreground activities and / or services executed within a specified period of time, sorted in order of most recent execution.
4. In paragraph 1, The above instructions, when individually or collectively executed by the at least one processor, cause the electronic device to perform rescheduling if the power level of the battery being charged exceeds a specified power level. An electronic device that controls the execution of optimization actions for the entire application when the power level of the battery being charged exceeds a specified power level.
5. In paragraph 1, The above application optimization execution conditions are An electronic device wherein said electronic device is in a charging state and said electronic device is in an idle state.
6. In paragraph 1, The above instructions, when individually or collectively executed by the at least one processor, cause the electronic device to sequentially execute application optimizations based on the list and the temperature, Check whether the state of the above electronic device corresponds to the application optimization stop condition, If the state of the above electronic device corresponds to the above interruption condition, control is made to execute rescheduling, If the electronic device is out of a charging state or out of an idle state, control is made to execute a rescheduling operation. An electronic device that controls to execute a rescheduling operation if the current temperature of the electronic device exceeds a specified temperature after performing application optimization for at least one application based on the above list.
7. In paragraph 6, The above instructions, when individually or collectively executed by the processor, cause the electronic device to: An electronic device that controls to execute a rescheduling operation when the current temperature of the electronic device exceeds a specified range from the temperature checked before performing application optimization.
8. A method for optimizing the application of an electronic device, An operation for determining whether the state of the above electronic device corresponds to the application optimization execution conditions; An action to check whether the power level of the battery being charged is less than or equal to a specified power level; An action to generate a list of applications for which application optimization is to be executed if the power level of the battery being charged is less than or equal to a specified power level; An operation of checking information regarding the temperature of the electronic device; and Based on the above list and the above temperature, it includes an action to perform application optimization, The action of performing application optimization based on the above list includes the action of adjusting the number of applications to be optimized. A method for executing application optimization based on the above temperature, wherein the operation includes controlling to execute a rescheduling operation if the current temperature of the electronic device exceeds a specified temperature.
9. In paragraph 8, A method including an operation of adjusting the number of applications to be optimized based on the list according to the charging section of the battery.
10. In paragraph 8, A method comprising the action of generating a list of applications that include foreground activities and / or services that were executed within a specified time period, sorted in order of most recently executed.
11. In paragraph 8, An operation for executing rescheduling when the power level of the battery being charged exceeds a specified power level; and A method comprising optimizing actions for the entire application when the power level of said battery being charged exceeds a specified power level.
12. In paragraph 8, The above application optimization execution conditions are A method wherein said electronic device is in a charging state and said electronic device is in an idle state.
13. In paragraph 8, An action to sequentially execute application optimization based on the above list and the above temperature; An action to determine whether the state of the above electronic device corresponds to an application optimization stop condition; If the state of the electronic device corresponds to the interruption condition, an operation of executing rescheduling; and An operation for executing a rescheduling operation when the electronic device is out of a charging state or out of an idle state, The action of performing application optimization based on the above list includes the action of adjusting the number of applications to be optimized. After performing application optimization for at least one application based on the above list, if the current temperature of the electronic device exceeds a specified temperature, an action is included for executing a rescheduling operation. A method for executing application optimization based on the above temperature, wherein the operation includes controlling to execute a rescheduling operation if the current temperature of the electronic device exceeds a specified temperature.
14. In paragraph 13, A method comprising: executing a rescheduling operation if the current temperature of the electronic device exceeds a specified range from a temperature determined before performing application optimization.
15. An electronic device-readable recording medium storing instructions, The above instructions, when executed on an electronic device, cause the electronic device to: An operation for determining whether the state of the above electronic device corresponds to the application optimization execution conditions; An action to check whether the power level of the battery being charged is less than or equal to a specified power level; An action to generate a list of applications for which application optimization is to be executed if the power level of the battery being charged is less than or equal to a specified power level; An operation of checking information regarding the temperature of the electronic device; and Based on the above list and the above temperature, it includes an action to perform application optimization, The action of performing application optimization based on the above list includes the action of adjusting the number of applications to be optimized. An electronic device-readable recording medium that executes an operation for executing application optimization based on the above temperature, the operation controlling execution of a rescheduling operation when the current temperature of the electronic device exceeds a specified temperature.
Citation Information
Patent Citations
Application program processing method and mobile terminal
CN107861730A
Software updating method, electronic equipment and medium
CN111240729A
Application program pre-compiling method and device and electronic equipment
CN113031955A
Method and apparatus, program and recording medium for processing application installation package
KR1020160150100A
Binder comprising copolymer composition, anode for secondary battery comprising the same, and secondary battery comprising the anode
KR102660592B1