Application optimization method and electronic device supporting the application optimization method

By compiling and selecting compilation filters based on user input, the problem of performance degradation during application installation and reset is solved, and application optimization and performance improvements are achieved through user-controlled.

CN114450662BActive Publication Date: 2025-04-11SAMSUNG ELECTRONICS CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080068717.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-10-18
Filing Date
2020-10-16
Publication Date
2025-04-11
Estimated Expiration
2040-10-16

AI Technical Summary

Technical Problem

When an application is installed over the air or reset to factory settings, the application's compilation filter may be configured to a specific value, resulting in a degradation of the application's overall performance and the application code can only be compiled under certain conditions, resulting in performance optimization delays.

Method used

By compiling the application code based on user input, the user allows the user to select a compilation filter, thereby optimizing application performance at the time the user expects and providing information about the background compiled application.

Benefits of technology

It realizes the implementation of application optimization at the time expected by the user, prioritizes the optimization of the application expected by the user, and improves the user's transparency to the application compilation state.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114450662B_ABST
    Figure CN114450662B_ABST
Patent Text Reader

Abstract

An electronic device and a method are disclosed. The electronic device includes an input device, a display, a memory, and a processor. The processor implements the method, and the method includes: determining by at least one processor whether a specified condition is satisfied; based on determining that the specified condition is satisfied, displaying a list of applications installed in the memory of the electronic device on the display of the electronic device; detecting a first input by selecting an input device of at least one application from the list; and compiling the selected at least one application.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Certain embodiments of the present disclosure relate to application optimization techniques. Background Art

[0002] With the development of computing systems, various applications (or "apps") running in electronic devices such as smart phones are being generated. These applications can be implemented with multiple lines of code to achieve specific functions, and can be packaged and distributed. When the application is installed on an electronic device, the code written in a programming language, etc., can be converted into a format supported by the platform of the electronic device, and the converted code can be used as an instruction set to provide the function. For example, in an electronic device that uses the Android operating system (OS), the application code can be compiled according to the runtime environment and converted into native code that can run in the Android OS.

[0003] Methods of compiling codes may include an ahead-of-time (AOT) method, a just-in-time (JIT) method, and a hybrid method in which the AOT method and the JIT method have been used in combination.

[0004] The AOT method is to compile the code when installing the application, convert the code into executable code, and then directly read the converted executable code when the application is executed. In the AOT method, since the code has been converted into executable code when the application is installed, the time taken to execute the application may be shortened, but installing the application may take extra time and may require a large amount of storage space.

[0005] When executing an application, the JIT method compiles the necessary code parts at the appropriate time. In the JIT method, when repeated execution is detected when operating on the loaded class in the code in the interpreter method, the JIT compiler can be operated appropriately to increase the execution speed. In other words, the execution time of the executed code is very fast, and the memory is cached fundamentally, so the performance can be maximized when the class is repeatedly called. However, in the JIT method, since the code is compiled at runtime, although the installation time of the application is reduced, the time spent executing the application may increase. In addition, when the code cached in the memory is released and executed again, it takes extra time to reconvert the code, resulting in delays in the application operation.

[0006] When certain conditions are met, the hybrid approach can shorten the application installation time and reduce the space occupied by the application installation by using the JIT approach when the application is installed, and by using the job scheduler to simulate the AOT background daemon process and compile in the background to generate execution code. These steps can be performed after the interpreter stores the profile according to the historical usage pattern, and the execution code can be used directly when the application is executed, thereby shortening the execution time.

[0007] At the same time, with the advent of the latest iteration of the Android operating system, an execution environment called Android Runtime (hereinafter referred to as ART) has been supported. ART can use a hybrid approach. In ART, the Dalvik executable (DEX) file (i.e., code set) of the application is compiled using a tool called dex2oat. In this case, the operation method can be specified by the configuration value of the compilation filter, which can be configured in turn based on a user profile indicating historical usage patterns. That is, in ART, the application code can be compiled according to the compilation filter, which is configured based on the historical usage pattern.

[0008] The above information is provided as background information only to assist with an understanding of the present disclosure. No determination has been made, and no assertion is made, as to whether any of the above might be applicable as prior art with respect to the present disclosure. Summary of the invention

[0009] Technical issues

[0010] When an application is installed over the air (OTA) or when configuration values ​​are reinitialized by resetting to factory settings, the compile filters of the application may be configured with specific values, and the overall performance of the application including the execution of the application may be negatively affected. In addition, in the hybrid approach, since the code of the application can be compiled only when a specific condition (e.g., a charging state, an idle state, or a state reached at a specified time such as a specific time of day) is met, there is no choice but to wait for the specific condition to be met and then compile to detect whether the performance of the application needs to be improved.

[0011] Certain embodiments of the present disclosure may provide a method for optimizing an application by compiling a code of the application based on a user input, and an electronic device supporting the method.

[0012] Solution to the problem

[0013] According to a specific embodiment, the electronic device may include an input device, a display, a memory, and a processor operably connected to the input device, the display, and the memory, wherein the processor is configured to: determine that a specified condition is satisfied; based on determining that the specified condition is satisfied, display a list of applications installed in the memory on the display; detect a first input inputted through the input device to select at least one application from the list; and compile the selected at least one application.

[0014] In addition, according to various embodiments, the application optimization method of an electronic device may include: determining, by at least one processor, whether a specified condition is satisfied; based on determining that the specified condition is satisfied, displaying a list of applications installed in the memory of the electronic device on a display of the electronic device; detecting a first input inputted through an input device to select at least one application from the list; and compiling at least one selected application.

[0015] Advantageous Effects of the Invention

[0016] According to certain embodiments, by compiling application code based on user input, application optimization may be performed at a time desired by the user.

[0017] Furthermore, according to certain embodiments, by compiling application code according to a compilation filter selected based on user input, applications desired by the user may be preferentially optimized.

[0018] Furthermore, according to certain embodiments, information about an application being compiled in the background is provided to the user so that the user can easily recognize the compilation status of the application.

[0019] Besides this, various effects which can be directly or indirectly recognized through this document can also be provided. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] The above and other aspects, features and advantages of certain embodiments of the present disclosure will become more apparent from the following description in conjunction with the accompanying drawings, in which:

[0021] Figure 1 is a block diagram of an electronic device in a network environment according to certain embodiments;

[0022] Figure 2 is a block diagram of an electronic device related to application optimization according to an embodiment;

[0023] Figure 3 is a diagram illustrating a compiled filter of an application according to an embodiment;

[0024] Figure 4 is a diagram illustrating a method of optimizing an application according to an embodiment;

[0025] Figure 5 is a diagram for describing a method of performing a configuration application for application optimization according to an embodiment;

