Patent Publication Number: US-9841963-B2

Title: Method and apparatus for managing application

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
     This application claims the benefit under 35 U.S.C. §119(a) of Korean patent application filed on Mar. 17, 2014 in the Korean Intellectual Property Office and assigned Serial number 10-2014-0031157, the entire disclosure of which is hereby incorporated by reference. 
     TECHNICAL FIELD 
     The present disclosure relates to a method and apparatus for managing an application. 
     BACKGROUND 
     Due to developments in multimedia technology and network technology, various types of devices are used by users. 
     Also, the number of applications that are executable in a device has sharply increased. Moreover, the number of background modules, which are unrecognizable by a user and necessary for certain applications, have also increased. 
     Since the number of applications that are executed in a device has increased, power consumption of the applications also increases. In particular, power consumption of applications that are not currently used increases. 
     The above information is presented 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 regard to the present disclosure. 
     SUMMARY 
     Aspects of the present disclosure are to address at least the above-mentioned problems and/or disadvantages and to provide at least the advantages described below. Accordingly, an aspect of the present disclosure is to provide a method and apparatus for decreasing an execution time of an unnecessary application that is executed in a device. 
     Additional aspects will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the various embodiments of the present disclosure. 
     In accordance with an aspect of the present disclosure, a method of managing an application having a background module, is provided. The method performed by a mobile terminal includes operations of determining a first background stop time and stopping the execution of the background module of the application during the first background stop time, wherein the first background stop time is a time period between a point of time when execution of the application was stopped and a first point of time. 
     The first background stop time may be determined in proportion to the time period between the point of time when the execution of the application was stopped and the first point of time. 
     The first background stop time may include a first background stop time per unit time that corresponds to a time period during which the execution of the background module is stopped for a preset interval. 
     The operation of stopping the execution of the background module may include operations of stopping the execution of the background module after the first point of time, determining whether the first background stop time per unit time has elapsed from when the execution of the background module was stopped, and if the first background stop time per unit time has elapsed, re-executing the background module. 
     The first background stop time may be determined based on at least one selected from power consumption, resource use, or network use of the background module. 
     The first point of time may be one of a plurality of points of time that are preset and are determined based on at least one selected from a number of times of execution, an execution interval, or an execution time period of the application. 
     After a last point of time from the plurality of points of time, from when the execution of the application was stopped, the method may further include an operation of uninstalling the application in the mobile terminal. 
     The operation of uninstalling the application may include operations of generating an installation file of the application, based on a storage location in which the application is installed, storing the installation file of the application, and uninstalling the application. 
     The operation of uninstalling the application may further include operations of displaying a user interface for receiving an input for selecting whether to uninstall the application and uninstalling the application, based on a user input selecting to uninstall the application. 
     The method may further include operations of receiving a user input requesting execution of the application, upon the receiving of the user input, installing the application based on a storage location in which the installation file of the application is stored, and executing the application. 
     In accordance with another aspect of the present disclosure, a mobile terminal is provided. The mobile terminal includes a processor configured to execute one or more modules and a storage device for storing the one or more modules, wherein the one or more modules comprise an application having a background module and a management application to determine a first background stop time and stop the execution of the background module during the first background stop time, and wherein the first background stop time is a time period between a point of time when execution of the application was stopped and a first point of time. 
     In accordance with another aspect of the present disclosure, a non-transitory computer-readable recording medium is provided. The computer-readable recording medium includes a recorded program for executing the method by using a computer. 
     Other aspects, advantages, and salient features of the disclosure will become apparent to those skilled in the art from the following detailed description, which, taken in conjunction with the annexed drawings, discloses various embodiments of the present disclosure. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other aspects, features, and advantages of certain embodiments of the present disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which: 
         FIGS. 1A and 1B  illustrate an example in which a device controls execution of a background module since time elapses from when execution of an application was stopped, according to an embodiment of the present disclosure; 
         FIG. 2  is a flowchart of a method of controlling the execution of the background module since a time elapses from when the execution of the application was stopped according to an embodiment of the present disclosure; 
         FIG. 3  illustrates a method of controlling the application according to an embodiment of the present disclosure; 
         FIG. 4  is a flowchart of a method of periodically controlling execution of the background module since a time elapses from when execution of the application was stopped according to an embodiment of the present disclosure; 
         FIG. 5  illustrates an example in which the device periodically controls execution of the background module since a time elapses from when execution of the application was stopped, according to an embodiment of the present disclosure; 
         FIG. 6  illustrates a method of determining an execution time of the background module based on a use history of the application according to an embodiment of the present disclosure; 
         FIG. 7  illustrates a method of determining an execution time of the background module based on a characteristic of the background module according to an embodiment of the present disclosure; 
         FIG. 8  is a flowchart of a method of deleting the application since a time elapses from when execution of the application was stopped according to an embodiment of the present disclosure; 
         FIGS. 9A and 9B  illustrate examples in which the application is uninstalled according to an embodiment of the present disclosure; 
         FIG. 10  is a flowchart of a method of reinstalling and executing the application when a user input requesting execution of the application is received after the application is uninstalled according to an embodiment of the present disclosure; 
         FIGS. 11A and 11B  illustrate a method of reinstalling and executing the application when a user input requesting execution of the application is received after the application is uninstalled according to the embodiment of  FIG. 10 ; and 
         FIGS. 12 and 13  are block diagrams of the device, according to various embodiments of the present disclosure. 
     
    
    
     Throughout the drawings, it should be noted that like reference numbers are used to depict the same or similar elements, features, and structures. 
     DETAILED DESCRIPTION 
     The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of various embodiments of the present disclosure as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the various embodiments described herein can be made without departing from the scope and spirit of the present disclosure. In addition, descriptions of well-known functions and constructions may be omitted for clarity and conciseness. 
     The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the present disclosure. Accordingly, it should be apparent to those skilled in the art that the following description of various embodiments of the present disclosure is provided for illustration purpose only and not for the purpose of limiting the present disclosure as defined by the appended claims and their equivalents. 
     It is to be understood that the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a component surface” includes reference to one or more of such surfaces. 
     Also, when a part “includes” or “comprises” an element, unless there is a particular description contrary thereto, the part can further include other elements, not excluding the other elements. In the following description, terms such as “unit” and “module” indicate a unit for processing at least one function or operation, wherein the unit and the block may be embodied as hardware or software or embodied by combining hardware and software. 
     Reference will now be made in detail to various embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. In this regard, the various embodiments of the present disclosure may have different forms and should not be construed as being limited to the descriptions set forth herein. Accordingly, the various embodiments are merely described below, by referring to the figures, to explain aspects of the present description. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Expressions such as “at least one of,” when preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list. 
       FIGS. 1A and 1B  illustrate an example in which a device  1000  controls execution of a background module since time elapses from when execution of an application was stopped, according to an embodiment of the present disclosure. 
     Referring to  FIG. 1A , the device  1000  may execute at least one application  1800 . The application may be, for example, related to a social network, position tracking, motion recognition, gaming, and so forth. That is, the application  1800  may be executed by the device  1000  to perform a particular function (hereinafter, the application  1800  may be referred to as ‘the social network application  1800 ’, ‘the position tracking application  1800 ’, or ‘the motion recognition application  1800 ’). The application  1800  may include application software. In one or more various embodiments, the application  1800  may be referred to as various names such as a software application, a program, a software module, an application program, and an App. 
     The application  1800  may be configured by one or more modules. Here, each module may mean software that is implemented to perform a particular function of the application  1800 . The modules may interact with each other to execute the application  1800 . Also, some modules may independently operate so that only some functions of the application  1800  may be performed. One module may be implemented by executing at least one thread. 
     Also, the application  1800  may include at least one background module  1900 . The background module  1900  may be unrecognizable to a user but continuously performs a particular function in the device  1000 . For example, the background module  1900  may include, but is not limited to, a module for periodically monitoring specific data via a network, a module for periodically receiving a Rich Site Summary (RSS) feed from an external server via a network and parsing recent Extensible Markup Language (XML) data, a module of the social network application  1800  for periodically exchanging data with a server, a module of the position tracking application  1800  for periodically receiving data from a global positioning system (GPS) satellite, and a module of the motion recognition application  1800  for periodically sensing a motion of the user. In one or more various embodiments, the background module  1900  may be referred to as a service, a background service, a server, and a daemon. 
     The application  1800  may include at least one foreground module. The foreground module from among modules that configure the application  1800  may indicate a module that directly interacts with a user. For example, the foreground module may include, but is not limited to, a module for receiving a user input, a module for displaying information in response to execution of the application  1800 , and a module for outputting sound in response to execution of the application  1800 . 
     The application  1800  may be configured of only the background module  1900  or may include the background module  1900  and the foreground module. 
     When the execution of the application  1800  is stopped, at least one module may be continuously executed. For example, even when the social network application  1800  is stopped while the social network application  1800  is executed, a module may be continuously executed to exchange data with a server and to store a received message in the device  1000 . 
     Also, even when the application  1800  is not executed, the background module  1900  may be continuously executed from when the application  1800  was installed. 
     A stop of the execution of the application  1800  may mean that the foreground module from among the modules that configure the application  1800  is not executed. 
     Also, the stop of the execution of the application  1800  or a stop of the execution of the background module  1900  may include not only an end of the execution but may also include a pause of the execution. 
     The device  1000  may download an installation file of the application  1800  from an external server or an external device to the device  1000 . The device  1000  may store the downloaded installation file of the application  1800  in a predetermined storage location (e.g., /data/app). 
     The installation file of the application  1800  may indicate a distributed file to make the application  1800  installed in the device  1000 . The installation file of the application  1800  may include an execution file of the application  1800  and a resource file for the execution file of the application  1800 . Also, the installation file of the application  1800  may further include an information file such as a title or a version of the application  1800 , an execution authority of the application  1800  with respect to resources of the device  1000 , and an authentication file about the execution of the application  1800 . 
     A format of the installation file of the application  1800  may be a compressed file format (e.g., zip, apk or jar). Also, in one or more various embodiments, the installation file of the application  1800  may be referred to as a package file of the application  1800 . 
     The device  1000  may install the application  1800 , based on the installation file of the application  1800 . 
     For example, the device  1000  may generate a logical storage in which the application  1800  is to be installed. The device  1000  may generate a directory (e.g., /data/cache/) for storing the installation file and a directory (e.g., /data/data/&lt;package file name&gt;/) for storing necessary data for the execution of the application  1800 . The necessary data for the execution of the application  1800  may include resource data, a database of the application  1800 , or data that is generated in response to the execution of the application  1800 . 
     Afterward, the device  1000  may decompress the compressed installation file of the application  1800  and may extract the installation file and a resource file of the application  1800 . 
     Then, the device  1000  may generate identification (ID) information (e.g., an application ID) of the application  1800  that corresponds to the installed application  1800  and may store the generated ID information. Also, in order to correspond to the ID information of the application  1800 , the device  1000  may store storage locations in the form of a file or a database, wherein the storage locations are about a storage location at which the installation file of the application  1800  was stored and a storage location at which the application  1800  was installed. Accordingly, when the device  1000  receives a user input requesting the execution of the application  1800 , the device  1000  may obtain the storage location at which the application  1800  is installed. Then, the device  1000  may load the execution file of the application  1800  to a memory, may operate the device  1000  according to an execution code in the loaded execution file, and thus may execute the application  1800 . 
     The device  1000  may store the ID information of the executed application  1800 . In order to correspond to the ID information of the application  1800 , the device  1000  may store ID information of a module that is executed from among the modules that configure the application  1800 . 
     When the device  1000  receives a user input of stopping the execution of the application  1800 , the device  1000  may stop the execution of the application  1800 . The device  1000  may stop execution of all of the modules that configure the application  1800  or may stop execution of some modules that are predetermined to correspond to the application  1800 . The device  1000  may store the ID information of the application  1800  of which execution was stopped. Also, the device  1000  may store ID information of a stopped module and ID information of a module that is continuously executed. 
     The device  1000  may control the execution of the background module  1900  of the application  1800 . For example, the device  1000  may stop or execute the background module  1900 . The device  1000  may control the background module  1900  according to a user input or may control the background module  1900  according to a method determined by the device  1000 , without a user input. 
     For example, referring to  FIG. 1B , since a time elapses from when the execution of the application  1800  was stopped, the device  1000  may decrease an average execution time of the background module  1900  of the stopped application  1800 . 
     Also, the device  1000  may determine a method of controlling the execution of the background module  1900 . For example, based on an execution history of the application  1800  or a characteristic of the background module  1900 , the device  1000  may determine an execution method of the background module  1900  to be executed after the execution of the application  1800  is stopped. 
     Also, if a predetermined time elapses from when the execution of the application  1800  was stopped, the device  1000  may uninstall the application  1800  in the device  1000 . Also, if a predetermined time elapses from when the execution of the application  1800  stopped, the device  1000  may extract files related to the application  1800  which are installed in the device  1000  and may generate an installation file of the application  1800 . After the application  1800  is uninstalled, if the device  1000  receives an input requesting the execution of the application  1800 , the device  1000  may reinstall the application  1800  and may execute the application  1800 . 
       FIG. 2  is a flowchart of a method of controlling the execution of the background module since a time elapses from when the execution of the application was stopped according to an embodiment of the present disclosure. 
     In operation S 210 , the device  1000  may determine a first background stop time, which is a time period during which the execution of the background module  1900  is stopped and corresponds to a time period between a point of time when the execution of the application  1800  stopped and a first point of time. 
     For example, the device  1000  may determine the first background stop time in proportion to a time period between the point of time when the execution of the application  1800  was stopped and the first point of time. 
     The first background stop time may mean a time period during which the background module  1900  was stopped. For example, the first background stop time may include a total time period between the first point of time and a second point of time during which the background module  1900  is stopped. 
     Also, for example, the first background stop time may include a time period between the first point of time and the second point of time, during which the background module  1900  is stopped for a unit time at regular intervals (predetermined time intervals). 
     The first background stop time may be one of a plurality of predetermined background stop times. The plurality of background stop times may be predetermined so as to correspond to the background module  1900 . 
     For example, based on at least one selected from power consumption, resource use, and network use of the background module  1900 , the device  1000  may determine the first background stop time that corresponds to the background module  1900 . That is, when the power consumption of the background module  1900  is great, the device  1000  may control an execution time period of the background module  1900  to be decreased while the execution of the application  1800  is stopped. An embodiment related to this will be described below with reference to  FIG. 7 . 
     The device  1000  may predetermine the first background stop time before the first point of time. In this case, after the first point of time from when the execution of the application  1800  was stopped, the device  1000  may obtain a predetermined first background stop time. 
     The first point of time may be one of a plurality of predetermined point of times. The plurality of point of times may indicate points of time to change an execution method of the background module  1900  after the execution of the application  1800  was stopped. The plurality of point of times may be determined to correspond to the application  1800 . 
     For example, the device  1000  may determine the plurality of point of times, based on at least one selected from a number of times of execution, an execution interval at which executions are performed (hereinafter, referred to as “execution interval”), and an execution time period of the application  1800 . For example, when the number of times of execution or an average execution time period of the application  1800  is increased, the device  1000  may determine the first point of time so as to increase the time period between the point of time when the execution of the application  1800  was stopped and the first point of time. An embodiment related to this will be described below with reference to  FIG. 6 . 
     In operation S 220 , the device  1000  may stop the execution of the background module  1900  during the determined first background stop time. 
     After the first point of time from when the execution of the application  1800  was stopped, the device  1000  may stop the execution of the background module  1900  during the first background stop time that is determined in operation S 210 . 
     The device  1000  may stop the execution of the background module  1900  during the first background stop time while a time elapses from the first point of time to the second point time. The device  1000  may constantly stop the background module  1900  during a background stop time. Alternatively, the device  1000  may periodically stop the background module  1900  during the background stop time. 
     When a certain time elapses from when the execution of the application  1800  was stopped, the device  1000  may uninstall the application  1800  that was installed in the device  1000 . 
     After the application  1800  is uninstalled, if the device  1000  receives a user input requesting an execution of the application  1800 , the device  1000  may reinstall the application  1800 . An embodiment related to this will be described below with reference to  FIGS. 8, 9, and 10 . 
     Hereinafter, a method of controlling the background module  1900  after the execution of the application  1800  was stopped, the method performed by the device  1000 , will be described in detail with reference to  FIGS. 3, 4, and 5 . 
       FIG. 3  illustrates a method of controlling the application  1800  according to an embodiment of the present disclosure. 
     Referring to  FIG. 3 , the background module  1900  may be continuously executed after the execution of the application  1800  was stopped. In  FIG. 3 , it is assumed that a plurality of points of time and a plurality of background stop times are predetermined by the device  1000  before the execution of the application  1800  was stopped. 
     Since a time elapses from when the execution of the application  1800  was stopped, the device  1000  may determine whether it is after a first point of time. If the device  1000  determines that it is after the first point of time, the device  1000  may stop the execution of the background module  1900 . 
     Since the execution of the background module  1900  is stopped, the device  1000  may obtain a first background stop time that corresponds to a time period between the point of time when the execution of the application  1800  is stopped and the first point of time. 
     Since a time elapses, the device  1000  may determine whether the first background stop time has elapsed from the first point of time. If the device  1000  determines that the first background stop time has elapsed from the first point of time, the device  1000  may re-execute the stopped background module  1900 . 
     When the background module  1900  is re-executed, the device  1000  may determine whether it is after a second point of time from when the execution of the application  1800  was stopped. If the device  1000  determines that it is after the second point of time from when the execution of the application  1800  was stopped, the device  1000  may re-stop the re-executed background module  1900 . Also, the device  1000  may obtain a second background stop time that corresponds to a time period between the point of time when the execution of the application  1800  was stopped and the second point of time. The second background stop time may be greater than the first background stop time. 
     Afterward, the device  1000  may stop the background module  1900  during the second background stop time and then may re-execute the background module  1900  from the end point of the second background stop time to a third point of time. 
     After the first point of time, the second point of time, and the third point of time, background stop times corresponding thereto also increase, so that the device  1000  may gradually decrease an execution time of the background module  1900 . 
     Also, after the third point of time, the device  1000  may not re-execute the background module  1900  until the device  1000  receives an input requesting execution of the application  1800 . 
     Therefore, since a time elapses after the execution of the application  1800  was stopped, the device  1000  may gradually decrease the execution time of the background module  1900  so that the device  1000  may decrease power consumption and a resource usage. 
       FIG. 4  is a flowchart of a method of periodically controlling execution of the background module since a time elapses from when execution of the application was stopped according to an embodiment of the present disclosure. 
     Referring to  FIG. 4 , in operation S 410 , the device  1000  may stop the application  1800  that is currently executed in the device  1000 . 
     The execution of the application  1800  may be stopped in response to a stop command from a user. For example, while the device  1000  executes the application  1800 , if the device  1000  receives a user input of stopping the application  1800 , the device  1000  may stop the execution of the application  1800 . Alternatively, the execution of the application  1800  may be stopped by an operating system. Alternatively, the execution of the application  1800  may be stopped by another application  1800 . 
     Since the execution of the application  1800  is stopped, the device  1000  may store a point of time when the execution of the application  1800  is stopped. 
     In operation S 420 , since it is after a first point of time, the device  1000  may stop execution of the background module  1900 . 
     Since a time elapses after the execution of the application  1800  was stopped, the device  1000  may determine an elapse of a time period between the point of time when the execution of the application  1800  was stopped and the first point of time. 
     For example, the device  1000  may an event that will occur if the time period between the point of time when the execution of the application  1800  was stopped and the first point of time has elapsed, when the device  1000  determines that the execution of the application  1800  was stopped. 
     Since the time period between the point of time when the execution of the application  1800  was stopped and the first point of time has elapsed, the device  1000  may generate a time event so as to notify that it is after the first point of time. When the device  1000  determines that the time event has occurred, the device  1000  may determine that it is after the first point of time. 
     The device  1000  may have a list of the background modules  1900  that configure the applications  1800 , respectively. Also, the device  1000  may determine not only the execution of the application  1800  but may also determine execution of the background module  1900  of the application  1800 . 
     Accordingly, when the device  1000  determines that it is after the first point of time, the device  1000  may stop the execution of the background module  1900 . 
     The device  1000  may stop execution of all of the background modules  1900  of the application  1800 . Alternatively, the device  1000  may stop execution of only some modules from among the background modules  1900  of the application  1800 . 
     In operation S 430 , the device  1000  may determine whether a first background stop time per unit time has elapsed from when the execution of the background module  1900  was stopped. 
     Since the background module  1900  is stopped, the device  1000  may obtain the first background stop time per unit time that corresponds to the time period between the point of time when the execution of the application  1800  was stopped and the first point of time. 
     Also, since a time elapses, the device  1000  may determine whether the first background stop time per unit time has elapsed from when the background module  1900  was stopped. 
     For example, the device  1000  may set an event will occur if the first background stop time per unit time has elapsed from when the background module  1900  was stopped, when the device  1000  determines that the background module  1900  was stopped. When the time event occurs, the device  1000  may determine that the first background stop time per unit time has elapsed. 
     In operation S 440 , if the first background stop time per unit time has elapsed, the device  1000  may re-execute the background module  1900 . 
     Since the first background stop time per unit time has elapsed, the device  1000  may re-execute the background module  1900  that was stopped in operation S 430 . 
     In operation S 450 , since a unit time elapses from when the execution of the background module  1900  was stopped, the device  1000  may re-stop the background module  1900 . 
     The device  1000  may determine whether the unit time has elapsed from when the execution of the background module  1900  was stopped. If the device  1000  determines that the unit time has elapsed from when the execution of the background module  1900  was stopped, the device  1000  may re-stop the background module  1900 . 
     The device  1000  may repeatedly perform operations S 420  through S 450  between the first point of time and the second point time. Accordingly, the device  1000  may stop the execution of the background module  1900  at every unit time between the first point of time and the second point time during the first background stop time per unit time. 
     The device  1000  may stop the execution of the background module  1900  at every unit time between a second point of time and a third point of time during a second background stop time per unit time that corresponds to a time period between the point of time when the execution of the application  1800  was stopped and the second point of time. 
       FIG. 5  illustrates an example in which the device periodically controls execution of the background module since a time elapses from when execution of the application was stopped, according to an embodiment of the present disclosure. 
     Referring to  FIG. 5 , the background module  1900  may be continuously executed after the execution of the application  1800  was stopped. In the embodiment of  FIG. 5 , it is assumed that a plurality of points of time and a plurality of background stop times per unit time are predetermined by the device  1000  before the execution of the application  1800  was stopped. 
     Since a time elapses from when the execution of the application  1800  was stopped, the device  1000  may determine whether it is after a first point of time. If the device  1000  determines that it is after the first point of time, the device  1000  may stop the execution of the background module  1900 . Also, the device  1000  may obtain a first background stop time per unit time that corresponds to a time period between the point of time when the execution of the application  1800  is stopped and the first point of time. 
     Since the execution of the background module  1900  was stopped, the device  1000  may determine whether the first background stop time per unit time has elapsed from the first point of time. If the device  1000  determines that the first background stop time per unit time has elapsed from the first point of time, the device  1000  may re-execute the stopped background module  1900 . 
     Since the background module  1900  is re-executed, the device  1000  may determine whether a unit time  510  has elapsed from when the execution of the background module  1900  was stopped. The unit time  510  may indicate an interval at which the execution of the background module  1900  is stopped. For example, the unit time  510  may be set as 30 minutes, 1 hour, or 1 day. 
     If the unit time  510  has elapsed from when the execution of the background module  1900  was stopped, the device  1000  may re-stop the execution of the background module  1900 . 
     The device  1000  may repeat operations, which were performed from the first point of time during the unit time  510 , from the first point of time to a second point of time. 
     Accordingly, the device  1000  may periodically execute the background module  1900 , thus, even when an execution time of the background module  1900  is decreased, the device  1000  may rapidly provide user-requested information when a user re-executes the application  1800 . 
     According to an elapse of time, the device  1000  may determine whether a time has elapsed from when the execution of the application  1800  was stopped to a second point of time. If the time has elapsed to the second point of time, the device  1000  may stop the execution of the background module  1900 . Also, the device  1000  may obtain a second background stop time per unit time that corresponds to a time period between the point of time when the execution of the application  1800  was stopped and the second point of time. In this case, the second background stop time per unit time may be greater than the first background stop time per unit time. 
     Since the background module  1900  was stopped, the device  1000  may determine whether the second background stop time per unit time has elapsed from the second point of time. If the device  1000  determines that the second background stop time per unit time has elapsed from the second point of time, the device  1000  may re-execute the stopped background module  1900 . 
     Since the background module  1900  is re-executed, the device  1000  may determine whether the unit time  510  has elapsed from when the execution of the background module  1900  was stopped. If the unit time  510  has elapsed from the second point of time when the execution of the background module  1900  was stopped, the device  1000  may re-stop the execution of the background module  1900 . 
     The device  1000  may repeat operations, which were performed from the second point of time during the unit time  510 , from the second point of time to a third point of time. 
     Referring to  FIG. 5 , since a time elapses from when the execution of the application  1800  was stopped, a background stop time per unit time may be increased. For example, the second background stop time per unit time may have a greater value than the first background stop time per unit time, and a third background stop time per unit time may have a greater value than the second background stop time per unit time. Accordingly, while the execution of the application  1800  was stopped, an execution time of the background module  1900  may be decreased. 
     The device  1000  may determine whether a time has elapsed from when the execution of the application  1800  was stopped to a fourth point of time. If the time has elapsed to the fourth point of time, the device  1000  may stop the execution of the background module  1900 . Since the execution of the background module  1900  is stopped, the device  1000  may not re-execute the background module  1900 . Accordingly, when a certain time period elapses from when the execution of the application  1800  was stopped, the background module  1900  may not be executed. 
     The device  1000  may determine whether a time has elapsed from when the execution of the application  1800  was stopped to a fifth point of time. If the time has elapsed to the fifth point of time, the device  1000  may uninstall the application  1800 . Alternatively, the device  1000  may delete all files related to the application  1800 , except for the installation file of the application  1800 . An embodiment related to this will be provided below with reference to  FIGS. 8 and 9 . 
     If the device  1000  receives a user input requesting the execution of the application  1800  during a time period between the point of time when the execution of the application  1800  was stopped and the fifth point of time, the device  1000  may entirely re-execute the application  1800  including the background module  1900 . 
       FIG. 6  illustrates a method of determining an execution time of the background module based on a use history of the application according to an embodiment of the present disclosure. 
     The device  1000  may obtain information about execution of the application  1800 . For example, when the application  1800  is executed, the device  1000  may check a point of time when execution of the application  1800  is started and a point of time when the execution of the application  1800  is ended, and may calculate an execution time of the application  1800 , a total number of times that the application  1800  is executed, or the like. 
     The device  1000  may determine a user&#39;s use pattern of the application  1800 , based on the information about the execution of the application  1800 . The use pattern of the application  1800  may be determined to correspond to each application  1800 . The use pattern of the application  1800  may include an average execution time of the application  1800 , an average number of times of executing the application  1800 , an execution interval, a time of a day when the application  1800  is mainly executed, or a day of a week when the application  1800  is executed. 
     The device  1000  may determine, based on the use pattern of the application  1800 , a method of controlling execution of the background module  1900  after the execution of the application  1800  is stopped. 
     For example, the device  1000  may determine, based on the use pattern of the application  1800 , a plurality of points of time and an expected deletion time of the application  1800 . 
     For example, when the average execution time of the application  1800  or the average number of times of executing the application  1800  is decreased, the device  1000  may set the plurality of points of time and the expected deletion time of the application  1800  so that a time period between a point of time when the execution of the application  1800  was stopped and the plurality of points of time and the expected deletion time of the application  1800  may be decreased. 
     Referring to  FIG. 6 , an application 2 has an execution time per week  610  and a number of times of execution per week  620 . Accordingly, the device  1000  may determine a plurality of check points of time  630  for the application 1 as 2 weeks, 4 weeks, 6 weeks, and 8 weeks. Also, the device  1000  may determine an expected deletion time  640  for the application 1 as 9 weeks. On the other hand, the device  1000  may determine the plurality of check points of time  630  for the application 2 as 1 week, 4 weeks, 5 weeks, and 6 weeks and may determine the expected deletion time  640  for the application 2 as 7 weeks. 
     Thus, if the application  1800  is not frequently used by the user, after the execution of the application  1800  is ended, the execution time of the background module  1900  may be decreased. Also, after the execution of the application  1800  is ended, the application  1800  that is not frequently used by the user may be further quickly deleted. 
       FIG. 7  illustrates a method of determining an execution time of the background module based on a characteristic of the background module according to an embodiment of the present disclosure. 
     Referring to  FIG. 7 , the device  1000  may obtain the characteristic of the background module  1900 . The characteristic of the background module  1900  may include at least one selected from power consumption, a network use, and a central processing unit (CPU) use rate. 
     For example, when the background module  1900  is executed, the device  1000  may calculate the network use or the CPU use rate of the background module  1900 . Also, the device  1000  may estimate the power consumption of the background module  1900 , based on the calculated network use or the calculated CPU use rate of the background module  1900 . 
     The device  1000  may determine, based on the characteristic of the background module  1900 , the method of controlling the execution of the background module  1900  after the execution of the application  1800  is stopped. The device  1000  may determine a background stop time, based on the characteristic of the background module  1900 . For example, the device  1000  may increase the background stop time when the power consumption, the network use, or the CPU use rate of the background module  1900  is great. 
     Referring to  FIG. 7 , a network use  710  and a CPU use rate  720  of the background module  1900  of the application 1 are greater than the network use  710  and the CPU use rate  720  of the background module  1900  of the application 2. Accordingly, the device  1000  may set a background stop time  730  of the application 1 as 30 minutes, 40 minutes, and 50 minutes. On the other hand, the device  1000  may set the background stop time  730  of the application 2 as 20 minutes, 30 minutes, and 40 minutes. 
     Therefore, when the power consumption, the network use, or the CPU use rate of the background module  1900  is increased, the execution time of the background module  1900  may be decreased. 
       FIG. 8  is a flowchart of a method of deleting the application since a time elapses from when execution of the application was stopped according to an embodiment of the present disclosure. 
     Referring to  FIG. 8 , in operation  5810 , the device  1000  may determine whether an expected deletion time of the application  1800  has elapsed from when execution of the application  1800  was stopped. 
     The expected deletion time of the application  1800  may be determined based on at least one selected from a use pattern of the application  1800  and a characteristic of the background module  1900 . 
     If the device  1000  determines that the expected deletion time of the application  1800  has elapsed in operation  5810 , the device  1000  may determine whether an installation file of the application  1800  is stored in the device  1000  in operation S 820 . 
     In order to correspond to the ID information of the application  1800 , the device  1000  may store whether the installation file of the application  1800  is stored therein. Alternatively, the device  1000  may scan a storage location where installation files of the application  1800  are collectively stored and may determine whether the installation file of the application  1800  exists therein. 
     If the installation file of the application  1800  is not stored in the device  1000  in operation S 820 , the device  1000  may generate the installation file of the application  1800 , based on a storage location at which the application  1800  was installed in operation S 830 . 
     For example, the device  1000  may obtain the storage location at which the application  1800  was installed. In order to correspond to the ID information of the application  1800 , the device  1000  may store the storage location, in the form of a file or a database, at which the application  1800  was installed. Accordingly, the device  1000  may obtain a storage location at which necessary files for the installation file of the application  1800  were stored to correspond to the ID information of the application  1800 . 
     The device  1000  may extract, from the obtained storage location, the execution file of the application  1800 , a resource file of the application  1800 , an information file about the application  1800 , and an information file and an authentication file about an execution authority of the application  1800 . Afterward, the device  1000  may package the extracted files and may re-generate an installation file of the application  1800 . For example, the device  1000  may compress the extracted files into at least one file by using a predetermined method and may re-generate the installation file. 
     In this case, the device  1000  may re-generate the installation file of the application  1800  such that the installation file may be configured of same files as an original file. Also, the device  1000  may re-generate the installation file of the application  1800  in such a manner that the installation file may include not only original files that configure the distributed installation file of the application  1800  but may also include data that was generated by executing the application  1800 . The data that was generated by executing the application  1800  may include data about a user&#39;s use of the application  1800 , at least one file that was generated by executing the application  1800 , or the like. In one or more various embodiments, the re-generated installation file of the application  1800  may be referred to as a backup file of the application  1800 . 
     In operation S 840 , the device  1000  may store the re-generated installation file of the application  1800 . 
     The device  1000  may store the re-generated installation file of the application  1800  in a preset installation file storage location. Also, in order to correspond to the ID information of the application  1800 , the device  1000  may store the storage location in which the re-generated installation file of the application  1800  is stored. 
     In operation S 850 , the device  1000  may uninstall the application  1800  that was installed in the device  1000 . 
     The device  1000  may uninstall the application  1800  by deleting files and a plurality of pieces of data that are related to the application  1800 , except for the re-generated installation file of the application  1800 . 
     For example, the device  1000  may delete the execution file, the resource file, etc. of the application  1800  that are stored in the device  1000 . Also, the device  1000  may delete data or a file that was generated by executing the application  1800 . The device  1000  may delete information about the uninstalled application  1800  from a plurality of pieces of information about the applications  1800  installed in the device  1000 . Also, the device  1000  may store ID information of the application  1800  that was uninstalled since the application  1800  was not used for a predetermined period. 
     Before the device  1000  uninstalls the application  1800  in the device  1000 , the device  1000  may display a user interface for receiving an input for selecting whether to uninstall the application  1800 . The device  1000  may uninstall the application  1800  only when the device  1000  receives a user input selecting to uninstall the application  1800 . 
     Therefore, the device  1000  may uninstall the application  1800  that has not been used for a predetermined period and may increase a usable volume of a storage unit. In particular, when the application  1800  is installed, the application  1800  may be set to be installed at a preset location such as a system drive in which an operating system was installed. In this case, the device  1000  may delete unnecessary files related to the application  1800  and thus may increase a storage volume in which another application  1800  may be installed. 
       FIGS. 9A and 9B  illustrate examples in which the application is uninstalled according to an embodiment of the present disclosure. 
     Referring to  FIG. 9A , before the device  1000  uninstalls the application  1800 , the device  1000  may display a user interface  930  for receiving an input for selecting whether to uninstall the application  1800 . 
     If the device  1000  receives a user input selecting to uninstall the application  1800 , the device  1000  may uninstall the application  1800 . If the device  1000  receives a user input for selecting not to uninstall the application  1800 , the device  1000  may not uninstall the application  1800  but may maintain a pause of the background module  1900  of the application  1800  until the device  1000  receives an input requesting execution of the application  1800 . 
     Referring to  FIG. 9B , the device  1000  may display a user interface  950  for receiving an input for selecting whether to delete the application  1800  in the device  1000 . 
     If the application  1800  has not been executed for a predetermined period, the device  1000  may display a user interface for receiving an input for selecting whether to delete the application  1800 . Also, only when the device  1000  receives the user input selecting to install the application  1800  in the example of  FIG. 9A , the device  1000  may display the user interface  950  for receiving an input for selecting whether to delete the application  1800 . 
     If the device  1000  receives the user input selecting to uninstall the application  1800 , the device  1000  may uninstall the application  1800  and may also delete the installation file of the application  1800 . 
     Also, the device  1000  may also display information  910  indicating an elapsed time period from when the execution of the application  1800  was stopped. Also, the device  1000  may display power that is consumed while the application  1800  is stopped. The device  1000  may also display a characteristic of the background module  1900  of the application  1800 . Also, the device  1000  may display information indicating a user&#39;s use history of the application  1800  or a user&#39;s use pattern of the application  1800 . The device  1000  may also display information indicating a size of the installation file of the application  1800 . 
     Thus, the device  1000  may delete the applications  1800  that are determined as unnecessary applications by a user, so that power consumption of the device  1000  may be decreased and storage of the device  1000  may be efficiently used. 
       FIG. 10  is a flowchart of a method of reinstalling and executing the application when a user input requesting execution of the application is received after the application is uninstalled according to an embodiment of the present disclosure. 
     In operation S 1010 , the device  1000  may receive a user input requesting the execution of the application  1800 . 
     After the application  1800  was uninstalled, the device  1000  may receive the user input requesting the execution of the application  1800 . 
     For example, the device  1000  may store ID information of the application  1800  that was uninstalled since the application  1800  had not been used for a predetermined period. Also, before the device  1000  uninstalls the application  1800 , if an installation file of the application  1800  is not stored, the device  1000  may re-generate the installation file of the application  1800 . 
     Also, the device  1000  may store the re-generated installation file of the application  1800  in a preset storage location. Then, in order to correspond to the ID information of the application  1800 , the device  1000  may store information about the storage location in which the re-generated installation file of the application  1800  is stored. 
     Accordingly, based on the ID information of the application  1800  of which installation file is stored and that was uninstalled since it had not been used for a predetermined period, the device  1000  may display an interface for receiving a user input requesting execution of the application  1800 . For example, the device  1000  may display a list of the applications  1800  that were uninstalled but are re-executable by using stored installation files. 
     In operation S 1020 , the device  1000  may install the application  1800 , based on the storage location of the re-generated installation file of the application  1800 . 
     If the device  1000  receives a user input selecting the uninstalled application  1800 , the device  1000  may obtain a storage location of an installation file of the selected application  1800 , in order to correspond to ID information of the selected application  1800 . Then, the device  1000  may reinstall the application  1800 , based on the obtained storage location. 
     For example, the device  1000  may generate a logical storage for installation of the application  1800 . For example, the device  1000  may generate a directory for storing the installation file and a directory for storing necessary data for the execution of the application  1800 . 
     Afterward, the device  1000  may decompress the installation file of the selected application  1800  and may extract the installation file, a resource file, or the like of the selected application  1800 . Then, the device  1000  may store the extracted installation file, the resource file, or the like of the selected application  1800  in the generated logical storage. 
     The installation file of the selected application  1800  may be an installation file that is re-generated in the device  1000 . In this case, the installation file of the selected application  1800  may include data that was generated when the selected application  1800  was executed in the device  1000  before the installation file is re-generated. The data that was generated according to the execution of the selected application  1800  may include data about a use of the selected application  1800 , a file that was generated by executing the selected application  1800 , or the like. 
     If the installation file of the selected application  1800  further includes the data that was generated according to the execution of the selected application  1800 , the device  1000  may store the included data in a same directory in which the data was generated. Accordingly, if the device  1000  installs the re-generated installation file of the selected application  1800  in the device  1000 , the device  1000  may provide a user with an execution environment of the selected application  1800  and user data that are same as those of the selected application  1800  when the installation file of the selected application  1800  was re-generated. 
     The device  1000  may allocate ID information of the selected application  1800  in order to correspond to the installed application  1800 . Also, in order to correspond to the ID information of the installed application  1800 , the device  1000  may store, in the form of a file or a database, the storage location of the installation file of the selected application  1800  and the storage location of the selected application  1800 . 
     In operation S 1030 , the device  1000  may execute the installed application  1800 . The device  1000  may obtain the storage location at which the application  1800  is installed. Then, the device  1000  may load the execution file of the application  1800  to a memory, may operate the device  1000  according to an execution code in the loaded execution file, and thus may execute the application  1800 . 
       FIGS. 11A and 11B  illustrate a method of reinstalling and executing the application when a user input requesting execution of the application is received after the application is uninstalled according to the embodiment of  FIG. 10 . 
     Referring to  FIGS. 11A and 11B , the device  1000  may display an interface for receiving a user input requesting execution of the application  1800 , based on ID information of the application  1800  of which installation filed is stored but that was uninstalled since the application  1800  had not been used for a predetermined period. 
     Referring to  FIG. 11A , the device  1000  may display a user interface  1110  that shows the applications  1800  that are executable in the device  1000 . In this case, the device  1000  may also display user interfaces  1120 ,  1130 , and  1140  that indicate the applications  1800  that were uninstalled. 
     The device  1000  may differ in displaying a user interface indicating the uninstalled application  1800  and displaying a user interface indicating the application that is installed in the device  1000 . 
     Referring to  FIG. 11B , if the device  1000  receives a user input selecting the uninstalled application  1800 , in order to correspond to ID information of the selected application  1800 , the device  1000  may obtain a storage location of an installation file of the selected application  1800 . Then, the device  1000  may install the selected application  1800  by using the obtained installation file of the selected application  1800 . In this case, the device  1000  may display a user interface  1150  indicating that the selected application  1800  is being installed. Also, the device  1000  may execute the installed application  1800 . 
       FIGS. 12 and 13  are block diagrams of the device, according to various embodiments of the present disclosure. 
     Referring to  FIGS. 12 and 13 , a device  1000  may include a storage  1700  and a controller  1300 . However, not all elements shown in  FIG. 12  are necessary elements. That is, the device  1000  may be embodied with more or less elements than the elements shown in  FIG. 12 . 
     For example, referring to  FIG. 13 , the device  1000  may further include a user input unit  1100 , a display unit  1210 , an output unit  1200 , a communication unit  1500 , and an audio/video (A/V) input unit  1600 , as well as the storage  1700  and the controller  1300 . 
     Hereinafter, the elements are described below. 
     Referring to  FIG. 12 , the storage  1700  may store a program that is processed and controlled by the controller  1300  or may store input/output data. 
     Also, the storage  1700  may store at least one program for controlling the background module  1900 . The at least one program may include an execution code for determining a first background stop time that is a time period to stop execution of the background module  1900  so as to correspond to a time period between a point of time when the execution of the application  1800  was stopped and a first point of time, and an execution code for stopping the execution of the background module  1900  during the determined first background stop time. 
     The execution code for stopping the execution of the background module  1900  may include a phase of stopping the execution of the background module  1900  since it is after the first point of time, a phase of determining whether a first background stop time per unit time elapsed, and if the first background stop time per unit time elapsed, re-executing the background module  1900 . 
     The at least one program may further include an execution code for uninstalling the application  1800  in a mobile terminal since it is after a last point of time, from among a plurality of points of time, from when the execution of the application  1800  was stopped. 
     The execution code for uninstalling the application  1800  may include generating an installation file of the application  1800  based on a storage location at which the application  1800  was installed, storing the installation file of the application  1800 , and uninstalling the application  1800 . 
     Also, the execution code for uninstalling the application  1800  may further include displaying a user interface for receiving an input for selecting whether to uninstall the application  1800  and uninstalling the application  1800  based on a user input selecting to uninstall the application  1800 . 
     Also, the at least one program may further include an execution code for receiving a user input requesting execution of the application  1800 , an execution code for installing the application  1800 , based on a storage location of the installation file of the application  1800 , upon receipt of a user input requesting the execution of the application  1800 , and an execution code for executing the application  1800 . 
     The storage  1700  may include a storage medium of at least one type of a flash memory, a hard disk, a multimedia card type memory, a card type memory such as a Secure Digital (SD) or extreme Digital (XD) card memory, a Random Access Memory (RAM), a Static Random Access Memory (SRAM), a Read-Only Memory (ROM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a Programmable Read-Only Memory (PROM), a magnetic memory, a magnetic disc, and an optical disc. Also, the device  1000  may run web storage or a cloud server that performs a storage function of the storage  1700  on the Internet. 
     The controller  1300  generally controls operations of the device  1000 . For example, the controller  1300  may execute programs stored in the storage  1700  and thus may control the user input unit  1100 , the output unit  1200 , a sensor (not shown), the communication unit  1500 , the AN input unit  1600 , and the like. 
     Also, the controller  1300  may execute a program stored in the storage  1700  and thus may control the application  1800 , which includes the background module  1900 . The controller  1300  may load the program stored in the storage  1700  to a memory, may operate the device  1000  according to an execution code of the loaded program, and thus may control the application  1800  having the background module  1900 . 
     Referring to  FIG. 13 , the storage  1700  may include the application  1800 , an installation control logic  1720 , an application control logic  1730 , and a background module control logic  1740 . The application  1800  may include the background module  1900 . 
     The installation control logic  1720 , the application control logic  1730 , and the background module control logic  1740  may be implemented as software. The installation control logic  1720 , the application control logic  1730 , and the background module control logic  1740  may be executed by the controller  1300  in a manner that their functions may be performed. Although not illustrated, in another embodiment, the installation control logic  1720 , the application control logic  1730 , and the background module control logic  1740  may not be implemented as software, but may also be an integrated circuit logic in the device  1000 . 
     Hereinafter, the functions of the installation control logic  1720 , the application control logic  1730 , and the background module control logic  1740  that are executed by the controller  1300  are described below. 
     The application control logic  1730  and the background module control logic  1740  may have a control authority that is higher than a control authority of the applications  1800  with respect to another application  1800 . 
     Thus, the background module control logic  1740  may exclusively control the background module  1900 . For example, when the background module control logic  1740  stops execution of the background module  1900 , the application control logic  1730  may re-execute the background module  1900  in response to a user input, but the background module control logic  1740  may limit another application  1800  in randomly executing the stopped background module  1900 . 
     To do so, the application control logic  1730  and the background module control logic  1740  may be implemented as framework level software that controls execution of the applications  1800 . 
     The installation control logic  1720  may download an installation file of the application  1800  from an external server or an external device to the device  1000 . The installation control logic  1720  may store the downloaded installation file of the application  1800  in a predetermined logical storage location of the storage  1700 . 
     The installation file of the application  1800  may indicate a distributed file to make the application  1800  installed in the device  1000 . The installation file of the application  1800  may include an execution file of the application  1800  and a resource file for the execution file of the application  1800 . Also, the installation file of the application  1800  may further include an information file such as a title or a version of the application  1800 , and an information file and an authentication file about an execution authority of the application  1800 . 
     The installation control logic  1720  may install the application  1800 , based on the installation file of the application  1800 . 
     For example, the installation control logic  1720  may generate a logical storage in which the application  1800  is to be installed. The installation control logic  1720  may generate a directory for storing the installation file and a directory for storing necessary data for the execution of the application  1800 . The necessary data for the execution of the application  1800  may include resource data, a database of the application  1800 , or data that is generated in response to the execution of the application  1800 . 
     Afterward, the installation control logic  1720  may decompress the compressed installation file of the application  1800  and may extract the installation file and a resource file of the application  1800 . Then, the installation control logic  1720  may store the installation file and the resource file of the application  1800  in the generated logical storage. 
     The installation control logic  1720  may allocate ID information of the application  1800  in order to correspond to the installed application  1800 . Also, in order to correspond to the ID information of the installed application  1800 , the installation control logic  1720  may store, in the form of a file or a database, the storage location of the installation file of the application  1800  and the storage location of the application  1800 . 
     The application control logic  1730  may control the execution of the application  1800 . Also, the application control logic  1730  may store information related to the execution of the application  1800 . 
     For example, if the application control logic  1730  receives a user input requesting the execution of the application  1800 , the application control logic  1730  may obtain the storage location of the installation file of the application  1800  that is stored by the installation control logic  1720 . Then, the application control logic  1730  may load the execution file of the application  1800  to a memory, may operate the device  1000  according to an execution code in the loaded execution file, and thus may execute the application  1800 . 
     Since the application  1800  is executed, the controller  1300  may operate the device  1000  by controlling the user input unit  1100 , the output unit  1200 , the sensor (not shown), the communication unit  1500 , and the AN input unit  1600 . 
     The application control logic  1730  may store the ID information of the executed application  1800 . Also, in order to correspond to the ID information of the application  1800 , the application control logic  1730  may store ID information of an executed module. 
     If the application control logic  1730  receives a user input of stopping the execution of the application  1800 , the application control logic  1730  may stop the execution of the application  1800 . The application control logic  1730  may stop execution of all modules that configure the application  1800  or may stop execution of only some preset modules in order to correspond to the application  1800 . The application control logic  1730  may store ID information of the application  1800  of which execution is stopped. Also, the application control logic  1730  may store ID information of a module of which execution is stopped and ID information of another module that is constantly executed. 
     The application control logic  1730  may determine a user&#39;s use pattern of the application  1800 , based on the information about the execution of the application  1800 . The use pattern of the application  1800  may be determined while corresponding to each application  1800 . The use pattern of the application  1800  may include an average execution time of the application  1800 , an average number of times of executing the application  1800 , an execution interval, a time of a day when the application  1800  is mainly executed, or a day of a week when the application  1800  is mainly executed. 
     The background module control logic  1740  may determine, based on the use pattern of the application  1800 , a method of controlling execution of the background module  1900  after the execution of the application  1800  is stopped. 
     The background module control logic  1740  may obtain a characteristic of the background module  1900 . The characteristic of the background module  1900  may include at least one selected from power consumption, a network use, and a CPU use rate. 
     For example, when the background module  1900  is executed, the background module control logic  1740  may monitor an amount of data that the background module  1900  exchanges with an external device and a CPU use by the background module  1900 . The background module control logic  1740  may estimate the power consumption of the background module  1900 , based on the network use or the CPU use rate of the background module  1900 . 
     The background module control logic  1740  may determine a first background stop time that corresponds to the background module  1900 , based on at least one selected from the power consumption, resource use, and the network use of the background module  1900 . For example, when the power consumption of the background module  1900  is great, the background module control logic  1740  may control an execution time period of the background module  1900  to be decreased while the execution of the application  1800  is stopped. 
     Since a time elapses from when the execution of the application  1800  was stopped, the background module control logic  1740  may control the execution of the background module  1900 . 
     The background module control logic  1740  may determine the first background stop time that is a time period to stop the execution of the background module  1900  so as to correspond to a time period between the point of time when the execution of the application  1800  was stopped and a first point of time. 
     The background module control logic  1740  may determine the first background stop time in proportion to the time period between the point of time when the execution of the application  1800  was stopped and the first point of time. 
     The background module control logic  1740  may predetermine the first background stop time before the first point of time. In this case, when it is after the first point of time from when the execution of the application  1800  was stopped, the background module control logic  1740  may obtain a predetermined first background stop time. 
     The background module control logic  1740  may stop the execution of the background module  1900  during the determined first background stop time. 
     Since it is after the first point of time from when the execution of the application  1800  was stopped, the background module control logic  1740  may stop the execution of the background module  1900  during the determined first background stop time. 
     The background module control logic  1740  may stop the execution of the background module  1900  during the first background stop time while a time elapses from the first point of time to a second point time. The background module control logic  1740  may constantly stop the background module  1900  during a background stop time. Alternatively, the background module control logic  1740  may periodically stop the background module  1900  during the background stop time. 
     For example, the background module control logic  1740  may set that an event will occur if the time period between the point of time when the execution of the application  1800  was stopped and the first point of time has elapsed, when background module control logic  1740  determines that the execution of the application  1800  was stopped. 
     Since the time period between the point of time when the execution of the application  1800  was stopped and the first point of time has elapsed, the device  1000  may generate a time event so as to notify that it is after the first point of time. When the background module control logic  1740  determines that the time event has occurred, the background module control logic  1740  may determine that it is after the first point of time. 
     The background module control logic  1740  may have a list of the background modules  1900  that configure the applications  1800 , respectively. Also, the background module control logic  1740  may determine not only the execution of the application  1800  but may also determine execution of the background module  1900  of the application  1800 , based on the information stored by the application control logic  1730 . 
     Accordingly, when the background module control logic  1740  determines that it is after the first point of time, the background module control logic  1740  may stop the execution of the background module  1900 . 
     Since the background module  1900  is stopped, the background module control logic  1740  may obtain a first background stop time per unit time that corresponds to the time period between the point of time when the execution of the application  1800  was stopped and the first point of time. 
     Also, the background module control logic  1740  may set that a time event will occur if the first background stop time per unit time has elapsed from when the background module  1900  was stopped, when the background module control logic  1740  determines that the background module  1900  was stopped. When the time event occurs, the background module control logic  1740  may determine that the first background stop time per unit time has elapsed. 
     If the first background stop time per unit time has elapsed, the device  1000  may re-execute the background module  1900 . 
     Since the first background stop time per unit time has elapsed, the background module control logic  1740  may re-execute the background module  1900  that was stopped. 
     If the background module control logic  1740  determines that a unit time has elapsed from the first point of time, the background module control logic  1740  may re-stop the background module  1900 . 
     Accordingly, the background module control logic  1740  may stop the execution of the background module  1900  at every unit time between the first point of time and the second point time during the first background stop time per unit time. 
     The background module control logic  1740  may stop the execution of the background module  1900  at every unit time between the second point of time and a third point of time during a second background stop time per unit time that corresponds to a time period between the point of time when the execution of the application  1800  was stopped and the second point of time. 
     If an expected deletion time of the application  1800  has elapsed from when execution of the application  1800  was stopped, the installation control logic  1720  may uninstall the application  1800 . 
     The installation control logic  1720  may determine the expected deletion time of the application  1800 , based on at least one selected from the use pattern of the application  1800  and the characteristic of the background module  1900 . 
     If the installation control logic  1720  determines that the expected deletion time of the application  1800  has elapsed, the installation control logic  1720  may determine whether the installation file of the application  1800  is stored in the device  1000 . 
     In order to correspond to the ID information of the application  1800 , the application control logic  1730  may store, in the storage  1700 , whether the installation file of the application  1800  is stored. Alternatively, the installation control logic  1720  may scan a storage location where installation files of the applications  1800  are collectively stored and may determine whether the installation file of the application  1800  is stored therein. 
     If the installation file of the application  1800  is not stored in the device  1000 , the installation control logic  1720  may generate the installation file of the application  1800 , based on a storage location at which the application  1800  was installed. 
     For example, the installation control logic  1720  may obtain the storage location at which the application  1800  was installed. In order to correspond to the ID information of the application  1800 , the installation control logic  1720  may store the storage location, in the form of a file or a database, at which the application  1800  was installed. Accordingly, the installation control logic  1720  may obtain a storage location at which necessary files for the installation file of the application  1800  were stored to correspond to the ID information of the application  1800 . 
     The installation control logic  1720  may extract, from the obtained storage location, the execution file of the application  1800 , a resource file of the application  1800 , an information file about the application  1800 , and an information file and an authentication file about an execution authority of the application  1800 . Afterward, the installation control logic  1720  may package the extracted files and may re-generate an installation file of the application  1800 . For example, the installation control logic  1720  may compress the extracted files into a file by using a predetermined method and may re-generate the installation file. 
     In this case, the installation control logic  1720  may re-generate the installation file of the application  1800  in such a manner that the installation file may be configured of same files as an original file. Also, the installation control logic  1720  may re-generate the installation file of the application  1800  in such a manner that the installation file may include not only original files that configure the distributed installation file of the application  1800  but may also include data that was generated by executing the application  1800 . The data that was generated by executing the application  1800  may include data about a user&#39;s use of the application  1800 , a file that was generated by executing the application  1800 , or the like. 
     The installation control logic  1720  may store the re-generated installation file of the application  1800  in a preset installation file storage location. Also, in order to correspond to the ID information of the application  1800 , the installation control logic  1720  may store the storage location in which the re-generated installation file of the application  1800  is stored. 
     Also, the installation control logic  1720  may uninstall the application  1800  that was installed in the device  1000 . For example, the installation control logic  1720  may uninstall the application  1800  by deleting files and a plurality of pieces of data that are related to the application  1800 , except for the re-generated installation file of the application  1800 . 
     The installation control logic  1720  may delete information about the uninstalled application  1800  from a plurality of pieces of information about the applications  1800  that are installed in the device  1000 . Also, the installation control logic  1720  may store ID information of the application  1800  that was uninstalled since the application  1800  was not used for a predetermined period. 
     Before the installation control logic  1720  uninstalls the application  1800  in the device  1000 , the installation control logic  1720  may display, on the display unit  1210 , a user interface for receiving an input for selecting whether to uninstall the application  1800 . The installation control logic  1720  may uninstall the application  1800 , based on a user input selecting to uninstall the application  1800 . 
     After the application  1800  is uninstalled, if the installation control logic  1720  receives a user input requesting an execution of the application  1800 , the installation control logic  1720  may reinstall the application  1800 . 
     After the application  1800  is uninstalled, the application control logic  1730  may receive a user input of executing the application  1800 . 
     For example, based on the ID information of the application  1800  of which installation file is stored and that was uninstalled since it had not been used for a predetermined period, the application control logic  1730  may display a list of the re-executable applications  1800 . 
     If the application control logic  1730  receives a user input selecting the uninstalled application  1800 , the application control logic  1730  may obtain a storage location of an installation file of the selected application  1800  in order to correspond to ID information of the selected application  1800 . Then, the application control logic  1730  may control the installation control logic  1720  to reinstall the selected application  1800 , based on the obtained storage location. 
     The application control logic  1730  may obtain a storage location at which the selected application  1800  is reinstalled. Then, the application control logic  1730  may load an execution file of the selected application  1800  to a memory, may operate the device  1000  according to an execution code in the loaded execution file, and thus may execute the application  1800 . 
     The user input unit  1100  may be a unit by which a user inputs data so as to control the device  100 . For example, the user input unit  1100  may include a key pad, a dome switch, a touch pad (a touch capacitive type touch pad, a pressure resistive type touch pad, an infrared beam sensing type touch pad, a surface acoustic wave type touch pad, an integral strain gauge type touch pad, a piezo effect type touch pad, or the like), a jog wheel, and a jog switch, but one or more various embodiments are not limited thereto. 
     The output unit  1200  may function to output an audio signal, a video signal, or a vibration signal by being controlled by the controller  1300 , and may include the display unit  1210 , a sound output unit  1220 , a vibration motor  1230 , or the like. 
     The display unit  1210  is controlled by the controller  1300  and thus displays information that is processed in the device  1000 . 
     When the display unit  1210  and a touch pad form a mutual layer structure and then are formed as a touch screen, the display unit  1210  may be used as both an output device and input device. The display unit  1210  may include at least one selected from a Liquid Crystal Display (LCD), a Thin Film Transistor-Liquid Crystal Display (TFT-LCD), an Organic Light-Emitting Eiode (OLED) display, a flexible display, a three-dimensional (3D) display, and an electrophoretic display. Also, according to a type of the device  1000 , the device  1000  may include at least two display units  1210 . 
     The sound output unit  1220  may output audio data that is received from the communication unit  1500  or is stored in the storage  1700 . The sound output unit  1220  may also output a sound signal (e.g., a call signal receiving sound, a message receiving sound, a notifying sound, or the like) related to capabilities performed by the device  1000 . The sound output unit  1220  may include a speaker, a buzzer, or the like. 
     The sensor (not shown) may sense a status of the device  1000  or a status around the device  1000 , and may deliver information about the sensed status to the controller  1300 . The sensor may include, but is not limited to, a magnetic sensor, an acceleration sensor, a temperature/humidity sensor, an infrared sensor, a gyroscope sensor, a position sensor (e.g., GPS), an air pressure sensor, a proximity sensor, or a Red, Green, and Blue (RGB) sensor (i.e., a luminance sensor). Functions of the sensors may be intuitionally deduced by one of ordinary skill in the art by referring to names of the sensors, thus, detailed descriptions thereof are omitted here. 
     The communication unit  1500  may include one or more elements allowing communication between the device  1000  and an external device (not shown) or communication between the device  1000  and a server (not shown). For example, the communication unit  1500  may include a short-range wireless communication unit  1510 , a mobile communication unit  1520 , and a broadcast receiving unit  1530 . 
     The short-range wireless communication unit  1510  may include, but is not limited to, a Bluetooth communication unit, a Bluetooth Low Energy (BLE) communication unit, a Near Field Communication (NFC) unit, a Wireless Local Area Network (WLAN), Wireless Fidelity (Wi-Fi) communication unit, a ZigBee communication unit, an Infrared Data Association (IrDA) communication unit, a Wi-Fi Direct (WFD) communication unit, an Ultra WideBand (UWB) communication unit, or an Ant+ communication unit. 
     The mobile communication unit  1520  exchanges a wireless signal with at least one selected from a base station, an external terminal, and a server on a mobile communication network. The wireless signal may include various types of data according to communication of a sound call signal, a video call signal, or a text/multimedia message. 
     The broadcast receiving unit  1530  receives a broadcast signal and/or information related to a broadcast from the outside through a broadcast channel. The broadcast channel may include a satellite channel and a ground wave channel. According to an embodiment, the device  1000  may not include the broadcast receiving unit  1530 . 
     The A/V input unit  1600  may receive an input of an audio signal or a video signal and may include a camera  1610  and a microphone  1620 . The camera  1610  may obtain an image frame such as a still image or a video via an image sensor during a video call mode or an image-capturing mode. An image that is captured via the image sensor may be processed by the controller  1300  or a separate image processing unit (not shown). 
     The image frame that is processed by the camera  1610  may be stored in the storage  1700  or may be transmitted to an external source via the communication unit  1500 . According to a configuration of the device  1000 , two or more cameras  1610  may be arranged. 
     The microphone  1620  receives an external sound signal as an input and processes the received sound signal into electrical voice data. For example, the microphone  1620  may receive a sound signal from an external device or a speaker. In order to remove noise that occurs while the sound signal is externally input, the microphone  1620  may use various noise removing algorithms. 
     It should be understood that the various embodiments described therein should be considered in a descriptive sense only and not for purposes of limitation. Descriptions of features or aspects within each embodiment should typically be considered as available for other similar features or aspects in other various embodiments. 
     While the present disclosure has been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as defined by the appended claims and their equivalents.