Method and apparatus for managing application

A method of managing an application having a background module is provided. The method 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.

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.

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.

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.

DETAILED DESCRIPTION

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.

FIGS. 1A and 1Billustrate an example in which a device1000controls 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 toFIG. 1A, the device1000may execute at least one application1800. The application may be, for example, related to a social network, position tracking, motion recognition, gaming, and so forth. That is, the application1800may be executed by the device1000to perform a particular function (hereinafter, the application1800may be referred to as ‘the social network application1800’, ‘the position tracking application1800’, or ‘the motion recognition application1800’). The application1800may include application software. In one or more various embodiments, the application1800may be referred to as various names such as a software application, a program, a software module, an application program, and an App.

The application1800may be configured by one or more modules. Here, each module may mean software that is implemented to perform a particular function of the application1800. The modules may interact with each other to execute the application1800. Also, some modules may independently operate so that only some functions of the application1800may be performed. One module may be implemented by executing at least one thread.

Also, the application1800may include at least one background module1900. The background module1900may be unrecognizable to a user but continuously performs a particular function in the device1000. For example, the background module1900may 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 application1800for periodically exchanging data with a server, a module of the position tracking application1800for periodically receiving data from a global positioning system (GPS) satellite, and a module of the motion recognition application1800for periodically sensing a motion of the user. In one or more various embodiments, the background module1900may be referred to as a service, a background service, a server, and a daemon.

The application1800may include at least one foreground module. The foreground module from among modules that configure the application1800may 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 application1800, and a module for outputting sound in response to execution of the application1800.

The application1800may be configured of only the background module1900or may include the background module1900and the foreground module.

When the execution of the application1800is stopped, at least one module may be continuously executed. For example, even when the social network application1800is stopped while the social network application1800is executed, a module may be continuously executed to exchange data with a server and to store a received message in the device1000.

Also, even when the application1800is not executed, the background module1900may be continuously executed from when the application1800was installed.

A stop of the execution of the application1800may mean that the foreground module from among the modules that configure the application1800is not executed.

Also, the stop of the execution of the application1800or a stop of the execution of the background module1900may include not only an end of the execution but may also include a pause of the execution.

The device1000may download an installation file of the application1800from an external server or an external device to the device1000. The device1000may store the downloaded installation file of the application1800in a predetermined storage location (e.g., /data/app).

The installation file of the application1800may indicate a distributed file to make the application1800installed in the device1000. The installation file of the application1800may include an execution file of the application1800and a resource file for the execution file of the application1800. Also, the installation file of the application1800may further include an information file such as a title or a version of the application1800, an execution authority of the application1800with respect to resources of the device1000, and an authentication file about the execution of the application1800.

A format of the installation file of the application1800may be a compressed file format (e.g., zip, apk or jar). Also, in one or more various embodiments, the installation file of the application1800may be referred to as a package file of the application1800.

The device1000may install the application1800, based on the installation file of the application1800.

For example, the device1000may generate a logical storage in which the application1800is to be installed. The device1000may generate a directory (e.g., /data/cache/) for storing the installation file and a directory (e.g., /data/data/<package file name>/) for storing necessary data for the execution of the application1800. The necessary data for the execution of the application1800may include resource data, a database of the application1800, or data that is generated in response to the execution of the application1800.

Afterward, the device1000may decompress the compressed installation file of the application1800and may extract the installation file and a resource file of the application1800.

Then, the device1000may generate identification (ID) information (e.g., an application ID) of the application1800that corresponds to the installed application1800and may store the generated ID information. Also, in order to correspond to the ID information of the application1800, the device1000may 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 application1800was stored and a storage location at which the application1800was installed. Accordingly, when the device1000receives a user input requesting the execution of the application1800, the device1000may obtain the storage location at which the application1800is installed. Then, the device1000may load the execution file of the application1800to a memory, may operate the device1000according to an execution code in the loaded execution file, and thus may execute the application1800.

The device1000may store the ID information of the executed application1800. In order to correspond to the ID information of the application1800, the device1000may store ID information of a module that is executed from among the modules that configure the application1800.

When the device1000receives a user input of stopping the execution of the application1800, the device1000may stop the execution of the application1800. The device1000may stop execution of all of the modules that configure the application1800or may stop execution of some modules that are predetermined to correspond to the application1800. The device1000may store the ID information of the application1800of which execution was stopped. Also, the device1000may store ID information of a stopped module and ID information of a module that is continuously executed.

The device1000may control the execution of the background module1900of the application1800. For example, the device1000may stop or execute the background module1900. The device1000may control the background module1900according to a user input or may control the background module1900according to a method determined by the device1000, without a user input.

For example, referring toFIG. 1B, since a time elapses from when the execution of the application1800was stopped, the device1000may decrease an average execution time of the background module1900of the stopped application1800.

Also, the device1000may determine a method of controlling the execution of the background module1900. For example, based on an execution history of the application1800or a characteristic of the background module1900, the device1000may determine an execution method of the background module1900to be executed after the execution of the application1800is stopped.

Also, if a predetermined time elapses from when the execution of the application1800was stopped, the device1000may uninstall the application1800in the device1000. Also, if a predetermined time elapses from when the execution of the application1800stopped, the device1000may extract files related to the application1800which are installed in the device1000and may generate an installation file of the application1800. After the application1800is uninstalled, if the device1000receives an input requesting the execution of the application1800, the device1000may reinstall the application1800and may execute the application1800.