[0026] Figure 6 is a diagram illustrating a method of applying a configuration value for application optimization when a terminal is initialized according to an embodiment;

[0027] Figure 7 is a diagram illustrating a method of optimizing an application based on user input according to an embodiment;

[0028] Figure 8 is a diagram for describing a method for limiting compilation of an application based on a user input according to an embodiment;

[0029] Fig. 9 is a diagram for explaining a method of displaying a notification object for application optimization according to an embodiment;

[0030] FIG. 10A to FIG. 10D is a diagram for explaining an execution screen of a configuration application for application optimization according to an embodiment.

[0031] In conjunction with the description of the drawings, the same or similar reference numerals may be used to designate the same or similar components. DETAILED DESCRIPTION

[0032] As described below, specific embodiments of the present disclosure will be described with reference to the accompanying drawings. For ease of explanation, components shown in the accompanying drawings may be enlarged or reduced, and the present disclosure is not necessarily limited to what is shown.

[0033] Figure 1 is a block diagram illustrating an electronic device 101 in a network environment 100 according to certain embodiments. Figure 1, the electronic device 101 in the network environment 100 may communicate with the electronic device 102 via the first network 198 (e.g., a short-range wireless communication network), or communicate with the electronic device 104 or the server 108 via the second network 199 (e.g., a long-range wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 via the server 108. According to an embodiment, the electronic device 101 may include a processor 120, a memory 130, an input module 150, a sound 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 user identification module (SIM) 196, or an antenna module 197. In some embodiments, at least one of the above components (e.g., the connection terminal 178) may be omitted from the electronic device 101, or one or more other components may be added to the electronic device 101. In some embodiments, some of the above-described components (eg, sensor module 176, camera module 180, or antenna module 197) may be implemented as a single integrated circuit.

[0034] The processor 120 may run, for example, software (e.g., program 140) to control at least one other component (e.g., hardware component or software component) of the electronic device 101 connected to the processor 120, and may perform various data processing or calculations. According to an embodiment, as at least part of the above-mentioned data processing or calculation, the processor 120 may store a command or data received from another component (e.g., sensor module 176 or communication module 190) in the volatile memory 132, process the command or data stored in the volatile memory 132, and store the result data in the non-volatile memory 134. According to an embodiment, the processor 120 may include a main processor 121 (e.g., a central processing unit (CPU) or an application processor (AP)) or an auxiliary processor 123 (e.g., a graphics processing unit (GPU), a neural processing unit (NPU), an image signal processor (ISP), a sensor hub processor, or a communication processor (CP)) that is independent of or combined with the main processor 121 in operation. For example, if the electronic device 101 includes a main processor 121 and an auxiliary processor 123, the auxiliary processor 123 may be adapted to consume less power than the main processor 121, or adapted to be dedicated to a specific function. The auxiliary processor 123 may be implemented separately from the main processor 121, or as part of the main processor 121.

[0035] When the main processor 121 is in an inactive (e.g., sleep) state, the auxiliary processor 123 (rather than the main processor 121) may control at least some of the functions or states related to at least one component among the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190), or when the main processor 121 is in an active state (e.g., running an application), the auxiliary processor 123 may control at least some of the functions or states related to at least one component among the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190) together with the main processor 121. According to an embodiment, the auxiliary processor 123 (e.g., an image signal processor or a communication processor) may be implemented as part of another component (e.g., a camera module 180 or a communication module 190) that is functionally related to the auxiliary processor 123. According to an embodiment, the auxiliary processor 123 (e.g., a neural network processing device) may include a hardware structure dedicated to processing an artificial intelligence model. The artificial intelligence model may be created through machine learning. For example, such learning may be performed in the electronic device 101 where the artificial intelligence is executed, or such learning may be performed by a separate server (e.g., server 108). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the above examples. The artificial intelligence model may include multiple artificial neural network layers. The artificial neural network may be 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), or a deep Q network, or a combination of at least two of these elements, but is not limited to the above examples. In addition to the hardware structure, the artificial intelligence model may additionally or optionally include a software structure.

[0036] The memory 130 may store various data used by at least one component of the electronic device 101 (e.g., the processor 120 or the sensor module 176). The various data may include, for example, software (e.g., the program 140) and input data or output data for commands related thereto. The memory 130 may include a volatile memory 132 or a nonvolatile memory 134.

[0037] The program 140 may be stored as software in the memory 130 , and may include, for example, an operating system (OS) 142 , middleware 144 , or applications 146 .

[0038] The input module 150 may receive commands or data to be used by other components (e.g., the processor 120) of the electronic device 101 from outside (e.g., a user) of the electronic device 101. The input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus).

[0039] The sound output module 155 can output sound signals to the outside of the electronic device 101. The sound output module 155 may include, for example, a speaker or a receiver. The speaker can be used for general purposes such as playing multimedia or playing records. The receiver can be used for incoming calls. Depending on the embodiment, the receiver can be implemented as a separate part from the speaker, or as a part of the speaker.

[0040] The display module 160 may visually provide information to the outside of the electronic device 101 (e.g., a user). The display device 160 may include, for example, a display, a holographic device, or a projector, and a control circuit for controlling a corresponding one of the display, the holographic device, and the projector. According to an embodiment, the display module 160 may include a touch sensor adapted to detect a touch or a pressure sensor adapted to measure the strength of a force caused by a touch.

[0041] The audio module 170 may convert sound into an electrical signal, or vice versa. According to an embodiment, the audio module 170 may obtain sound via the input module 150, or output sound via the sound output module 155 or an external electronic device (e.g., the electronic device 102) (speaker or earphone) directly or wirelessly connected to the electronic device 101.

[0042] The sensor module 176 may detect an operating state (e.g., power or temperature) of the electronic device 101 or an environmental state (e.g., a state of a user) outside the electronic device 101, and then generate an electrical signal or data value corresponding to the detected state. According to an embodiment, the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, an atmospheric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illumination sensor.

[0043] The interface 177 may support one or more specific protocols to be used to connect the electronic device 101 directly (e.g., wired) or wirelessly to an external electronic device (e.g., the electronic device 102). According to an embodiment, the interface 177 may include, for example, a high-definition multimedia interface (HDMI), a universal serial bus (USB) interface, a secure digital (SD) card interface, or an audio interface.

[0044] The connection end 178 may include a connector, wherein the electronic device 101 can be physically connected to an external electronic device (e.g., the electronic device 102) via the connector. According to an embodiment, the connection end 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0045] The haptic module 179 may convert the electrical signal into mechanical stimulation (eg, vibration or motion) or electrical stimulation that can be recognized by the user via his sense of touch or kinesthetic sense. According to an embodiment, the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulator.