FIG. 2is 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 S210, the device1000may determine a first background stop time, which is a time period during which the execution of the background module1900is stopped and corresponds to a time period between a point of time when the execution of the application1800stopped and a first point of time.

For example, the device1000may determine the first background stop time in proportion to a time period between the point of time when the execution of the application1800was stopped and the first point of time.

The first background stop time may mean a time period during which the background module1900was 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 module1900is 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 module1900is 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 module1900.

For example, based on at least one selected from power consumption, resource use, and network use of the background module1900, the device1000may determine the first background stop time that corresponds to the background module1900. That is, when the power consumption of the background module1900is great, the device1000may control an execution time period of the background module1900to be decreased while the execution of the application1800is stopped. An embodiment related to this will be described below with reference toFIG. 7.

The device1000may 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 application1800was stopped, the device1000may 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 module1900after the execution of the application1800was stopped. The plurality of point of times may be determined to correspond to the application1800.

For example, the device1000may 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 application1800. For example, when the number of times of execution or an average execution time period of the application1800is increased, the device1000may determine the first point of time so as to increase the time period between the point of time when the execution of the application1800was stopped and the first point of time. An embodiment related to this will be described below with reference toFIG. 6.

In operation S220, the device1000may stop the execution of the background module1900during the determined first background stop time.

After the first point of time from when the execution of the application1800was stopped, the device1000may stop the execution of the background module1900during the first background stop time that is determined in operation S210.

The device1000may stop the execution of the background module1900during the first background stop time while a time elapses from the first point of time to the second point time. The device1000may constantly stop the background module1900during a background stop time. Alternatively, the device1000may periodically stop the background module1900during the background stop time.

When a certain time elapses from when the execution of the application1800was stopped, the device1000may uninstall the application1800that was installed in the device1000.

After the application1800is uninstalled, if the device1000receives a user input requesting an execution of the application1800, the device1000may reinstall the application1800. An embodiment related to this will be described below with reference toFIGS. 8, 9, and 10.

Hereinafter, a method of controlling the background module1900after the execution of the application1800was stopped, the method performed by the device1000, will be described in detail with reference toFIGS. 3, 4, and 5.

FIG. 3illustrates a method of controlling the application1800according to an embodiment of the present disclosure.

Referring toFIG. 3, the background module1900may be continuously executed after the execution of the application1800was stopped. InFIG. 3, it is assumed that a plurality of points of time and a plurality of background stop times are predetermined by the device1000before the execution of the application1800was stopped.

Since a time elapses from when the execution of the application1800was stopped, the device1000may determine whether it is after a first point of time. If the device1000determines that it is after the first point of time, the device1000may stop the execution of the background module1900.

Since the execution of the background module1900is stopped, the device1000may obtain a first background stop time that corresponds to a time period between the point of time when the execution of the application1800is stopped and the first point of time.

Since a time elapses, the device1000may determine whether the first background stop time has elapsed from the first point of time. If the device1000determines that the first background stop time has elapsed from the first point of time, the device1000may re-execute the stopped background module1900.

When the background module1900is re-executed, the device1000may determine whether it is after a second point of time from when the execution of the application1800was stopped. If the device1000determines that it is after the second point of time from when the execution of the application1800was stopped, the device1000may re-stop the re-executed background module1900. Also, the device1000may obtain a second background stop time that corresponds to a time period between the point of time when the execution of the application1800was stopped and the second point of time. The second background stop time may be greater than the first background stop time.

Afterward, the device1000may stop the background module1900during the second background stop time and then may re-execute the background module1900from 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 device1000may gradually decrease an execution time of the background module1900.

Also, after the third point of time, the device1000may not re-execute the background module1900until the device1000receives an input requesting execution of the application1800.

Therefore, since a time elapses after the execution of the application1800was stopped, the device1000may gradually decrease the execution time of the background module1900so that the device1000may decrease power consumption and a resource usage.

FIG. 4is 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 toFIG. 4, in operation S410, the device1000may stop the application1800that is currently executed in the device1000.

The execution of the application1800may be stopped in response to a stop command from a user. For example, while the device1000executes the application1800, if the device1000receives a user input of stopping the application1800, the device1000may stop the execution of the application1800. Alternatively, the execution of the application1800may be stopped by an operating system. Alternatively, the execution of the application1800may be stopped by another application1800.

Since the execution of the application1800is stopped, the device1000may store a point of time when the execution of the application1800is stopped.

In operation S420, since it is after a first point of time, the device1000may stop execution of the background module1900.

Since a time elapses after the execution of the application1800was stopped, the device1000may determine an elapse of a time period between the point of time when the execution of the application1800was stopped and the first point of time.

For example, the device1000may an event that will occur if the time period between the point of time when the execution of the application1800was stopped and the first point of time has elapsed, when the device1000determines that the execution of the application1800was stopped.

Since the time period between the point of time when the execution of the application1800was stopped and the first point of time has elapsed, the device1000may generate a time event so as to notify that it is after the first point of time. When the device1000determines that the time event has occurred, the device1000may determine that it is after the first point of time.

The device1000may have a list of the background modules1900that configure the applications1800, respectively. Also, the device1000may determine not only the execution of the application1800but may also determine execution of the background module1900of the application1800.

Accordingly, when the device1000determines that it is after the first point of time, the device1000may stop the execution of the background module1900.

The device1000may stop execution of all of the background modules1900of the application1800. Alternatively, the device1000may stop execution of only some modules from among the background modules1900of the application1800.

In operation S430, the device1000may determine whether a first background stop time per unit time has elapsed from when the execution of the background module1900was stopped.

Since the background module1900is stopped, the device1000may 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 application1800was stopped and the first point of time.

Also, since a time elapses, the device1000may determine whether the first background stop time per unit time has elapsed from when the background module1900was stopped.

For example, the device1000may set an event will occur if the first background stop time per unit time has elapsed from when the background module1900was stopped, when the device1000determines that the background module1900was stopped. When the time event occurs, the device1000may determine that the first background stop time per unit time has elapsed.

In operation S440, if the first background stop time per unit time has elapsed, the device1000may re-execute the background module1900.

Since the first background stop time per unit time has elapsed, the device1000may re-execute the background module1900that was stopped in operation S430.

In operation S450, since a unit time elapses from when the execution of the background module1900was stopped, the device1000may re-stop the background module1900.

The device1000may determine whether the unit time has elapsed from when the execution of the background module1900was stopped. If the device1000determines that the unit time has elapsed from when the execution of the background module1900was stopped, the device1000may re-stop the background module1900.

The device1000may repeatedly perform operations S420through S450between the first point of time and the second point time. Accordingly, the device1000may stop the execution of the background module1900at every unit time between the first point of time and the second point time during the first background stop time per unit time.

The device1000may stop the execution of the background module1900at 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 application1800was stopped and the second point of time.

FIG. 5illustrates 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 toFIG. 5, the background module1900may be continuously executed after the execution of the application1800was stopped. In the embodiment ofFIG. 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 device1000before the execution of the application1800was stopped.

Since a time elapses from when the execution of the application1800was stopped, the device1000may determine whether it is after a first point of time. If the device1000determines that it is after the first point of time, the device1000may stop the execution of the background module1900. Also, the device1000may 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 application1800is stopped and the first point of time.

Since the execution of the background module1900was stopped, the device1000may determine whether the first background stop time per unit time has elapsed from the first point of time. If the device1000determines that the first background stop time per unit time has elapsed from the first point of time, the device1000may re-execute the stopped background module1900.

Since the background module1900is re-executed, the device1000may determine whether a unit time510has elapsed from when the execution of the background module1900was stopped. The unit time510may indicate an interval at which the execution of the background module1900is stopped. For example, the unit time510may be set as 30 minutes, 1 hour, or 1 day.

If the unit time510has elapsed from when the execution of the background module1900was stopped, the device1000may re-stop the execution of the background module1900.

The device1000may repeat operations, which were performed from the first point of time during the unit time510, from the first point of time to a second point of time.

Accordingly, the device1000may periodically execute the background module1900, thus, even when an execution time of the background module1900is decreased, the device1000may rapidly provide user-requested information when a user re-executes the application1800.

According to an elapse of time, the device1000may determine whether a time has elapsed from when the execution of the application1800was stopped to a second point of time. If the time has elapsed to the second point of time, the device1000may stop the execution of the background module1900. Also, the device1000may 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 application1800was 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 module1900was stopped, the device1000may determine whether the second background stop time per unit time has elapsed from the second point of time. If the device1000determines that the second background stop time per unit time has elapsed from the second point of time, the device1000may re-execute the stopped background module1900.

Since the background module1900is re-executed, the device1000may determine whether the unit time510has elapsed from when the execution of the background module1900was stopped. If the unit time510has elapsed from the second point of time when the execution of the background module1900was stopped, the device1000may re-stop the execution of the background module1900.

The device1000may repeat operations, which were performed from the second point of time during the unit time510, from the second point of time to a third point of time.

Referring toFIG. 5, since a time elapses from when the execution of the application1800was 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 application1800was stopped, an execution time of the background module1900may be decreased.

The device1000may determine whether a time has elapsed from when the execution of the application1800was stopped to a fourth point of time. If the time has elapsed to the fourth point of time, the device1000may stop the execution of the background module1900. Since the execution of the background module1900is stopped, the device1000may not re-execute the background module1900. Accordingly, when a certain time period elapses from when the execution of the application1800was stopped, the background module1900may not be executed.

The device1000may determine whether a time has elapsed from when the execution of the application1800was stopped to a fifth point of time. If the time has elapsed to the fifth point of time, the device1000may uninstall the application1800. Alternatively, the device1000may delete all files related to the application1800, except for the installation file of the application1800. An embodiment related to this will be provided below with reference toFIGS. 8 and 9.

If the device1000receives a user input requesting the execution of the application1800during a time period between the point of time when the execution of the application1800was stopped and the fifth point of time, the device1000may entirely re-execute the application1800including the background module1900.

FIG. 6illustrates 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 device1000may obtain information about execution of the application1800. For example, when the application1800is executed, the device1000may check a point of time when execution of the application1800is started and a point of time when the execution of the application1800is ended, and may calculate an execution time of the application1800, a total number of times that the application1800is executed, or the like.

The device1000may determine a user's use pattern of the application1800, based on the information about the execution of the application1800. The use pattern of the application1800may be determined to correspond to each application1800. The use pattern of the application1800may include an average execution time of the application1800, an average number of times of executing the application1800, an execution interval, a time of a day when the application1800is mainly executed, or a day of a week when the application1800is executed.