[0046] The camera module 180 may capture still images or moving images. According to an embodiment, the camera module 180 may include one or more lenses, an image sensor, an image signal processor, or a flash.

[0047] The power management module 188 may manage power supply to the electronic device 101. According to an embodiment, the power management module 188 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).

[0048] The battery 189 may power at least one component of the electronic device 101. According to an embodiment, the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0049] The communication module 190 may support establishing 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 perform communication via the established communication channel. The communication module 190 may include one or more communication processors capable of operating independently from the processor 120 (e.g., an application processor (AP)) and supporting direct (e.g., wired) communication or wireless communication. According to an 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 (PLC) module). A corresponding one of these communication modules may communicate via a first network 198 (e.g., a short-range communication network such as Bluetooth TM), Wireless Fidelity (Wi-Fi) Direct or Infrared Data Association (IrDA), etc.) or a second network 199 (for example, a long-distance communication network, such as a traditional cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (for example, a LAN or a wide area network (WAN)))) to communicate with an external electronic device. These various types of communication modules can be implemented as a single component (for example, a single chip), or these various types of communication modules can be implemented as multiple components separated from each other (for example, multiple chips). The wireless communication module 192 can identify or authenticate the electronic device 101 in a communication network (such as a first network 198 or a second network 199, etc.) by using user information (for example, an International Mobile Subscriber Identity (IMSI)) stored in the user identification module 196.

[0050] The wireless communication module 192 can support 5G networks evolved from 4G networks and next-generation communication technologies (e.g., new radio (NR) access technologies). NR access technologies can support enhanced mobile broadband (eMBB), massive machine type communications (mMTC), or ultra-reliable low latency communications (URLLC). The wireless communication module 192 can support, for example, high frequency bands (e.g., millimeter wave bands) to achieve, for example, high data rates. The wireless communication module 192 can support various technologies for ensuring performance in high frequency bands, such as beamforming, massive multiple input multiple output (MIMO), full dimensional MIMO (FD-MIMO), array antennas, analog beamforming, or massive antennas. The wireless communication module 192 can support various requirements defined in the electronic device 101, an external electronic device (e.g., electronic device 104), or a network system (e.g., a second network 199). According to an embodiment, the wireless communication module 192 may support a peak data rate for implementing eMBB (e.g., 20 Gbps or greater), loss coverage for implementing mMTC (e.g., 164 dB or less), or U-plane delay for implementing URLLC (e.g., 0.5 ms or less for each of the downlink (DL) and uplink (UL), or 1 ms or less for a round trip).

[0051] The antenna module 197 may transmit a signal or power to the outside of the electronic device 101 (e.g., an external electronic device) or receive a signal or power from the outside of the electronic device 101 (e.g., an external electronic device). According to an embodiment, the antenna module 197 may include an antenna including a radiating element, and the radiating element is formed of a conductive material or a conductive pattern formed in a substrate (e.g., a PCB) or formed on a substrate. According to an 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 scheme used in a communication network (such as the first network 198 or the second network 199) may be selected from the plurality of antennas by, for example, the communication module 190 (e.g., the wireless communication module 192). A signal or power may then be transmitted or received between the communication module 190 and the external electronic device via the selected at least one antenna. According to an embodiment, another component (e.g., a radio frequency integrated circuit (RFIC)) other than the radiating element may be additionally formed as a part of the antenna module 197.

[0052] According to a specific embodiment, the antenna module 197 may implement a millimeter wave antenna module. According to an embodiment, the millimeter wave antenna module may include a printed circuit board, a radio frequency integrated circuit (RFIC), and a plurality of antennas (e.g., array antennas), wherein the RFIC is disposed on a first surface (e.g., bottom surface) of the printed circuit board, or adjacent to the first surface (e.g., bottom surface) of the printed circuit board, and is capable of supporting a designated high frequency band (e.g., millimeter wave band), and the plurality of antennas are disposed on a second surface (e.g., top surface or side surface) of the printed circuit board, or adjacent to the second surface (e.g., top surface or side surface) of the printed circuit board, and are capable of transmitting or receiving signals in the designated high frequency band.