The device1000may determine, based on the use pattern of the application1800, a method of controlling execution of the background module1900after the execution of the application1800is stopped.

For example, the device1000may determine, based on the use pattern of the application1800, a plurality of points of time and an expected deletion time of the application1800.

For example, when the average execution time of the application1800or the average number of times of executing the application1800is decreased, the device1000may set the plurality of points of time and the expected deletion time of the application1800so that a time period between a point of time when the execution of the application1800was stopped and the plurality of points of time and the expected deletion time of the application1800may be decreased.

Referring toFIG. 6, an application 2 has an execution time per week610and a number of times of execution per week620. Accordingly, the device1000may determine a plurality of check points of time630for the application 1 as 2 weeks, 4 weeks, 6 weeks, and 8 weeks. Also, the device1000may determine an expected deletion time640for the application 1 as 9 weeks. On the other hand, the device1000may determine the plurality of check points of time630for the application 2 as 1 week, 4 weeks, 5 weeks, and 6 weeks and may determine the expected deletion time640for the application 2 as 7 weeks.

Thus, if the application1800is not frequently used by the user, after the execution of the application1800is ended, the execution time of the background module1900may be decreased. Also, after the execution of the application1800is ended, the application1800that is not frequently used by the user may be further quickly deleted.

FIG. 7illustrates 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 toFIG. 7, the device1000may obtain the characteristic of the background module1900. The characteristic of the background module1900may include at least one selected from power consumption, a network use, and a central processing unit (CPU) use rate.

For example, when the background module1900is executed, the device1000may calculate the network use or the CPU use rate of the background module1900. Also, the device1000may estimate the power consumption of the background module1900, based on the calculated network use or the calculated CPU use rate of the background module1900.

The device1000may determine, based on the characteristic of the background module1900, the method of controlling the execution of the background module1900after the execution of the application1800is stopped. The device1000may determine a background stop time, based on the characteristic of the background module1900. For example, the device1000may increase the background stop time when the power consumption, the network use, or the CPU use rate of the background module1900is great.

Referring toFIG. 7, a network use710and a CPU use rate720of the background module1900of the application 1 are greater than the network use710and the CPU use rate720of the background module1900of the application 2. Accordingly, the device1000may set a background stop time730of the application 1 as 30 minutes, 40 minutes, and 50 minutes. On the other hand, the device1000may set the background stop time730of 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 module1900is increased, the execution time of the background module1900may be decreased.

FIG. 8is 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 toFIG. 8, in operation5810, the device1000may determine whether an expected deletion time of the application1800has elapsed from when execution of the application1800was stopped.

The expected deletion time of the application1800may be determined based on at least one selected from a use pattern of the application1800and a characteristic of the background module1900.

If the device1000determines that the expected deletion time of the application1800has elapsed in operation5810, the device1000may determine whether an installation file of the application1800is stored in the device1000in operation S820.

In order to correspond to the ID information of the application1800, the device1000may store whether the installation file of the application1800is stored therein. Alternatively, the device1000may scan a storage location where installation files of the application1800are collectively stored and may determine whether the installation file of the application1800exists therein.

If the installation file of the application1800is not stored in the device1000in operation S820, the device1000may generate the installation file of the application1800, based on a storage location at which the application1800was installed in operation S830.

For example, the device1000may obtain the storage location at which the application1800was installed. In order to correspond to the ID information of the application1800, the device1000may store the storage location, in the form of a file or a database, at which the application1800was installed. Accordingly, the device1000may obtain a storage location at which necessary files for the installation file of the application1800were stored to correspond to the ID information of the application1800.

The device1000may extract, from the obtained storage location, the execution file of the application1800, a resource file of the application1800, an information file about the application1800, and an information file and an authentication file about an execution authority of the application1800. Afterward, the device1000may package the extracted files and may re-generate an installation file of the application1800. For example, the device1000may 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 device1000may re-generate the installation file of the application1800such that the installation file may be configured of same files as an original file. Also, the device1000may re-generate the installation file of the application1800in such a manner that the installation file may include not only original files that configure the distributed installation file of the application1800but may also include data that was generated by executing the application1800. The data that was generated by executing the application1800may include data about a user's use of the application1800, at least one file that was generated by executing the application1800, or the like. In one or more various embodiments, the re-generated installation file of the application1800may be referred to as a backup file of the application1800.

In operation S840, the device1000may store the re-generated installation file of the application1800.

The device1000may store the re-generated installation file of the application1800in a preset installation file storage location. Also, in order to correspond to the ID information of the application1800, the device1000may store the storage location in which the re-generated installation file of the application1800is stored.

In operation S850, the device1000may uninstall the application1800that was installed in the device1000.

The device1000may uninstall the application1800by deleting files and a plurality of pieces of data that are related to the application1800, except for the re-generated installation file of the application1800.

For example, the device1000may delete the execution file, the resource file, etc. of the application1800that are stored in the device1000. Also, the device1000may delete data or a file that was generated by executing the application1800. The device1000may delete information about the uninstalled application1800from a plurality of pieces of information about the applications1800installed in the device1000. Also, the device1000may store ID information of the application1800that was uninstalled since the application1800was not used for a predetermined period.

Before the device1000uninstalls the application1800in the device1000, the device1000may display a user interface for receiving an input for selecting whether to uninstall the application1800. The device1000may uninstall the application1800only when the device1000receives a user input selecting to uninstall the application1800.

Therefore, the device1000may uninstall the application1800that has not been used for a predetermined period and may increase a usable volume of a storage unit. In particular, when the application1800is installed, the application1800may 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 device1000may delete unnecessary files related to the application1800and thus may increase a storage volume in which another application1800may be installed.

FIGS. 9A and 9Billustrate examples in which the application is uninstalled according to an embodiment of the present disclosure.

Referring toFIG. 9A, before the device1000uninstalls the application1800, the device1000may display a user interface930for receiving an input for selecting whether to uninstall the application1800.

If the device1000receives a user input selecting to uninstall the application1800, the device1000may uninstall the application1800. If the device1000receives a user input for selecting not to uninstall the application1800, the device1000may not uninstall the application1800but may maintain a pause of the background module1900of the application1800until the device1000receives an input requesting execution of the application1800.

Referring toFIG. 9B, the device1000may display a user interface950for receiving an input for selecting whether to delete the application1800in the device1000.

If the application1800has not been executed for a predetermined period, the device1000may display a user interface for receiving an input for selecting whether to delete the application1800. Also, only when the device1000receives the user input selecting to install the application1800in the example ofFIG. 9A, the device1000may display the user interface950for receiving an input for selecting whether to delete the application1800.

If the device1000receives the user input selecting to uninstall the application1800, the device1000may uninstall the application1800and may also delete the installation file of the application1800.

Also, the device1000may also display information910indicating an elapsed time period from when the execution of the application1800was stopped. Also, the device1000may display power that is consumed while the application1800is stopped. The device1000may also display a characteristic of the background module1900of the application1800. Also, the device1000may display information indicating a user's use history of the application1800or a user's use pattern of the application1800. The device1000may also display information indicating a size of the installation file of the application1800.

Thus, the device1000may delete the applications1800that are determined as unnecessary applications by a user, so that power consumption of the device1000may be decreased and storage of the device1000may be efficiently used.

FIG. 10is 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 S1010, the device1000may receive a user input requesting the execution of the application1800.

After the application1800was uninstalled, the device1000may receive the user input requesting the execution of the application1800.

For example, the device1000may store ID information of the application1800that was uninstalled since the application1800had not been used for a predetermined period. Also, before the device1000uninstalls the application1800, if an installation file of the application1800is not stored, the device1000may re-generate the installation file of the application1800.

Also, the device1000may store the re-generated installation file of the application1800in a preset storage location. Then, in order to correspond to the ID information of the application1800, the device1000may store information about the storage location in which the re-generated installation file of the application1800is stored.

Accordingly, based on the ID information of the application1800of which installation file is stored and that was uninstalled since it had not been used for a predetermined period, the device1000may display an interface for receiving a user input requesting execution of the application1800. For example, the device1000may display a list of the applications1800that were uninstalled but are re-executable by using stored installation files.

In operation S1020, the device1000may install the application1800, based on the storage location of the re-generated installation file of the application1800.

If the device1000receives a user input selecting the uninstalled application1800, the device1000may obtain a storage location of an installation file of the selected application1800, in order to correspond to ID information of the selected application1800. Then, the device1000may reinstall the application1800, based on the obtained storage location.

For example, the device1000may generate a logical storage for installation of the application1800. For example, the device1000may generate a directory for storing the installation file and a directory for storing necessary data for the execution of the application1800.

Afterward, the device1000may decompress the installation file of the selected application1800and may extract the installation file, a resource file, or the like of the selected application1800. Then, the device1000may store the extracted installation file, the resource file, or the like of the selected application1800in the generated logical storage.

The installation file of the selected application1800may be an installation file that is re-generated in the device1000. In this case, the installation file of the selected application1800may include data that was generated when the selected application1800was executed in the device1000before the installation file is re-generated. The data that was generated according to the execution of the selected application1800may include data about a use of the selected application1800, a file that was generated by executing the selected application1800, or the like.

If the installation file of the selected application1800further includes the data that was generated according to the execution of the selected application1800, the device1000may store the included data in a same directory in which the data was generated. Accordingly, if the device1000installs the re-generated installation file of the selected application1800in the device1000, the device1000may provide a user with an execution environment of the selected application1800and user data that are same as those of the selected application1800when the installation file of the selected application1800was re-generated.

The device1000may allocate ID information of the selected application1800in order to correspond to the installed application1800. Also, in order to correspond to the ID information of the installed application1800, the device1000may store, in the form of a file or a database, the storage location of the installation file of the selected application1800and the storage location of the selected application1800.

In operation S1030, the device1000may execute the installed application1800. The device1000may obtain the storage location at which the application1800is installed. Then, the device1000may load the execution file of the application1800to a memory, may operate the device1000according to an execution code in the loaded execution file, and thus may execute the application1800.

FIGS. 11A and 11Billustrate 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 ofFIG. 10.

Referring toFIGS. 11A and 11B, the device1000may display an interface for receiving a user input requesting execution of the application1800, based on ID information of the application1800of which installation filed is stored but that was uninstalled since the application1800had not been used for a predetermined period.