[0053] At least some of the above components may be connected to each other via an inter-peripheral communication scheme (e.g., a bus, general purpose input output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and communicatively transmit signals (e.g., commands or data) therebetween.

[0054] According to an embodiment, a command or data may be sent or received between the electronic device 101 and the external electronic device 104 via the server 108 connected to the second network 199. Each of the electronic device 102 or the electronic device 104 may be a device of the same type as the electronic device 101, or a device of a different type from the electronic device 101. According to an embodiment, all or some operations to be executed in the electronic device 101 may be executed in one or more of the external electronic device 102, the external electronic device 104, or the server 108. For example, if the electronic device 101 should automatically execute a function or service or should execute a function or service in response to a request from a user or another device, the electronic device 101 may request the one or more external electronic devices to execute at least part of the function or service instead of the electronic device 101 executing the function or service, or the electronic device 101 may request the one or more external electronic devices to execute at least part of the function or service in addition to executing the function or service. The one or more external electronic devices receiving the request may execute at least part of the function or service requested, or execute another function or another service related to the request, and transmit the result of the execution to the electronic device 101. The electronic device 101 may provide the result as at least a partial reply to the request in the case of further processing the result or in the case of not further processing the result. To this end, cloud computing technology, distributed computing technology, mobile edge computing (MEC) technology or client-server computing technology, for example, may be used. The electronic device 101 may use, for example, distributed computing or mobile edge computing to provide ultra-low latency services. In another embodiment, the external electronic device 104 may include an Internet of Things (IoT) device. The server 108 may be an intelligent server using machine learning and / or neural networks. According to an embodiment, the external electronic device 104 or the server 108 may be included in the second network 199. The electronic device 101 may be applied to intelligent services (e.g., smart homes, smart cities, smart cars or health care) based on 5G communication technology or IoT-related technologies.

[0055] Figure 2 is a block diagram of an electronic device related to application optimization according to an embodiment, and Figure 3 is a diagram illustrating an applied compilation filter according to an embodiment.

[0056] In an electronic device (e.g., electronic device 101) to which the Android operating system is applied, the ART 215 execution environment may be supported, and ART 215 may use a hybrid method combining the AOT method with the JIT method as a method for compiling the code of the application 231. In addition, ART 215 uses the dex2oat tool to compile the DEX file of the application 231, and the dex2oat tool may specify an operation method according to a configuration value of the compilation filter 300. At this time, since the compilation filter 300 is configured based on a configuration file according to a user's usage pattern, in ART 215, the code of the application 231 may be compiled according to the compilation filter 300, which is configured based on a configuration file according to a user's usage pattern.

[0057] However, when the application 231 is installed through OTA or the configuration value is initialized through factory initialization, the compilation filter 300 of the application 231 is configured to a specific value, so the overall performance of the application 231 may be reduced. In addition, in the hybrid method, since the code of the application 231 can be compiled only when a specific condition (for example, a charging state, a sleep state, or a state in which a specified time (such as a preset daily time) has been reached) is met, in order to improve the performance of the application 231, there is no choice but to wait for the specific condition to be met.

[0058] To solve the above problems, the electronic device can optimize the application 231 at a user desired time by compiling the code of the application 231 based on user input, and can provide a function of preferentially optimizing the application 231 desired by the user by allowing the compilation filter 300 of the application 231 to be selected based on user input.

[0059] Reference Figure 2 , the electronic device for providing the above functions may include a processor 210 (e.g., processor 120), a memory 230 (e.g., memory 130), an input device 250 (e.g., input device 150) and a display 270 (e.g., display device 160). However, the configuration of the electronic device is not limited thereto. According to a specific embodiment, at least one of the above elements may be omitted from the electronic device, and the electronic device may further include at least one other element.

[0060] The processor 210 may control at least one other component of the electronic device and may perform various data processing or operations. The processor 210 may include a job scheduler 211, an AOT daemon 213, an ART 215, a package manager 217, and a notification manager 219. At least one of the job scheduler 211, the AOT daemon 213, the ART 215, the package manager 217, or the notification manager 219 may be implemented as a program stored in the memory 230. In this case, at least one of the job scheduler 211, the AOT daemon 213, the ART 215, the package manager 217, or the notification manager 219 may be implemented as an instruction stored in the memory 230, and when the instruction is executed by the processor 210, the processor 210 may perform a function corresponding to the instruction.

[0061] The job scheduler 211 can manage background tasks to be executed when a specific condition is met. As an example, the job scheduler 211 can activate the AOT daemon 213 under a specific condition, and can control the code of the application 231 to be compiled through the AOT daemon 213 running in the background. Here, the specific conditions may include not only system configuration conditions, such as the charging state of the electronic device, the sleep state of the electronic device, or the state that a specified time (such as a preset time of each day) has been reached, but also user-related conditions determined by interaction with the user, such as the state that a user input has occurred.

[0062] The AOT daemon 213 may be executed by the job scheduler 211 and may run as a background service. The AOT daemon 213 may use the dex2oat tool to compile a dex file present in an apk file, which is a package including the application 231. The dex file compiled by the AOT daemon 213 may be output as an oat file. The size of the oat file may vary depending on the compilation filter 300 used at the time of compilation, and the performance of the application 231 may also vary.

[0063] like Figure 3As shown, the compilation filter 300 may include an option to compile a dex file (e.g., the code of the application 231). For example, when the compilation filter 300 is configured as "run-from-apk", the application can be executed by using the dex file in the apk file. When the compilation filter 300 is configured as "extract", the dex file in the apk file can be decompressed and copied to a specific file path. When the compilation filter 300 is configured as "verify", code verification of the dex file (e.g., excluding other processes) can be performed. When the compilation filter 300 is configured as "quicken", code verification of the dex file can be performed, and some dex instructions can be optimized. When the compilation filter 300 is configured as "speed-profile", code verification of the dex file can be performed, and the methods in the profile can be AOT compiled. When the compilation filter 300 is configured as "speed", code verification of the dex file can be performed, and all methods can be AOT compiled.

[0064] exist Figure 3 In the table shown, as the compilation filter 300 moves downward (i.e., from "run-from-apk" to "speed"), the size of the oat file generated by a successful compilation increases, thereby improving the performance of the application (231). Figure 3 In the table shown, as the compilation filter 300 moves upward (ie, in the direction from "speed" to "run-from-apk"), the size of the oat file generated by the compilation decreases, while the performance of the application 231 decreases.

[0065] ART 215 is an operating environment used by the application 231 and system services, and may generate an oat file by compiling a dex file using a dex2oat tool, and may directly execute the oat file when the application 231 is executed.

[0066] According to an embodiment, ART 215 may determine whether to utilize optimization for application 231. For example, ART 215 may determine whether application 231 is to be optimized based on a profile according to a user's usage pattern.

[0067] According to an embodiment, ART 215 may select at least one application 231 from the application list based on a user input received through the input device 250, and may control the code of the selected application 231 to be compiled. In addition, ART 215 may select at least one application 231 from the application list based on a user input received through the input device 250, and may limit the compilation of the code of the selected application 231.

[0068] According to an embodiment, ART 215 may change the compilation filter for a specific application 231 based on a user input received through the input device 250. For example, ART 215 may change the compilation filter for a specific application 231 to a compilation filter selected based on the user input. For example, when a specific application 231 is selected as an application that needs to be optimized based on the user input, the compilation filter for the specific application 231 may be configured as a first option (e.g., "speed-profile" or "speed"). As another example, when a specific application 231 is selected as an application that does not need to be optimized based on the user input, the compilation filter for the specific application 231 may be configured as a second option (e.g., "verify").

[0069] According to an embodiment, ART 215 may provide the user with information about the application 231 being compiled. For example, ART 215 may send information about the application 231 being compiled (e.g., identification information of the application 231) to the notification manager 219, and the notification manager 219 may output the received information about the application 231 to the display 270.

[0070] The package manager 217 can manage the installation or update of the application 231 distributed in the form of a package file (e.g., an apk file). For example, when the application 231 is distributed in the form of a package, the package manager 217 can parse the package, separate the code and data included in the package, and store them in the memory 230.

[0071] The notification manager 219 may display or provide notifications of events (such as arrival information, appointments, and proximity notifications) in a manner that does not interfere with the user. As an example, the notification manager 219 may display information received from the ART 215 on the application 231 being compiled on the display 270 .

[0072] The memory 230 may store various types of data used by at least one component of the electronic device. In addition, the memory 230 may store an application 231.

[0073] The input device 250 may receive instructions or data to be used for components of the electronic device from outside the electronic device. For example, the input device 250 may receive user input.

[0074] The display 270 may display various contents (eg, text, images, videos, icons, or symbols) to the user. The display 270 may include a touch screen and may receive, for example, a touch, gesture, proximity, or hovering input using an electronic pen or a body part of the user.

[0075] As described above, according to a specific embodiment, an electronic device (e.g., electronic device 101) may include an input device (e.g., input device 150, 250), a display (e.g., display device 160 or display 270), a memory (e.g., memory 130, 230), and a processor (e.g., processor 120, 210) operably connected to the input device, the display, and the memory, so that the processor can be configured to: determine whether a specified condition is met; when the specified condition is met, display a list of applications installed in the memory on the display; select at least one application from the list based on a first user input received through the input device; and compile at least one selected application.

[0076] According to a specific embodiment, the processor may be configured to select a compilation filter for the selected at least one application based on a second user input received through the input device; and compile the selected at least one application based on the selected compilation filter.

[0077] According to certain embodiments, the processor may be configured to display information about the selected at least one application being compiled on the display.

[0078] According to certain embodiments, the designated condition may include at least one of a condition that the electronic device is in a firmware over the air (FOTA) update state or a condition that a second user input is received through an input device.

[0079] According to certain embodiments, the processor may be configured to display a notification object for optimizing the selected at least one application on the display when a specified condition is satisfied.

[0080] According to a specific embodiment, the notification object may include at least one of an icon or image displayed on a status bar of the electronic device, a pop-up window displayed on a predetermined area of ​​the display, or a card-type object displayed on a function control screen.

[0081] According to certain embodiments, the processor may be configured to execute a configuration application for optimizing the selected at least one application when receiving a second user input on the notification object through the input device.

[0082] According to a specific embodiment, the specified condition may include a condition that the electronic device is in an initialized state, and the processor may be configured to: when a second user input on a notification object is received through an input device, identify user account information stored in an external server; and when the user account information is identified, receive and apply a configuration value for optimizing at least one selected application from the external server.

[0083] According to a specific embodiment, the processor may be configured to: configure a compilation filter for at least one selected application based on a configuration file generated based on a usage pattern of the electronic device; and compile at least one selected application based on the configured compilation filter.

[0084] According to a specific embodiment, the processor can be configured to: configure a compilation filter for the selected at least one application as an option for performing code verification on the selected at least one application; and limit the compilation of the selected at least one application using the compiled filter of the configured option.

[0085] Figure 4 is a diagram illustrating a method of optimizing an application according to an embodiment.

[0086] Reference Figure 4 In operation 410, a processor (e.g., processor 120, 210) of an electronic device (e.g., electronic device 101) may display a list of at least one application (e.g., application 146, 231) installed in a memory (e.g., memory 130, 230) on a display (e.g., display device 160 or display 270) (hereinafter, referred to as an "application list"). The application list may include, for example, a list of all applications installed in the memory, a list of applications displayed on a launcher, or a list of applications selected based on usage history information. The list of applications selected based on usage history information may include, for example, a list of recently used applications or a list of frequently used applications.

[0087] In operation 420, the processor may select at least one application based on user input received through an input device (e.g., input devices 150 and 250). For example, the processor may select at least one application from the applications included in the application list based on user input selecting an application from the displayed application list.

[0088] In operation 430, the processor may select a compilation filter for the selected application based on the user input received through the input device. Here, the user input received through the input device in operation 420 (e.g., the first user input) and the user input received through the input device in operation 430 (e.g., the second user input) may be different user inputs, or the same user input. When the first user input and the second user input are different user inputs, the processor may display options of selectable compilation filters on the display (e.g., Figure 3), and based on a second user input selecting one of the displayed compilation filters available for use, a compilation filter may be configured (e.g., selected) for the selected application. When the first user input and the second user input are the same user input, when the selected application is an application that requires optimization, the processor may select (or configure) the compilation filter as a first option (e.g., “speed-profile” or “speed”), and when the selected application is an application that does not require optimization, the processor may select (or configure) the compilation filter as a second option (e.g., “verify”).

[0089] In operation 440 , the processor may change the compilation filter for the selected application to the selected compilation filter. For example, in operation 420 , the processor may change the compilation filter for the selected application to the compilation filter selected by the user input in operation 430 .

[0090] In operation 450, the processor may compile the application by using the changed compilation filter. Figure 3 The processor may compile application code using one of the compilation filters 300 shown in the figure. For example, when the option of the compilation filter is "speed-profile", the processor may compile frequently used methods using a profile created by analyzing the user's usage pattern, and when the option of the compilation filter is "speed", all methods may be compiled. In this case, although more storage space is used, the performance of the application may be improved. As another example, when the option of the compilation filter is "verify", the processor may limit compilation to perform code verification. In this case, storage space may be guaranteed instead of degrading the performance of the application.

[0091] In operation 460, the processor may display information about the application being compiled. For example, the processor may output identification information of the application being compiled on the display.

[0092] Figure 5 is a diagram for describing a method of performing a configuration application for application optimization according to an embodiment.

[0093] Reference Figure 5In operation 510, a processor (e.g., processor 120, 210) of an electronic device (e.g., electronic device 101) may determine whether a specified condition is satisfied. The specified condition may include, for example, a firmware over the air (FOTA) update state of the electronic device or a condition that a user input has occurred.

[0094] When the specified condition is met, in operation 520, the processor may display a notification object that can be selected to request application optimization. For example, the processor may display a notification object indicating that the application can be optimized on a display (e.g., display device 160 or display 270). The notification object may include, for example, an icon (or image) displayed on a status bar of an electronic device, a pop-up object, or a card-like object displayed on a function control screen (e.g., a shortcut panel). The function control screen may allow the configuration of functions supported by the electronic device to be changed, or notify the user of various events occurring in the electronic device (e.g., message reception events, scheduled alarm events, object notification registration events, etc.). For example, the function control screen may be displayed by dragging downward from the upper area of ​​the screen of the electronic device (e.g., dragging downward or expanding the top notification bar of the user interface).

[0095] In operation 530, the processor may receive a user input on the displayed notification object through an input device (eg, input device 150 or 250). For example, the processor may receive a user input selecting a notification object displayed on the display.

[0096] In operation 540, the processor may determine whether a configuration application for application optimization has been installed. For example, the processor may determine whether the configuration application has been installed in the memory using identification information about all applications installed in the memory (e.g., memory 130, 230). The configuration application may be an application that supports configuration and optimization degree regarding whether to optimize an application installed in the memory.

[0097] When the configuration application is not installed, the processor may download the configuration application from the content providing server and install it in the memory in operation 550. Also, in operation 560, the processor may execute the configuration application.

[0098] Figure 6 is a diagram illustrating a method of applying a configuration value for application optimization when initializing a terminal according to an embodiment.

[0099] Reference Figure 6 In operation 610, a processor (eg, processors 120 and 210) of an electronic device (eg, electronic device 101) may determine whether the terminal is in an initialization state. For example, the processor may identify whether the electronic device has been factory initialized.

[0100] When the terminal of the electronic device is in an initialization state, in operation 620, the processor may display a notification object that can be selected to request application optimization. For example, the processor may display a notification object indicating that the application can be optimized on a display (e.g., display device 160 or display 270). The notification object may include, for example, an icon (or image) displayed on a status bar of the electronic device, a pop-up object, or a card-like object displayed on a function control screen (e.g., a shortcut panel).

[0101] In operation 630, the processor may receive a user input on the displayed notification object through an input device (eg, input device 150 or 250). For example, the processor may receive a user input for selecting a notification object displayed on the display.

[0102] In operation 640, the processor may execute a configuration application for application optimization. The configuration application may control whether to optimize an application installed in a memory (eg, memory 130 and 230), and the degree of optimization applied to the application.

[0103] In operation 650, the processor may determine whether user identification information has been identified. The user identification information may include, for example, information about a user account stored in a server for synchronizing applications and data installed on an electronic device. After executing the configuration application, the processor may access (or connect to) the server through a login process in the configuration application, and may identify the user identification information by identifying the login information (or user account information).

[0104] When the user identification information is confirmed, the processor may receive a configuration value for controlling optimization of the application from the server and apply the configuration value to the electronic device in operation 660. The configuration value received from the server may include, for example, at least one of the following items: usage history information for the application, a list of applications to be optimized selected by the user from existing applications installed in the terminal, or a selection of a compilation filter for each application.

[0105] Figure 7 is a diagram illustrating a method of optimizing an application based on a user input according to an embodiment.

[0106] Reference Figure 7In operation 710, a processor (e.g., processors 120 and 210) of an electronic device (e.g., electronic device 101) may identify a list of applications to be optimized. For example, in operation 711, when an optimization function is triggered for all applications or specific applications installed in a memory (e.g., memory 130, 230) based on a user input through an input device (e.g., input device 150, 250), the processor may request a list of applications to be optimized from a package manager 217 in operation 712.

[0107] Upon receiving the request, in operation 713 , the package manager 217 may request the ART 215 to determine the need for optimization for each included application while scanning package type applications installed in the memory.

[0108] When receiving the request, ART 215 may determine whether to perform optimization on each corresponding application based on the profile according to the user's usage pattern. For example, ART 215 may determine whether the corresponding application is a recently used application or a frequently used application based on the profile, and when the application is a recently used application or a frequently used application but is not currently optimized, it may be determined that the application is to be optimized.

[0109] When it is determined that the application needs to be optimized, in operation 714 , the ART 215 may send the result of determining that the application needs to be optimized (eg, “utilized” or “not utilized”) to the package manager 217 .

[0110] When receiving the result of determining that optimization is required, the package manager 217 may select the application whose result of determining that optimization is required is “used” as the application to be optimized in operation 715 , and may send an optimization target application list of the optimization target applications to the processor.

[0111] Thereafter, the processor may compile all or selected applications installed in the memory with respect to the configuration file in operation 731. For the application selected as the optimization target application, the compilation filter may be configured using a first default configuration option (eg, "speed-profile").

[0112] According to an embodiment, in operation 732, the processor may select a compile filter for optimizing the target application based on a user input received through an input device. For example, the processor may change the default compile filter for optimizing the target application to a selected compile filter indicated by the user based on the user input. For example, the processor may change the compile filter for optimizing the target application from a default option to a second option (e.g., "speed") customized by the user. Operation 732 may be performed before operation 731 is performed.

[0113] When the compilation filter for the optimization target application is selected and the optimization target application is compiled according to the selected compilation filter, the processor may transmit information about the application being compiled to the notification manager 219 in operation 733 .

[0114] The notification manager 219 that has received the information about the application may notify the user about the compilation progress of the application in operation 750. For example, the notification manager 219 may output the received information about the application to a display (eg, the display device 160 or the display 270).

[0115] Figure 8 is a diagram for describing a method of limiting compilation of an application based on a user input according to an embodiment.

[0116] Reference Figure 8 In operation 810, a processor (e.g., processors 120 and 210) of an electronic device (e.g., electronic device 101) may select a list of applications to be optimized from applications installed in a memory (e.g., memory 130, 230) based on user input detected through an input device (e.g., input devices 150, 250).

[0117] In operation 820, the processor may request a list of applications to be optimized from the package manager 217. When receiving the request, the package manager 217 may request ART 215 to determine the need for optimization for each application when scanning the package type applications installed in the memory. In addition, ART 215 receiving the request may determine whether optimization of the corresponding application is to be performed based on a profile according to the user's usage pattern. For example, ART 215 determines whether the corresponding application is a recently used application or a frequently used application based on the profile, and when the application is a recently used application or a frequently used application and the application is not currently optimized, it may be determined that the application is to be optimized. In addition, when it is determined that the application is to be optimized, ART 215 may send a determination (e.g., "used" or "not used") of optimizing the application to the package manager 217.

[0118] In operation 830, the package manager 217 may send a list of applications to be optimized to the processor. For example, the package manager 217, which has received the result of determining that optimization is required from the ART 215, may select an application for which the result of determining that optimization is required is "utilized" as an optimization target application, and send an optimization target application list of the optimization target applications to the processor.

[0119] In operation 840, the processor may allow selection of such an application based on user input through the input device, which indicates that the user really wants the application to be optimized. For example, based on the user input, the processor may specify an application to be omitted from optimization (e.g., an application indicated by the user as not requiring optimization) among the applications included in the optimization target application list.

[0120] In operation 850, the processor may transmit information about the selected application to the AOT daemon process 213. For example, the processor may transmit information about the application selected as not requiring optimization to the AOT daemon process 213.

[0121] In operation 860, the AOT daemon 213 may change the compilation filter for the selected application. For an application selected as a target that does not require optimization, the compilation filter may be configured by default under the first option (e.g., "verify"). Accordingly, when the compilation filter is configured as the first option, compilation may be limited to performing code verification without substantial optimization. In this case, storage space may be guaranteed without degrading the performance of the application.

[0122] According to an embodiment, the AOT daemon 213 may change the compilation filter of the selected application according to the user's usage pattern, but maintain the configuration file.

[0123] Fig. 9 is a diagram for explaining a method of displaying a notification object for application optimization according to an embodiment.

[0124] Reference Fig. 9 , the processor (e.g., processors 120 and 210) of the electronic device (e.g., electronic device 101) may display a notification object 910 for application optimization on a display 900 (e.g., display device 160 or display 270). According to an embodiment, when a specified condition is met, the processor may display a notification object 910 on the display 900. The specified condition may include, for example, a FOTA update state of the electronic device or a condition that a user input has occurred.

[0125] According to an embodiment, the notification object 910 may include: an icon (or image) displayed on a status bar of the electronic device, a pop-up window displayed on a specific area of ​​the display 900, or a card-type object displayed on a function control screen (e.g., a shortcut panel). Fig. 9 The state in which the notification object 910 is displayed in the form of a card on the function control screen is shown. The function control screen may be a screen for changing the configuration of the functions supported by the electronic device or a screen for notifying the user of various events occurring in the electronic device, and may be displayed, for example, by dragging downward when pressing the upper area of ​​the screen of the electronic device.

[0126] According to an embodiment, the notification object 910 may include the number 911 of applications to be optimized, a notification configuration button 913 of the notification object 910 , or a display off button 915 of the notification object 910 .

[0127] According to an embodiment, the processor may execute a configuration application for application optimization when receiving a user input on the notification object 910. The configuration application may be an application that supports configuration as to whether to optimize an application installed in a memory and an optimization degree.

[0128] Fig. 10A is a diagram for explaining an execution screen of a configuration application for application optimization according to an embodiment, Fig. 10B is a diagram for explaining an execution screen of a configuration application for application optimization according to an embodiment, Fig. 10C is a diagram for explaining an execution screen of a configuration application for application optimization according to an embodiment, Fig. 10D is a diagram for explaining an execution screen of a configuration application for application optimization according to an embodiment.

[0129] Reference FIG. 10A to FIG. 10D , the processor (e.g., processors 120 and 210) of the electronic device (e.g., electronic device 101) may execute a configuration application for application optimization. The configuration application may be an application that supports whether to optimize the configuration installed in the memory (e.g., memory 130 and 230) and the degree of optimization. Figures 10A to 10D An execution screen 1000 of a configuration application is shown.

[0130] The execution screen 1000 of the configuration application may include a first button 1010 for selecting optimization for all applications installed in the memory, a second button 1020 for selecting optimization for a specific application installed in the memory, a third button 1030 for starting optimization of the selected application, and a fourth button 1040 for terminating the configuration application.

[0131] Fig. 10A 1000 shows the execution screen 1000 of the configuration application when the first button 1010 is selected. Fig. 10B An execution screen 1000 of a configuration application is shown when a second button 1020 is selected.

[0132] Reference Fig. 10B, when the second button 1020 is selected by user input, a selection item for selecting a specific application installed in the memory may be displayed on the execution screen 1000 of the configuration application. For example, the first selection item may include a fifth button 1021 for selecting a recently used application, the second selection item may include a sixth button 1022 for selecting a frequently used application, the third selection item may include a seventh button 1023 for selecting an application displayed on a launcher, and the fourth selection item may include an eighth button 1024 for selecting at least some applications from all applications.

[0133] Fig. 10C 1000 shows the execution screen 1000 of the configuration application when the fifth button 1021 is selected. Fig. 10D An execution screen 1000 of the configuration application is shown when the seventh button 1023 is selected.

[0134] When the fifth button 1021 is selected, a recently used application item 1021a selected based on the usage history information of the application may be displayed on the execution screen 1000 of the configuration application, as shown in FIG. Fig. 10C Likewise, even when the sixth button 1022 is selected, frequently used application items selected based on the usage history information of the application may be displayed on the execution screen 1000 of the configuration application.

[0135] When the seventh button 1023 is selected, Fig. 10D As shown, the application item 1023a displayed on the launcher can be displayed on the execution screen 1000 of the configuration application. In addition, an object 1023b (e.g., a check box) for selecting the displayed application item 1023a can also be displayed. Similarly, even when the eighth button 1024 is selected, all application items installed in the memory and an object for selecting the displayed application item can also be displayed on the execution screen 1000 of the configuration application.

[0136] As described above, according to a specific embodiment, an application optimization method for an electronic device (e.g., electronic device 101) may include: determining whether a specified condition is met; when the specified condition is met, displaying a list of applications installed in a memory (e.g., memory 130, 230) of the electronic device on a display (e.g., display device 160 or display 270) of the electronic device; selecting at least one application from the list based on a first user input received through an input device (e.g., input device 150, 250) of the electronic device; and compiling at least one selected application.

[0137] According to a specific embodiment, the application optimization method may also include selecting a compilation filter for the selected at least one application based on a second user input received through an input device, so that compilation of the selected at least one application may include compiling the selected at least one application based on the selected compilation filter.

[0138] According to certain embodiments, the application optimization method may further include displaying information about the selected at least one application being compiled on a display.

[0139] According to certain embodiments, the designated condition may include at least one of a condition that the electronic device is in a firmware over the air (FOTA) update state or a condition that a second user input is received through an input device.

[0140] According to certain embodiments, the application optimization method may further include displaying a notification object for optimizing the selected at least one application on a display when a specified condition is satisfied.

[0141] According to a specific embodiment, the notification object may include at least one of an icon or image displayed on a status bar of the electronic device, a pop-up window displayed on a predetermined area of ​​the display, or a card-type object displayed on a function control screen.

[0142] According to certain embodiments, the application optimization method may further include executing a configuration application for optimizing the selected at least one application when a second user input is received on the notification object through the input device.

[0143] According to a specific embodiment, the specified conditions may include a state in which the electronic device is replaced, and the application optimization method may further include: when a second user input on the notification object is received through the input device, identifying user account information stored in an external server; and when the user account information is identified, receiving and applying a configuration value for optimizing at least one selected application from the external server.

[0144] According to a specific embodiment, compiling at least one selected application may include: configuring a compilation filter for at least one selected application based on a configuration file generated based on a usage pattern of the electronic device; and compiling at least one selected application based on the configured compilation filter.

[0145] According to a specific embodiment, the compilation of at least one selected application may also include: configuring a compilation filter for the at least one selected application to have an option to perform code verification on the at least one selected application (e.g., excluding other applications); and limiting the compilation of the at least one selected application using the compilation filter with the configured option.

[0146] The electronic device according to a specific embodiment may be one of various types of electronic devices. The electronic device may include, for example, a portable communication device (e.g., a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a household appliance. According to an embodiment of the present disclosure, the electronic device is not limited to those electronic devices described above.

[0147] It should be understood that the specific embodiments of the present disclosure and the terms used therein are not intended to limit the technical features set forth herein to specific embodiments, but include various changes, equivalent forms or alternative forms for corresponding embodiments. For the description of the accompanying drawings, similar reference numerals may be used to refer to similar or related elements. It will be understood that the nouns in the singular form corresponding to the term may include one or more things unless the relevant context clearly indicates otherwise. As used herein, each of the phrases such as "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" may include any one or all possible combinations of the items listed together with the corresponding one of the multiple phrases. As used herein, terms such as "1st" and "2nd" or "first" and "second" may be used to simply distinguish the corresponding component from another component, and do not limit the component in other aspects (e.g., importance or order). It will be understood that if an element (e.g., a first element) is referred to as being “combined with another element (e.g., the second element)”, “combined to another element (e.g., the second element)”, “connected with another element (e.g., the second element)”, or “connected to another element (e.g., the second element)” when the terms “operably” or “communicatively” are used or when the terms “operably” or “communicatively” are not used, it means that the element may be directly (e.g., wired) connected to the other element, wirelessly connected to the other element, or connected to the other element via a third element.

[0148] As used herein, the term "module" may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with other terms (e.g., "logic," "logic block," "portion," or "circuit"). A module may be a single integrated component adapted to perform one or more functions or a minimum unit or portion of the single integrated component. For example, according to an embodiment, a module may be implemented in the form of an application specific integrated circuit (ASIC).

[0149] The specific embodiments described herein may be implemented as software (e.g., program 140) including one or more instructions stored in a storage medium (e.g., internal memory 136 or external memory 138) that can be read by a machine (e.g., electronic device 101). For example, under the control of a processor, a processor (e.g., processor 120) of the machine (e.g., electronic device 101) may call at least one of the one or more instructions stored in the storage medium and execute the at least one instruction with or without the use of one or more other components. This enables the machine to operate to perform at least one function according to the at least one instruction called. The one or more instructions may include code generated by a compiler or code that can be run by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. The term "non-transitory" only means that the storage medium is a tangible device and does not include signals (e.g., electromagnetic waves), but the term does not distinguish between data being semi-permanently stored in the storage medium and data being temporarily stored in the storage medium.

[0150] According to an embodiment, the method according to a specific embodiment of the present disclosure may be included and provided in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be released in the form of a machine-readable storage medium (e.g., a compact disk read-only memory (CD-ROM)), or may be downloaded via an application store (e.g., Play Store TM ) The computer program product may be published (e.g., downloaded or uploaded) online, or the computer program product may be distributed (e.g., downloaded or uploaded) directly between two user devices (e.g., smart phones). If published online, at least part of the computer program product may be temporarily generated, or at least part of the computer program product may be at least temporarily stored in a machine-readable storage medium (such as a memory of a manufacturer's server, an application store's server, or a forwarding server).

[0151] According to a specific embodiment, each component (e.g., module or program) in the above-mentioned components may include a single entity or multiple entities, and some entities in the multiple entities are separated and arranged relative to other components. According to a specific embodiment, one or more components in the above-mentioned components may be omitted, or one or more other components may be added. Alternatively or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, according to a specific embodiment, the integrated component may still perform the one or more functions of each component in the multiple components in the same or similar manner as a corresponding component in the multiple components before integration. According to a specific embodiment, the operations performed by a module, program or another component may be performed sequentially, in parallel, repeatedly or in a heuristic manner, or one or more operations in the operations may be run or omitted in different orders, or one or more other operations may be added.

Claims

1. An electronic device, comprising: Input module; monitor; Memory; as well as at least one processor operably connected to the input module, the display and the memory, Wherein, the at least one processor is configured to: Displaying a screen including a first user interface object and a second user interface object on the display, the first user interface object being used to select and optimize all applications that can be optimized, and the second user interface object being used to select and optimize at least one specific application that has been recently used or frequently used in the electronic device; identifying the at least one specific application that was recently used or frequently used in the electronic device based on receiving a first input selecting the second user interface object through the input module; determining a compile filter based on a configuration file according to a usage pattern of a user, the compile filter including a configuration for compiling a code of the at least one specific application that is recently used or frequently used in the electronic device; and The at least one specific application that is most recently used or frequently used in the electronic device is compiled based on the determined compilation filter including the configuration.

2. The electronic device according to claim 1, wherein: The configuration is specified in one or more options, including executing using specific code from an application package, executing using the specific code that is decompressed and copied to a specific file path of the application package, verifying the specific code of the application package, optimizing some instructions related to the specific code and verifying, compiling methods in a configuration file for the application package in advance and verifying, or compiling all methods for the application package in advance and verifying.

3. The electronic device according to claim 1, wherein: The at least one processor is configured to display information about the at least one compiled specific application on the display.

4. The electronic device according to claim 1, wherein: The at least one processor is configured to: Determine whether the specified conditions are met, When the specified condition is met, a notification object is displayed on the display, the notification object being selectable to request optimization of the at least one specific application.

5. The electronic device according to claim 4, wherein: The specified condition includes at least one of a first condition and a second condition, under which the electronic device is in a wireless firmware FOTA update state, and under which the second condition a second user input is received through the input module.

6. The electronic device according to claim 4, wherein: The notification object includes at least one of: an icon or an image displayed on a status bar of the electronic device, a pop-up window displayed on a predetermined area of ​​the display, or a card-type object displayed on a function control screen.

7. The electronic device according to claim 4, wherein: The processor is further configured to: when a second input selecting the notification object is received through the input module, execute a configuration application for optimizing the at least one specific application.

8. The electronic device according to claim 4, wherein: Determining that the specified condition is satisfied includes detecting that the electronic device is in an initialized state, and Wherein, the processor is further configured to: When a second input selecting the notification object is received through the input module, identifying user account information stored in an external server; and Based on identifying the user account information, a configuration value for optimizing the at least one specific application is received from the external server to be applied to the optimization.

9. The electronic device according to claim 1, wherein: The processor is further configured to: configuring the compilation filter for the at least one specific application to perform code verification only on the at least one specific application; and According to the configured compilation filter, the compilation of the at least one specific application is restricted.

10. An application optimization method for an electronic device, the application optimization method comprising: displaying a screen including a first user interface object and a second user interface object on a display, wherein the first user interface object is used to select all applications that can be optimized, and the second user interface object is used to select at least one specific application that has been recently used or frequently used in the electronic device; identifying the at least one specific application that was recently used or frequently used in the electronic device based on receiving a first input selecting the second user interface object through an input module; determining a compile filter based on a profile according to a usage pattern of a user, the compile filter including a configuration for compiling a code of the at least one specific application that is recently used or frequently used in the electronic device; as well as The at least one specific application that is most recently used or frequently used in the electronic device is compiled based on the determined compilation filter including the configuration.

11. The application optimization method according to claim 10, wherein: The configuration is specified in one or more options, including executing using specific code from an application package, executing using the specific code that is decompressed and copied to a specific file path of the application package, verifying the specific code of the application package, optimizing some instructions related to the specific code and verifying, compiling methods in a configuration file for the application package in advance and verifying, or compiling all methods for the application package in advance and verifying. 12 . The application optimization method according to claim 10 , further comprising displaying information about the at least one compiled specific application on the display.

13. The application optimization method according to claim 10, wherein: Compiling the at least one specific application further includes: configuring the compilation filter for the at least one specific application to perform code verification only on the at least one specific application; and Compilation of the at least one specific application is restricted according to the configured compilation filter.

Citation Information

Patent Citations

  • Systems and methods for mobile applications

    WO2014176587A2