Referring toFIG. 11A, the device1000may display a user interface1110that shows the applications1800that are executable in the device1000. In this case, the device1000may also display user interfaces1120,1130, and1140that indicate the applications1800that were uninstalled.

The device1000may differ in displaying a user interface indicating the uninstalled application1800and displaying a user interface indicating the application that is installed in the device1000.

Referring toFIG. 11B, if the device1000receives a user input selecting the uninstalled application1800, in order to correspond to ID information of the selected application1800, the device1000may obtain a storage location of an installation file of the selected application1800. Then, the device1000may install the selected application1800by using the obtained installation file of the selected application1800. In this case, the device1000may display a user interface1150indicating that the selected application1800is being installed. Also, the device1000may execute the installed application1800.

FIGS. 12 and 13are block diagrams of the device, according to various embodiments of the present disclosure.

Referring toFIGS. 12 and 13, a device1000may include a storage1700and a controller1300. However, not all elements shown inFIG. 12are necessary elements. That is, the device1000may be embodied with more or less elements than the elements shown inFIG. 12.

For example, referring toFIG. 13, the device1000may further include a user input unit1100, a display unit1210, an output unit1200, a communication unit1500, and an audio/video (A/V) input unit1600, as well as the storage1700and the controller1300.

Hereinafter, the elements are described below.

Referring toFIG. 12, the storage1700may store a program that is processed and controlled by the controller1300or may store input/output data.

Also, the storage1700may store at least one program for controlling the background module1900. 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 module1900so as to correspond to a time period between a point of time when the execution of the application1800was stopped and a first point of time, and an execution code for stopping the execution of the background module1900during the determined first background stop time.

The execution code for stopping the execution of the background module1900may include a phase of stopping the execution of the background module1900since 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 module1900.

The at least one program may further include an execution code for uninstalling the application1800in 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 application1800was stopped.

The execution code for uninstalling the application1800may include generating an installation file of the application1800based on a storage location at which the application1800was installed, storing the installation file of the application1800, and uninstalling the application1800.

Also, the execution code for uninstalling the application1800may further include displaying a user interface for receiving an input for selecting whether to uninstall the application1800and uninstalling the application1800based on a user input selecting to uninstall the application1800.

Also, the at least one program may further include an execution code for receiving a user input requesting execution of the application1800, an execution code for installing the application1800, based on a storage location of the installation file of the application1800, upon receipt of a user input requesting the execution of the application1800, and an execution code for executing the application1800.

The storage1700may 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 device1000may run web storage or a cloud server that performs a storage function of the storage1700on the Internet.

The controller1300generally controls operations of the device1000. For example, the controller1300may execute programs stored in the storage1700and thus may control the user input unit1100, the output unit1200, a sensor (not shown), the communication unit1500, the AN input unit1600, and the like.

Also, the controller1300may execute a program stored in the storage1700and thus may control the application1800, which includes the background module1900. The controller1300may load the program stored in the storage1700to a memory, may operate the device1000according to an execution code of the loaded program, and thus may control the application1800having the background module1900.

Referring toFIG. 13, the storage1700may include the application1800, an installation control logic1720, an application control logic1730, and a background module control logic1740. The application1800may include the background module1900.

The installation control logic1720, the application control logic1730, and the background module control logic1740may be implemented as software. The installation control logic1720, the application control logic1730, and the background module control logic1740may be executed by the controller1300in a manner that their functions may be performed. Although not illustrated, in another embodiment, the installation control logic1720, the application control logic1730, and the background module control logic1740may not be implemented as software, but may also be an integrated circuit logic in the device1000.

Hereinafter, the functions of the installation control logic1720, the application control logic1730, and the background module control logic1740that are executed by the controller1300are described below.

The application control logic1730and the background module control logic1740may have a control authority that is higher than a control authority of the applications1800with respect to another application1800.

Thus, the background module control logic1740may exclusively control the background module1900. For example, when the background module control logic1740stops execution of the background module1900, the application control logic1730may re-execute the background module1900in response to a user input, but the background module control logic1740may limit another application1800in randomly executing the stopped background module1900.

To do so, the application control logic1730and the background module control logic1740may be implemented as framework level software that controls execution of the applications1800.

The installation control logic1720may download an installation file of the application1800from an external server or an external device to the device1000. The installation control logic1720may store the downloaded installation file of the application1800in a predetermined logical storage location of the storage1700.

The installation file of the application1800may indicate a distributed file to make the application1800installed in the device1000. The installation file of the application1800may include an execution file of the application1800and a resource file for the execution file of the application1800. Also, the installation file of the application1800may further include an information file such as a title or a version of the application1800, and an information file and an authentication file about an execution authority of the application1800.

The installation control logic1720may install the application1800, based on the installation file of the application1800.

For example, the installation control logic1720may generate a logical storage in which the application1800is to be installed. The installation control logic1720may generate a directory for storing the installation file and a directory for storing necessary data for the execution of the application1800. The necessary data for the execution of the application1800may include resource data, a database of the application1800, or data that is generated in response to the execution of the application1800.

Afterward, the installation control logic1720may decompress the compressed installation file of the application1800and may extract the installation file and a resource file of the application1800. Then, the installation control logic1720may store the installation file and the resource file of the application1800in the generated logical storage.

The installation control logic1720may allocate ID information of the application1800in order to correspond to the installed application1800. Also, in order to correspond to the ID information of the installed application1800, the installation control logic1720may store, in the form of a file or a database, the storage location of the installation file of the application1800and the storage location of the application1800.

The application control logic1730may control the execution of the application1800. Also, the application control logic1730may store information related to the execution of the application1800.

For example, if the application control logic1730receives a user input requesting the execution of the application1800, the application control logic1730may obtain the storage location of the installation file of the application1800that is stored by the installation control logic1720. Then, the application control logic1730may load the execution file of the application1800to a memory, may operate the device1000according to an execution code in the loaded execution file, and thus may execute the application1800.

Since the application1800is executed, the controller1300may operate the device1000by controlling the user input unit1100, the output unit1200, the sensor (not shown), the communication unit1500, and the AN input unit1600.

The application control logic1730may store the ID information of the executed application1800. Also, in order to correspond to the ID information of the application1800, the application control logic1730may store ID information of an executed module.

If the application control logic1730receives a user input of stopping the execution of the application1800, the application control logic1730may stop the execution of the application1800. The application control logic1730may stop execution of all modules that configure the application1800or may stop execution of only some preset modules in order to correspond to the application1800. The application control logic1730may store ID information of the application1800of which execution is stopped. Also, the application control logic1730may store ID information of a module of which execution is stopped and ID information of another module that is constantly executed.

The application control logic1730may determine a user's use pattern of the application1800, based on the information about the execution of the application1800. The use pattern of the application1800may be determined while corresponding to each application1800. The use pattern of the application1800may include an average execution time of the application1800, an average number of times of executing the application1800, an execution interval, a time of a day when the application1800is mainly executed, or a day of a week when the application1800is mainly executed.

The background module control logic1740may determine, based on the use pattern of the application1800, a method of controlling execution of the background module1900after the execution of the application1800is stopped.

The background module control logic1740may obtain a characteristic of the background module1900. The characteristic of the background module1900may include at least one selected from power consumption, a network use, and a CPU use rate.

For example, when the background module1900is executed, the background module control logic1740may monitor an amount of data that the background module1900exchanges with an external device and a CPU use by the background module1900. The background module control logic1740may estimate the power consumption of the background module1900, based on the network use or the CPU use rate of the background module1900.

The background module control logic1740may determine a first background stop time that corresponds to the background module1900, based on at least one selected from the power consumption, resource use, and the network use of the background module1900. For example, when the power consumption of the background module1900is great, the background module control logic1740may control an execution time period of the background module1900to be decreased while the execution of the application1800is stopped.

Since a time elapses from when the execution of the application1800was stopped, the background module control logic1740may control the execution of the background module1900.

The background module control logic1740may determine the first background stop time that is a time period to stop the execution of the background module1900so as to correspond to a time period between the point of time when the execution of the application1800was stopped and a first point of time.

The background module control logic1740may determine the first background stop time in proportion to the time period between the point of time when the execution of the application1800was stopped and the first point of time.

The background module control logic1740may 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 application1800was stopped, the background module control logic1740may obtain a predetermined first background stop time.

The background module control logic1740may stop the execution of the background module1900during the determined first background stop time.

Since it is after the first point of time from when the execution of the application1800was stopped, the background module control logic1740may stop the execution of the background module1900during the determined first background stop time.

The background module control logic1740may stop the execution of the background module1900during the first background stop time while a time elapses from the first point of time to a second point time. The background module control logic1740may constantly stop the background module1900during a background stop time. Alternatively, the background module control logic1740may periodically stop the background module1900during the background stop time.

For example, the background module control logic1740may set that an event will occur if the time period between the point of time when the execution of the application1800was stopped and the first point of time has elapsed, when background module control logic1740determines that the execution of the application1800was stopped.

Since the time period between the point of time when the execution of the application1800was stopped and the first point of time has elapsed, the device1000may generate a time event so as to notify that it is after the first point of time. When the background module control logic1740determines that the time event has occurred, the background module control logic1740may determine that it is after the first point of time.

The background module control logic1740may have a list of the background modules1900that configure the applications1800, respectively. Also, the background module control logic1740may determine not only the execution of the application1800but may also determine execution of the background module1900of the application1800, based on the information stored by the application control logic1730.

Accordingly, when the background module control logic1740determines that it is after the first point of time, the background module control logic1740may stop the execution of the background module1900.

Since the background module1900is stopped, the background module control logic1740may 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 application1800was stopped and the first point of time.

Also, the background module control logic1740may set that a time event will occur if the first background stop time per unit time has elapsed from when the background module1900was stopped, when the background module control logic1740determines that the background module1900was stopped. When the time event occurs, the background module control logic1740may determine that the first background stop time per unit time has elapsed.

If the first background stop time per unit time has elapsed, the device1000may re-execute the background module1900.

Since the first background stop time per unit time has elapsed, the background module control logic1740may re-execute the background module1900that was stopped.

If the background module control logic1740determines that a unit time has elapsed from the first point of time, the background module control logic1740may re-stop the background module1900.

Accordingly, the background module control logic1740may stop the execution of the background module1900at 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 logic1740may stop the execution of the background module1900at 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 application1800was stopped and the second point of time.

If an expected deletion time of the application1800has elapsed from when execution of the application1800was stopped, the installation control logic1720may uninstall the application1800.

The installation control logic1720may determine the expected deletion time of the application1800, based on at least one selected from the use pattern of the application1800and the characteristic of the background module1900.

If the installation control logic1720determines that the expected deletion time of the application1800has elapsed, the installation control logic1720may determine whether the installation file of the application1800is stored in the device1000.

In order to correspond to the ID information of the application1800, the application control logic1730may store, in the storage1700, whether the installation file of the application1800is stored. Alternatively, the installation control logic1720may scan a storage location where installation files of the applications1800are collectively stored and may determine whether the installation file of the application1800is stored therein.

If the installation file of the application1800is not stored in the device1000, the installation control logic1720may generate the installation file of the application1800, based on a storage location at which the application1800was installed.

For example, the installation control logic1720may obtain the storage location at which the application1800was installed. In order to correspond to the ID information of the application1800, the installation control logic1720may store the storage location, in the form of a file or a database, at which the application1800was installed. Accordingly, the installation control logic1720may obtain a storage location at which necessary files for the installation file of the application1800were stored to correspond to the ID information of the application1800.

The installation control logic1720may extract, from the obtained storage location, the execution file of the application1800, a resource file of the application1800, an information file about the application1800, and an information file and an authentication file about an execution authority of the application1800. Afterward, the installation control logic1720may package the extracted files and may re-generate an installation file of the application1800. For example, the installation control logic1720may 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 logic1720may re-generate the installation file of the application1800in such a manner that the installation file may be configured of same files as an original file. Also, the installation control logic1720may re-generate the installation file of the application1800in such a manner that the installation file may include not only original files that configure the distributed installation file of the application1800but may also include data that was generated by executing the application1800. The data that was generated by executing the application1800may include data about a user's use of the application1800, a file that was generated by executing the application1800, or the like.

The installation control logic1720may store the re-generated installation file of the application1800in a preset installation file storage location. Also, in order to correspond to the ID information of the application1800, the installation control logic1720may store the storage location in which the re-generated installation file of the application1800is stored.

Also, the installation control logic1720may uninstall the application1800that was installed in the device1000. For example, the installation control logic1720may uninstall the application1800by deleting files and a plurality of pieces of data that are related to the application1800, except for the re-generated installation file of the application1800.

The installation control logic1720may delete information about the uninstalled application1800from a plurality of pieces of information about the applications1800that are installed in the device1000. Also, the installation control logic1720may store ID information of the application1800that was uninstalled since the application1800was not used for a predetermined period.

Before the installation control logic1720uninstalls the application1800in the device1000, the installation control logic1720may display, on the display unit1210, a user interface for receiving an input for selecting whether to uninstall the application1800. The installation control logic1720may uninstall the application1800, based on a user input selecting to uninstall the application1800.

After the application1800is uninstalled, if the installation control logic1720receives a user input requesting an execution of the application1800, the installation control logic1720may reinstall the application1800.

After the application1800is uninstalled, the application control logic1730may receive a user input of executing the application1800.

For example, based on the ID information of the application1800of which installation file is stored and that was uninstalled since it had not been used for a predetermined period, the application control logic1730may display a list of the re-executable applications1800.

If the application control logic1730receives a user input selecting the uninstalled application1800, the application control logic1730may obtain a storage location of an installation file of the selected application1800in order to correspond to ID information of the selected application1800. Then, the application control logic1730may control the installation control logic1720to reinstall the selected application1800, based on the obtained storage location.

The application control logic1730may obtain a storage location at which the selected application1800is reinstalled. Then, the application control logic1730may load an execution file of the selected application1800to a memory, may operate the device1000according to an execution code in the loaded execution file, and thus may execute the application1800.

The user input unit1100may be a unit by which a user inputs data so as to control the device100. For example, the user input unit1100may 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 unit1200may function to output an audio signal, a video signal, or a vibration signal by being controlled by the controller1300, and may include the display unit1210, a sound output unit1220, a vibration motor1230, or the like.

The display unit1210is controlled by the controller1300and thus displays information that is processed in the device1000.

When the display unit1210and a touch pad form a mutual layer structure and then are formed as a touch screen, the display unit1210may be used as both an output device and input device. The display unit1210may 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 device1000, the device1000may include at least two display units1210.

The sound output unit1220may output audio data that is received from the communication unit1500or is stored in the storage1700. The sound output unit1220may 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 device1000. The sound output unit1220may include a speaker, a buzzer, or the like.

The sensor (not shown) may sense a status of the device1000or a status around the device1000, and may deliver information about the sensed status to the controller1300. 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 unit1500may include one or more elements allowing communication between the device1000and an external device (not shown) or communication between the device1000and a server (not shown). For example, the communication unit1500may include a short-range wireless communication unit1510, a mobile communication unit1520, and a broadcast receiving unit1530.

The short-range wireless communication unit1510may 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 unit1520exchanges 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 unit1530receives 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 device1000may not include the broadcast receiving unit1530.

The A/V input unit1600may receive an input of an audio signal or a video signal and may include a camera1610and a microphone1620. The camera1610may 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 controller1300or a separate image processing unit (not shown).

The image frame that is processed by the camera1610may be stored in the storage1700or may be transmitted to an external source via the communication unit1500. According to a configuration of the device1000, two or more cameras1610may be arranged.

The microphone1620receives an external sound signal as an input and processes the received sound signal into electrical voice data. For example, the microphone1620may 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 microphone1620may 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.