KR20150108224A - 어플리케이션 관리 방법 및 그 장치 - Google Patents

어플리케이션 관리 방법 및 그 장치 Download PDF

Info

Publication number
KR20150108224A
KR20150108224A KR1020140031157A KR20140031157A KR20150108224A KR 20150108224 A KR20150108224 A KR 20150108224A KR 1020140031157 A KR1020140031157 A KR 1020140031157A KR 20140031157 A KR20140031157 A KR 20140031157A KR 20150108224 A KR20150108224 A KR 20150108224A
Authority
KR
South Korea
Prior art keywords
application
time
execution
background
background module
Prior art date
Application number
KR1020140031157A
Other languages
English (en)
Other versions
KR102205902B1 (ko
Inventor
문보석
박선민
김상호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020140031157A priority Critical patent/KR102205902B1/ko
Priority to US14/620,558 priority patent/US9841963B2/en
Publication of KR20150108224A publication Critical patent/KR20150108224A/ko
Application granted granted Critical
Publication of KR102205902B1 publication Critical patent/KR102205902B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

어플리케이션의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하여 백그라운드 모듈의 실행을 중지할 시간인 제 1 백그라운드 중지 시간을 결정하는 단계 및 결정된 제 1 백그라운드 중지 시간 동안 백그라운드 모듈의 실행을 중지하는 단계를 포함하는 본 발명의 일 실시예에 따른 백그라운드 모듈을 갖는 어플리케이션을 관리하는 방법이 개시된다.

Description

어플리케이션 관리 방법 및 그 장치{METHOD AND APPARATUS FOR MANAGING AN APPLICATION}
본 발명은, 어플리케이션을 관리하는 방법 및 이를 위한 장치에 관한 것이다.
멀티미디어 기술 및 네트워크 기술이 발전함에 따라, 다양한 종류의 디바이스가 사용자에 의해 이용되고 있다.
또한, 디바이스에서 사용될 수 있는 어플리케이션 또한 기하급수적으로 증가하였다. 게다가, 사용자가 디바이스에서 실행되고 있음을 인식할 수 있는 어플리케이션뿐만 아니라, 인식할 수 없지만 어플리케이션의 기능을 위해서 백그라운드로 실행되고 있는 어플리케이션들이 늘어나고 있다.
디바이스에서 실행되는 어플리케이션이 증가함에 따라, 어플리케이션이 소모하는 전력도 증가한다. 특히, 사용자가 사용하지 않는 어플리케이션들이 소모하는 전력이 증가하고 있다.
디바이스에서 실행되는 불필요한 어플리케이션의 실행을 줄이는 방법 및 그 장치를 제공하기 위한 다양한 실시예가 제공된다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제 1 측면은, 어플리케이션의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하여 백그라운드 모듈의 실행을 중지할 시간인 제 1 백그라운드 중지 시간을 결정하는 단계 및 결정된 제 1 백그라운드 중지 시간 동안 백그라운드 모듈의 실행을 중지하는 단계를 포함하는, 모바일 단말이 백그라운드 모듈을 갖는 어플리케이션을 관리하는 방법을 제공할 수 있다.
또한, 제 1 백그라운드 중지 시간은, 어플리케이션의 실행이 중지된 시점부터 제 1 시점까지의 시간의 길이에 비례하여 결정될 수 있다.
또한, 백그라운드 중지 시간은, 미리 정해진 시간 주기 동안 상기 백그라운드 모듈의 실행을 중지할 시간인 단위 시간당 제 1 백그라운드 중지 시간을 포함할 수 있다.
또한, 백그라운드 모듈의 실행을 중지하는 단계는, 제 1 시점이 경과함에 따라, 백그라운드 모듈의 실행을 중지하는 단계, 백그라운드 모듈의 실행이 중지된 시점부터, 단위 시간당 제 1 백그라운드 중지 시간의 경과 여부를 판단하는 단계 및 단위 시간당 제 1 백그라운드 중지 시간이 경과한 경우, 백그라운드 모듈을 재 실행하는 단계를 포함할 수 있다.
또한, 제 1 백그라운드 중지 시간은, 백그라운드 모듈의 전력 사용량, 리소스 사용량 및 네트워크 사용량 중 적어도 하나에 기초하여 결정될 수 있다.
또한, 제 1 시점은 미리 결정된 복수의 시점 중 하나일 수 있으며, 복수의 시점은 어플리케이션의 실행 빈도, 실행 주기 및 실행 시간 중 적어도 하나에 기초하여 결정될 수 있다.
또한, 어플리케이션 관리 방법은, 어플리케이션의 실행이 중지된 시점부터 복수의 시점 중 마지막 시점이 경과함에 따라, 어플리케이션을 모바일 단말에서 설치 해제하는 단계를 더 포함할 수 있다.
또한, 어플리케이션을 설치 해제하는 단계는, 어플리케이션이 설치된 저장 위치에 기초하여 어플리케이션의 설치 파일을 생성하는 단계, 생성된 어플리케이션의 설치 파일을 저장하는 단계 및 어플리케이션을 설치 해제하는 단계를 포함할 수 있다.
또한, 어플리케이션을 설치 해제하는 단계는, 어플리케이션을 설치 해제할지 여부를 선택하기 위한 사용자 인터페이스를 디스플레이하는 단계 및 어플리케이션을 설치 해제할 것을 선택하는 사용자 입력에 기초하여 어플리케이션을 설치 해제하는 단계를 더 포함할 수 있다.
또한, 어플리케이션 관리 방법은, 어플리케이션의 실행을 명령하는 사용자 입력을 수신하는 단계, 어플리케이션의 실행을 명령하는 사용자 입력을 수신함에 따라, 어플리케이션의 설치 파일의 저장 위치에 기초하여, 어플리케이션을 설치하는 단계 및 어플리케이션을 실행하는 단계를 더 포함할 수 있다.
또한, 본 개시의 제 2 측면은, 적어도 하나의 프로그램이 저장되는 저장부 및 적어도 하나의 프로그램을 실행함으로써, 백그라운드 모듈을 갖는 어플리케이션을 관리하는 프로세서를 포함하고, 적어도 하나의 프로그램은, 어플리케이션의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하여 백그라운드 모듈의 실행을 중지할 시간인 제 1 백그라운드 중지 시간을 결정하는 단계 및 결정된 제 1 백그라운드 중지 시간 동안 백그라운드 모듈의 실행을 중지하는 단계를 포함하는 모바일 단말을 제공할 수 있다.
또한, 본 개시의 제 3 측면은, 제 1 측면의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른, 어플리케이션의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스가 백그라운드 모듈의 실행을 제어하는 일례를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른, 어플리케이션의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스가 백그라운드 모듈의 실행을 제어하는 방법의 흐름도이다.
도 3은 본 발명의 일 실시예에 따른, 디바이스가 어플리케이션을 관리하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른, 어플리케이션의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스가 주기적으로 백그라운드 모듈의 실행을 제어하는 방법의 세부 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 어플리케이션의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스가 주기적으로 백그라운드 모듈의 실행을 제어하는 실시예를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른, 디바이스가 어플리케이션의 사용 기록에 기초하여 백그라운드 모듈의 실행 시간을 결정하는 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른, 디바이스가 백그라운드 모듈의 특성에 기초하여 백그라운드 모듈의 실행 시간을 결정하는 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른, 어플리케이션의 실행이 중지된 시점부터 시간이 경과함에 따라, 어플리케이션을 삭제하는 방법을 설명하기 위한 흐름도이다.
도 9은 본 발명의 일 실시예에 따른, 어플리케이션의 실행이 중지된 시점부터 시간이 경과함에 따라, 어플리케이션을 설치 해제하는 일례를 설명하기 위한 도면이다.
도 10는 본 발명의 일 실시예에 따른, 어플리케이션이 설치 해제된 후, 어플리케이션의 실행을 명령하는 사용자 입력을 수신함에 따라, 어플리케이션을 다시 설치하여 실행하는 방법을 설명하기 위한 흐름도이다.
도 11는 본 발명의 일 실시예에 따른, 어플리케이션이 설치 해제된 후, 어플리케이션의 실행을 명령하는 사용자 입력을 수신함에 따라, 어플리케이션을 다시 설치하여 실행하는 방법을 설명하기 위한 도면이다.
도 12 및 도 13는 본 발명의 일부 실시예에 따른 디바이스의 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시예에 따른, 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스(1000)가 백그라운드 모듈(1900)의 실행을 제어하는 일례를 설명하기 위한 도면이다.
도 1(a)를 참조하면, 디바이스(1000)는 적어도 하나의 어플리케이션(1800)을 실행시킬 수 있다. 또한, 어플리케이션(1800)은 디바이스(1000)에서 실행됨으로써 특정한 기능을 수행할 수 있다. 또한, 어플리케이션(1800)은 응용 소프트웨어(Application software)를 포함할 수 있다. 어플리케이션(1800)은 실시예에 따라 소프트웨어 어플리케이션, 어플리케이션 프로그램, 앱 등 다양한 이름으로 언급될 수 있다.
또한, 어플리케이션(1800)은 적어도 하나의 모듈로 구성될 수 있다. 모듈은 어플리케이션(1800)의 특정 기능을 수행하도록 구현된 소프트웨어를 의미할 수 있다. 각각의 모듈들은 상호 연동하여 하나의 어플리케이션(1800)을 실행할 수 있다. 또한, 어플리케이션(1800)을 구성하는 복수의 모듈 중 일부의 모듈만이 독립적으로 동작하면서 어플리케이션(1800)의 일부 기능만이 수행될 수 있다. 하나의 모듈은 적어도 하나의 쓰레드가 실행됨으로써 구현될 수 있다.
또한, 어플리케이션(1800)은 적어도 하나의 백그라운드 모듈(1900)을 포함할 수 있다. 백그라운드 모듈(1900)이란 모듈의 실행을 사용자가 인식할 수 없지만, 디바이스에서 계속적으로 특정한 기능을 수행하는 모듈을 의미할 수 있다. 예를 들어, 백그라운드 모듈(1900)은 네트워크를 통해 특정 데이터를 주기적으로 모니터링하는 모듈, 네트워크를 통해 외부 서버로부터 주기적으로 RSS 피드를 수신하여 최신 XML 데이터를 파싱하는 모듈, 소셜 네트워크 어플리케이션(1800)에서 주기적으로 서버와 데이터를 송수신하는 모듈, 위치 추적 어플리케이션(1800)에서 GPS 위성으로부터 데이터를 주기적으로 수신하는 모듈 및 모션 인식 어플리케이션(1800)에서 주기적으로 사용자의 모션을 센싱하는 모듈 등을 포함할 수 있으나, 이에 제한되지 않는다. 백그라운드 모듈(1900)은 실시예에 따라 서비스 또는 백그라운드 서비스로 언급될 수 있다.
또한, 어플리케이션(1800)은 적어도 하나의 포그라운드 모듈을 포함할 수 있다. 포그라운드 모듈이란 어플리케이션(1800)을 구성하는 모듈 중 사용자와 직접적으로 상호 작용하는 기능을 수행하는 모듈을 의미할 수 있다. 예를 들어, 포그라운드 모듈은 사용자 입력을 수신하는 모듈, 어플리케이션(1800)이 실행됨에 따라 정보를 디스플레이하는 모듈 및 어플리케이션(1800)이 실행됨에 따라 소리를 출력하는 모듈 등을 포함할 수 있으나, 이에 제한되지 않는다.
어플리케이션(1800)은 백그라운드 모듈(1900)로만 구성될 수 있으며, 백그라운드 모듈(1900) 및 포그라운드 모듈을 모두 포함할 수도 있다.
어플리케이션(1800)의 실행이 중지되는 경우, 어플리케이션(1800)을 구성하는 복수의 백그라운드 모듈(1900) 중 적어도 하나가 계속 실행될 수 있다. 예를 들어, 소셜 네트워크 어플리케이션(1800)이 실행되는 중에 어플리케이션(1800)이 중지 되더라도, 소셜 네트워크 어플리케이션(1800)을 구성하는 모듈 중, 서버와 데이터를 주고 받으며 상대방이 보낸 메시지를 디바이스(1000)에 저장하는 모듈은 계속 실행될 수 있다.
또한, 어플리케이션(1800)이 실행되지 않더라도, 어플리케이션(1800)이 설치된 시점부터 백그라운드 모듈(1900)이 계속 실행될 수도 있다.
어플리케이션(1800)의 실행의 중지는 어플리케이션(1800)을 구성하는 모듈 중 포그라운드 모듈이 실행되지 않는 것을 의미할 수 있다.
또한, 어플리케이션(1800) 또는 백그라운드 모듈(1900)의 실행의 중지는 실행의 종료뿐만 아니라, 실행의 일시 정지를 포함할 수 있다.
또한, 디바이스(1000)는 외부 서버 또는 외부 기기로부터 어플리케이션(1800)의 설치 파일(Install File)을 디바이스(1000)로 다운로드 할 수 있다. 디바이스(1000)는 다운로드한 어플리케이션(1800)의 설치 파일을 저장부(Storage)의 미리 정해진 논리적 저장 위치(예를 들어, /data/app)에 저장할 수 있다.
어플리케이션(1800)의 설치 파일은 디바이스(1000)에 어플리케이션(1800)이 설치되도록 배포된 파일을 의미할 수 있다. 어플리케이션(1800)의 설치 파일은 어플리케이션(1800)의 실행 파일, 어플리케이션(1800)의 실행에 필요한 리소스 파일을 포함할 수 있다. 또한, 어플리케이션(1800)의 설치 파일은 어플리케이션(1800)의 이름 또는 버전 등과 같은 어플리케이션(1800)에 관한 정보 파일, 디바이스(1000)의 자원에 대한 어플리케이션(1800)의 실행 권한 및 어플리케이션(1800)의 실행에 관한 인증 파일을 더 포함할 수 있다.
어플리케이션(1800)의 설치 파일의 파일 포맷은 압출 파일 포맷(예를 들어, zip, apk 또는 jar)일 수 있다. 또한, 어플리케이션(1800)의 설치 파일은 실시예에 따라 어플리케이션(1800)의 패키지 파일로 언급될 수 있다.
디바이스(1000)는 어플리케이션(1800)의 설치 파일에 기초하여 어플리케이션(1800)을 설치(Install)할 수 있다.
예를 들어, 디바이스(1000)는 어플리케이션(1800)을 설치할 논리적인 저장공간을 생성할 수 있다. 디바이스(1000)는 실행 파일을 저장하는 디렉토리(예를 들어, /data/cache/) 및 어플리케이션(1800)을 실행하기 위해 필요한 데이터를 저장하는 디렉토리(예를 들어, /data/data/<package file name>/)를 생성할 수 있다. 어플리케이션(1800)을 실행하기 위해 필요한 데이터는 리소스 데이터, 어플리케이션(1800)의 데이터 베이스, 어플리케이션(1800)을 실행함에 따라 생성된 데이터 등을 포함할 수 있다.
그리고, 디바이스(1000)는 어플리케이션(1800)의 설치 파일을 압축 해제하여 어플리케이션(1800)의 실행 파일 및 리소스 파일 등을 추출할 수 있다. 그리고 디바이스(1000)는 추출한 어플리케이션(1800)의 실행 파일 및 리소스 파일 등을 생성된 저장 공간에 저장할 수 있다.
그리고, 디바이스(1000)는 설치된 어플리케이션(1800)에 대응하여 어플리케이션(1800)의 식별 정보(예를 들어, 어플리케이션 ID)를 생성하고, 생성된 식별 정보를 저장할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 식별 정보에 대응하여, 어플리케이션(1800)의 설치 파일이 저장된 저장 위치 및 어플리케이션(1800)이 설치된 저장위치를 파일 또는 데이터 베이스 형태로 저장할 수 있다. 이에 따라, 디바이스(1000)는 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신한 경우, 어플리케이션(1800)이 설치된 저장위치를 획득할 수 있다. 그리고, 디바이스(1000)는 어플리케이션(1800)의 실행 파일을 메모리에 적재하고, 적재된 실행파일 내의 실행 코드에 따라 디바이스를 동작시킴으로써 어플리케이션(1800)을 실행할 수 있다.
또한, 디바이스(1000)는 실행 중인 어플리케이션(1800)의 식별 정보를 저장할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 식별 정보에 대응하여 어플리케이션(1800)을 구성하는 모듈 중 실행 중인 모듈의 식별 정보를 저장할 수 있다.
또한, 디바이스(1000)는 어플리케이션(1800)의 실행을 중지하는 사용자 입력을 수신한 경우 어플리케이션(1800)의 실행을 중지시킬 수 있다. 디바이스(1000)는 어플리케이션(1800)을 구성하는 모듈 전체의 실행을 중지할 수 있으며, 어플리케이션(1800)에 대응하여 미리 정해진 일부의 모듈만의 실행을 중지할 수도 있다. 디바이스(1000)는 실행이 중지된 어플리케이션(1800)의 식별 정보를 저장할 수 있다. 또한, 디바이스(1000)는 실행이 중지된 모듈의 식별 정보 및 계속 실행 중인 모듈의 식별 정보를 저장할 수 있다.
또한, 디바이스(1000)는 어플리케이션(1800)의 백그라운드 모듈(1900)의 실행을 제어할 수 있다. 예를 들어, 디바이스(1000)는 백그라운드 모듈(1900)을 중지 또는 실행시킬 수 있다. 디바이스(1000)는 사용자의 입력에 따라 백그라운드 모듈(1900)을 제어할 수 있으며, 사용자의 입력 없이도 디바이스(1000)에 의해 결정된 방법에 따라 백그라운드 모듈(1900)을 제어할 수 있다.
예를 들어, 도 1(b)를 참조하면, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 중지된 어플리케이션(1800)의 백그라운드 모듈(1900)의 평균 실행 시간을 감소 시키실 수 있다.
또한, 디바이스(1000)는 백그라운드 모듈(1900)의 실행을 제어하는 방법을 결정할 수 있다. 예를 들어, 디바이스(1000)는 어플리케이션(1800)의 실행 기록 또는 백그라운드 모듈(1900)의 특성에 기초하여, 어플리케이션(1800)의 실행이 중지된 후에 실행될 백그라운드 모듈(1900)의 실행 방법을 결정할 수 있다.
또한, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 일정 시간이 경과한 경우, 어플리케이션(1800)을 디바이스(1000)내에서 설치 해제 할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 일정 시간이 경과한 경우, 디바이스(1000)내에 설치되어 있는 어플리케이션(1800)과 관련된 파일들을 추출하여 어플리케이션(1800)의 설치 파일을 생성할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 설치 해제 후에도, 어플리케이션(1800)의 실행을 명령하는 입력을 수신하는 경우, 어플리케이션(1800)을 재 설치하여 어플리케이션(1800)을 실행시킬 수 있다.
도 2는 본 발명의 일 실시예에 따른, 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스(1000)가 백그라운드 모듈(1900)의 실행을 제어하는 방법의 흐름도이다.
단계 S210 에서, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하여 백그라운드 모듈(1900)의 실행을 중지할 시간인 제 1 백그라운드 중지 시간을 결정할 수 있다.
예를 들어, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간의 길이에 비례하여 제 1 백그라운드 중지 시간을 결정할 수 있다.
제 1 백그라운드 중지 시간은 일정 기간 동안 백그라운드 모듈(1900)을 중지할 시간을 의미할 수 있다. 예를 들어, 제 1 백그라운드 중지 시간은 제 1 시점부터 제 2 시점까지의 시간 동안 백그라운드 모듈(1900)을 중지할 총 시간을 포함할 수 있다.
또한, 예를 들어, 제 1 백그라운드 중지 시간은 제 1 시점부터 제 2 시점까지의 시간에 걸쳐서, 단위 시간(미리 정해진 시간 주기) 마다 단위 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 시간을 포함할 수 있다.
제 1 백그라운드 중지 시간은 미리 결정된 복수의 백그라운드 중지 시간 중 하나일 수 있다. 복수의 백그라운드 중지 시간은 백그라운드 모듈(1900) 각각에 대응하여 결정될 수 있다.
예를 들어, 디바이스(1000)는 백그라운드 모듈(1900)의 전력 사용량, 리소스 사용량 및 네트워크 사용량 중 적어도 하나에 기초하여 백그라운드 모듈(1900)에 대응하는 제 1 백그라운드 중지 시간을 결정할 수 있다. 예를 들어, 백그라운드 모듈(1900)의 전력 소모량이 많을수록, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 상태에서 백그라운드 모듈(1900)의 실행 시간이 보다 줄어들도록 결정할 수 있다. 이와 관련된 실시예에 대해서는 이하 도 7을 참조하여 이하에서 설명한다.
디바이스(1000)는 제 1 시점이 경과하기 전에 제 1 백그라운드 중지 시간을 미리 결정할 수 있다. 이 경우, 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점이 경과 했을 때, 디바이스(1000)는 미리 결정된 제 1 백그라운드 중지 시간을 획득할 수 있다.
제 1 시점은 미리 결정된 복수의 시점 중 하나일 수 있다. 복수의 시점은 어플리케이션(1800)의 실행이 중지된 후, 백그라운드 모듈(1900)의 실행 방법을 변경할 시점을 의미할 수 있다. 복수의 시점은 어플리케이션(1800)에 대응하여 결정될 수 있다.
예를 들어, 디바이스(1000)는 어플리케이션(1800)의 실행 빈도, 실행 주기 및 실행 시간 중 적어도 하나에 기초하여 복수의 시점을 결정할 수 있다. 예를 들어, 디바이스(1000)는 어플리케이션(1800)의 실행 빈도 또는 평균 실행 시간이 클수록 어플리케이션(1800)의 실행이 종료된 시점부터 제 1 시점까지의 시간 길이가 길어지도록 제 1 시점을 결정할 수 있다. 이와 관련된 실시예에 대해서는 이하 도 6을 참조하여 이하에서 설명한다.
단계 S220에서, 디바이스(1000)는 결정된 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점이 경과함에 따라, 디바이스(1000)는 단계 S210에서 결정된 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
디바이스(1000)는 제 1 시점부터 제 2 시점까지의 시간에 걸쳐, 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다. 디바이스(1000)는 백그라운드 중지 시간 동안 연속하여 백그라운드 모듈(1900)을 중지할 수 있다. 또한, 디바이스(1000)는 백그라운드 중지 시간 동안 주기적으로 백그라운드 모듈(1900)을 중지할 수도 있다.
또한, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 일정 시간이 경과한 경우, 디바이스(1000)에 설치된 어플리케이션(1800)을 설치 해제 할 수 있다.
또한, 디바이스(1000)는 어플리케이션(1800)이 설치 해제된 후, 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신한 경우, 어플리케이션(1800)을 재 설치할 수 있다. 이와 관련된 실시예에 대해서는 이하 도 8, 도 9 및 도 10을 참조하여 이하에서 설명한다.
이하에서는, 디바이스(1000)가 어플리케이션(1800)의 실행이 중지된 후 백그라운드 모듈(1900)을 제어하는 방법에 대해서 도 3, 도 4 및 도 5를 참조하여 자세히 살펴보기로 한다.
도 3은 본 발명의 일 실시예에 따른, 디바이스(1000)가 어플리케이션(1800)을 관리하는 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 백그라운드 모듈(1900)은 어플리케이션(1800)의 실행이 중지된 이후에 계속하여 실행될 수 있다. 도 3의 실시예에서, 복수의 시점 및 복수의 백그라운드 중지 시간은 어플리케이션(1800)의 실행이 중지되기 전에 디바이스(1000)에 의해 미리 결정된 것으로 가정한다.
어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스(1000)는 제 1 시점의 경과 여부를 판단할 수 있다. 제 1 시점이 경과한 것으로 판단한 경우, 디바이스(1000)는 실행 중인 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
백그라운드 모듈(1900)이 중지됨에 따라, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하는 제 1 백그라운드 중지 시간을 획득할 수 있다.
시간이 경과함에 따라, 디바이스(1000)는 제 1 시점부터 제 1 백그라운드 중지 시간이 경과하였는지 여부를 판단할 수 있다. 제 1 시점부터 제 1 백그라운드 중지 시간까지의 시간이 경과한 것으로 판단한 경우, 디바이스(1000)는 중지했던 백그라운드 모듈(1900)을 재 실행할 수 있다.
백그라운드 모듈(1900)이 재 실행 됨에 따라, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 2 시점이 경과하였는지 여부를 판단할 수 있다. 어플리케이션(1800)의 실행이 중지된 시점부터 제 2 시점이 경과한 경우, 디바이스(1000)는 재 실행된 백그라운드 모듈(1900)을 다시 중지할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 2 시점까지의 시간에 대응하는 제 2 백그라운드 중지 시간을 획득할 수 있다. 제 2 백그라운드 중지 시간은 제 1 백그라운드 중지 시간보다 클 수 있다.
계속하여, 디바이스(1000)는 제 2 백그라운드 중지 시간 동안 백그라운드 모듈(1900)을 중지한 후, 제 3 시점까지 백그라운드 모듈(1900)을 다시 실행할 수 있다.
제 1 시점, 제 2 시점, 제 3 시점이 경과함에 따라, 이에 대응하는 백그라운드 중지 시간 또한 증가하므로, 시간이 경과함에 따라 디바이스(1000)는 백그라운드 모듈(1900)의 실행 시간 점차적으로 줄일 수 있다.
또한, 제 3 시점 이후에, 디바이스(1000)는 어플리케이션(1800)을 실행할 것을 명령하는 입력을 수신할 때까지, 백그라운드 모듈(1900)을 다시 실행하지 않을 수 있다.
따라서, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 후 시간이 경과함에 따라, 백그라운드 모듈(1900)의 실행 시간을 점차적으로 줄임으로써, 전력 소모를 줄일 수 있고, 디바이스(1000)의 리소스 사용량 또한 줄일 수 있다.
도 4는 본 발명의 일 실시예에 따른, 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스(1000)가 주기적으로 백그라운드 모듈(1900)의 실행을 제어하는 방법의 세부 흐름도이다.
단계 S410에서, 디바이스(1000)는 디바이스(1000)에서 실행 중인 어플리케이션(1800)을 중지할 수 있다.
어플리케이션(1800)의 실행은 사용자의 중지 명령에 의해 중지 될 수 있다. 예를 들어, 어플리케이션(1800)의 실행 중, 어플리케이션(1800)을 중지하는 사용자 입력을 수신한 경우, 디바이스(1000)는 어플리케이션(1800)의 실행을 중지할 수 있다. 또한, 어플리케이션(1800)의 실행은 디바이스(1000)의 운영체제에 의해서 중지될 수 있다. 또한, 어플리케이션(1800)의 실행은 다른 어플리케이션(1800)에 의해서 중지될 수도 있다.
디바이스(1000)는 어플리케이션(1800)의 실행이 중지됨에 따라, 어플리케이션(1800)의 실행이 중지된 시점을 저장할 수 있다.
단계 S420에서, 디바이스(1000)는 제 1 시점이 경과함에 따라, 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 후 시간이 경과함에 따라, 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간이 지났음을 판단할 수 있다.
예를 들어, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지되었음을 판단한 경우, 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간이 지났을 때 시간 이벤트(Event)가 발생되도록 설정할 수 있다.
어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간이 지남에 따라, 디바이스(1000)는 제 1 시점이 경과하였음을 알리는 시간 이벤트를 발생시킬 수 있다. 시간 이벤트가 발생한 것으로 판단한 경우, 디바이스(1000)는 제 1 시점이 경과하였음을 판단할 수 있다.
디바이스(1000)는 각각의 어플리케이션(1800)에 대응하여 어플리케이션(1800)을 구성하는 백그라운드 모듈(1900)의 리스트를 가지고 있을 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)이 실행 중인지 여부를 판단할 수 있을 뿐만 아니라, 어플리케이션(1800)의 백그라운드 모듈(1900)이 실행 중인지 여부 또한 판단할 수 있다.
이에 따라, 디바이스(1000)는 제 1 시점이 경과하였음을 판단한 경우, 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
디바이스(1000)는 어플리케이션(1800)의 모든 백그라운드 모듈(1900)의 실행을 중지할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 백그라운드 모듈(1900)들 중 일부의 모듈의 실행만을 중지할 수도 있다.
단계 S430에서, 디바이스(1000)는 백그라운드 모듈(1900)의 실행이 중지된 시점부터, 단위 시간당 제 1 백그라운드 중지 시간의 경과 여부를 판단할 수 있다.
백그라운드 모듈(1900)이 중지됨에 따라, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하는 단위 시간당 제 1 백그라운드 중지 시간을 획득할 수 있다.
또한, 시간이 경과함에 따라, 디바이스(1000)는 백그라운드 모듈(1900)이 중지된 시점부터 단위 시간당 제 1 백그라운드 중지 시간이 지났음을 판단할 수 있다.
예를 들어, 디바이스(1000)는 백그라운드 모듈(1900)이 중지되었음을 판단한 경우, 백그라운드 모듈(1900)이 중지된 시점부터 단위 시간당 제 1 백그라운드 중지 시간이 지났을 때 시간 이벤트가 발생되도록 설정할 수 있다. 시간 이벤트가 발생한 경우, 디바이스(1000)는 단위 시간당 제 1 백그라운드 중지 시간이 경과하였음을 판단할 수 있다.
단계 S440에서, 단위 시간당 제 1 백그라운드 중지 시간이 경과한 경우, 백그라운드 모듈(1900)을 재 실행할 수 있다.
단위 시간당 제 1 백그라운드 중지 시간이 경과함에 따라, 디바이스(1000)는 단계 S430에서 중지했던 백그라운드 모듈(1900)을 재 실행할 수 있다.
단계 S450에서, 디바이스(1000)는 백그라운드 모듈(1900)의 실행이 중지된 시점부터, 단위 시간이 경과함에 따라, 백그라운드 모듈(1900)을 다시 중지할 수 있다.
디바이스(1000)는 백그라운드 모듈(1900)의 실행이 중지된 시점부터 단위 시간이 경과되었음을 판단할 수 있다. 백그라운드 모듈(1900)의 실행이 중지된 시점부터 단위 시간이 경과된 것으로 판단된 경우, 디바이스(1000)는 백그라운드 모듈(1900)을 다시 중지할 수 있다.
디바이스(1000)는 제 1 시점부터 제 2 시점까지, 단계 S420부터 단계 S450를 반복적으로 실행할 수 있다. 이에 따라, 디바이스(1000)는 제 1 시점부터 제 2 시점까지 단위 시간 마다 단위 시간당 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
디바이스(1000)는 제 2 시점부터 제 3 시점까지, 단위 시간 마다, 어플리케이션(1800)의 실행이 중지된 시점부터, 제 2 시점까지 시간에 대응하는 단위 시간당 제 2 백그라운드 중지 시간 동안, 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
도 5는 본 발명의 일 실시예에 따른, 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스(1000)가 주기적으로 백그라운드 모듈(1900)의 실행을 제어하는 실시예를 설명하기 위한 도면이다.
도 5를 참조하면, 백그라운드 모듈(1900)은 어플리케이션(1800)의 실행이 중지된 이후에 계속하여 실행될 수 있다. 도 5의 실시예에서, 복수의 시점 및 복수의 단위 시간당 백그라운드 중지 시간은 어플리케이션(1800)의 실행이 중지되기 전 디바이스(1000)에 의해 미리 결정된 것으로 가정한다.
어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 디바이스(1000)는 제 1 시점의 경과 여부를 판단할 수 있다. 제 1 시점이 경과한 것으로 판단한 경우, 디바이스(1000)는 실행 중인 백그라운드 모듈(1900)의 실행을 중지할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하는 단위 시간당 제 1 백그라운드 중지 시간을 획득할 수 있다.
백그라운드 모듈(1900)의 실행이 중지됨에 따라, 디바이스(1000)는 제 1 시점부터 단위 시간당 제 1 백그라운드 중지 시간이 경과하였는지 여부를 판단할 수 있다. 제 1 시점부터 단위 시간당 제 1 백그라운드 중지 시간이 경과한 것으로 판단한 경우, 디바이스(1000)는 중지했던 백그라운드 모듈(1900)을 재 실행할 수 있다.
백그라운드 모듈(1900)이 재 실행됨에 따라, 디바이스(1000)는 백그라운드 모듈(1900)의 실행이 중지된 시점부터 단위 시간(510)이 경과 하였는지 여부를 판단할 수 있다. 단위 시간(510)은 백그라운드 모듈(1900)의 실행이 중지되는 주기를 의미할 수 있다. 예를 들어, 단위 시간(510)은 30분, 1 시간 및 1 일 등으로 결정될 수 있다.
백그라운드 모듈(1900)의 실행이 중지된 제 1 시점부터 단위 시간(510)이 경과한 경우, 디바이스(1000)는 백그라운드 모듈(1900)의 실행을 다시 중지할 수 있다.
디바이스(1000)는 제 1 시점부터 단위 시간(510) 동안 수행한 단계를 제 1 시점부터 제 2 시점까지 반복할 수 있다.
이에 따라, 디바이스(1000)는 주기적으로 백그라운드 모듈(1900)을 실행할 수 있으므로, 백그라운드 모듈(1900)의 실행 시간을 줄이더라도 사용자가 어플리케이션(1800)을 다시 실행했을 때, 사용자가 필요로 하는 정보를 신속하게 제공할 수 있다.
시간이 경과함에 따라, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 2 시점까지의 시간이 경과했는지 여부를 판단할 수 있다. 제 2 시점까지의 시간이 경과한 경우, 디바이스(1000)는 실행 중인 백그라운드 모듈(1900)의 실행을 중지할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 2 시점까지의 시간에 대응하는 단위 시간당 제 2 백그라운드 중지 시간을 획득할 수 있다. 이 경우, 단위 시간당 제 2 백그라운드 중지 시간은 단위 시간당 제 1 백그라운드 중지 시간보다 클 수 있다.
백그라운드 모듈(1900)이 중지됨에 따라, 디바이스(1000)는 제 2 시점부터 단위 시간당 제 2 백그라운드 중지 시간이 경과하였는지 여부를 판단할 수 있다. 제 2 시점부터 단위 시간당 제 2 백그라운드 중지 시간이 경과한 것으로 판단한 경우, 디바이스(1000)는 중지했던 백그라운드 모듈(1900)을 재 실행할 수 있다.
백그라운드 모듈(1900)이 재 실행됨에 따라, 디바이스(1000)는 백그라운드 모듈(1900)의 실행이 중지된 시점부터 단위 시간(510)이 경과 하였는지 여부를 판단할 수 있다. 백그라운드 모듈(1900)의 실행이 중지된 제 2 시점부터 단위 시간(510)이 경과한 경우, 디바이스(1000)는 백그라운드 모듈(1900)의 실행을 다시 중지할 수 있다.
디바이스(1000)는 제 2 시점부터 단위 시간(510) 동안 수행한 단계를 제 2 시점부터 제 3 시점까지 반복할 수 있다.
도 5에 도시된 바와 같이, 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 단위 시간당 백그라운드 중지 시간은 증가 할 수 있다. 예를 들어, 단위 시간당 제 1 백그라운드 중지 시간 보다 단위 시간당 제 2 백그라운드 중지 시간이 더 큰 값을 가질 수 있으며, 단위 시간당 제 2 백그라운드 중지 시간 보다 단위 시간당 제 3 백그라운드 중지 시간이 더 큰 값을 가질 수 있다. 이에 따라, 어플리케이션(1800)의 실행이 중지된 상태에서, 백그라운드 모듈(1900)의 실행 시간은 시간이 경과함에 따라 감소될 수 있다.
시간이 경과함에 따라, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 4 시점까지의 시간이 경과했는지 여부를 판단할 수 있다. 제 4 시점까지의 시간이 경과한 경우, 디바이스(1000)는 실행 중인 백그라운드 모듈(1900)의 실행을 중지할 수 있다. 백그라운드 모듈(1900)의 실행이 중지됨에 따라, 디바이스(1000)는 백그라운드 모듈(1900)을 재 실행하지 않을 수 있다. 이에 따라, 어플리케이션(1800)의 실행이 중지된 시점부터 일정 시간이 경과한 경우, 백그라운드 모듈(1900)은 실행되지 않을 수 있다.
시간이 경과함에 따라, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 제 5 시점까지의 시간이 경과했는지 여부를 판단할 수 있다. 제 5 시점까지의 시간이 경과한 경우, 디바이스(1000)는 어플리케이션(1800)을 설치 해제(Uninstall)할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)과 관련된 파일 중 어플리케이션(1800)의 설치 파일을 제외한 나머지 파일을 삭제할 수 있다. 이와 관련된 실시예에 대해서는 도 8 내지 도 9를 참조하여 이하에서 설명한다.
어플리케이션(1800)의 실행이 중지된 시점부터 제 5 시점 전까지, 어플리케이션(1800)을 실행할 것을 명령하는 사용자 입력을 수신한 경우, 디바이스(1000)는 백그라운드 모듈(1900)을 포함하는 어플리케이션(1800) 전체를 다시 실행 시킬 수 있다.
도 6은 본 발명의 일 실시예에 따른, 디바이스(1000)가 어플리케이션(1800)의 사용 기록에 기초하여 백그라운드 모듈(1900)의 실행 시간을 결정하는 방법을 설명하기 위한 도면이다.
디바이스(1000)는 어플리케이션(1800)의 실행에 관한 정보를 획득할 수 있다. 예를 들어, 디바이스(1000)는 어플리케이션(1800)이 실행될 때, 어플리케이션(1800)의 실행이 시작된 시점과 종료된 시점을 확인하여 어플리케이션(1800)의 실행 시간, 어플리케이션(1800)의 실행 횟수 등을 산출할 수 있다.
디바이스(1000)는 어플리케이션(1800)의 실행에 관한 정보에 기초하여, 사용자의 어플리케이션(1800)의 사용 패턴을 결정할 수 있다. 어플리케이션(1800)의 사용 패턴은 각각의 어플리케이션(1800)에 대응하여 결정될 수 있다. 어플리케이션(1800)의 사용 패턴은 어플리케이션(1800)의 평균 실행 시간, 평균 실행 횟수, 실행 주기, 하루 중 어플리케이션(1800)이 주로 실행되는 시간 또는 일주일 중 어플리케이션(1800)이 주로 실행되는 요일 등을 포함할 수 있다.
디바이스(1000)는 사용자의 어플리케이션(1800)의 사용 패턴에 기초하여, 어플리케이션(1800)의 실행이 중지된 후 백그라운드 모듈(1900)의 실행을 제어하는 방법을 결정할 수 있다.
예를 들어, 디바이스(1000)는 어플리케이션(1800)의 사용 패턴에 기초하여, 복수의 시점 및 어플리케이션(1800)의 삭제 예정 시점을 결정할 수 있다.
예를 들어, 디바이스(1000)는 어플리케이션(1800)의 평균 실행 시간 또는 평균 실행 횟수가 작을수록, 어플리케이션(1800)의 실행이 중지된 시점부터 복수의 시점 및 어플리케이션(1800)의 삭제 예정 시점까지의 시간이 작아지도록 복수의 시점 및 어플리케이션(1800)의 삭제 예정 시점을 결정할 수 있다.
도 6을 참조하면, 어플리케이션 2는 어플리케이션 1 보다 주 당 실행 시간(610) 및 실행 횟수(620)가 작다. 이에 따라, 디바이스(1000)는 어플리케이션 1에 대응하는 복수의 확인 시점(630)을 2주, 4주 6주 8주로 결정할 수 있다. 또한, 디바이스(1000)는 어플리케이션 1에 대응하는 삭제 예정 시점(640)을 9주로 결정할 수 있다. 반면, 디바이스(1000)는 어플리케이션 2의 복수의 확인 시점(630)은 어플리케이션 1 보다 작은 1주, 4주, 5주, 6주로 결정하고, 어플리케이션 1의 삭제 예정 시점(640) 또한 어플리케이션 1보다 작은 7주로 결정할 수 있다.
따라서, 사용자가 자주 사용하지 않는 어플리케이션(1800) 일수록 어플리케이션(1800)의 실행이 종료된 후에 백그라운드 모듈(1900)의 실행 시간이 줄어들 수 있다. 또한, 사용자가 자주 사용하지 않는 어플리케이션(1800) 일수록 어플리케이션(1800)의 실행이 종료된 후에 더 빨리 삭제될 수 있다.
도 7은 본 발명의 일 실시예에 따른, 디바이스(1000)가 백그라운드 모듈(1900)의 특성에 기초하여 백그라운드 모듈(1900)의 실행 시간을 결정하는 방법을 설명하기 위한 도면이다.
디바이스(1000)는 백그라운드 모듈(1900)의 특성을 획득할 수 있다. 백그라운드 모듈(1900)의 특성은 전력 소모량, 네트워크 사용량 및 CPU 사용률 중 적어도 하나를 포함할 수 있다.
예를 들어, 디바이스(1000)는 백그라운드 모듈(1900)이 실행됨에 따라, 백그라운드 모듈(1900)의 네트워크 사용량 또는 CPU 사용률을 산출할 수 있다. 또한, 디바이스(1000)는 산출된 백그라운드 모듈(1900)의 네트워크 사용량 또는 CPU 사용률 등에 기초하여 백그라운드 모듈(1900)의 전력 사용량을 추정할 수 있다.
디바이스(1000)는 백그라운드 모듈(1900)의 특성에 기초하여, 어플리케이션(1800)의 실행이 중지된 이후에 백그라운드 모듈(1900)의 실행을 제어하는 방법을 결정할 수 있다. 디바이스(1000)는 백그라운드 모듈(1900)의 특성에 기초하여 백그라운드 중지 시간을 결정할 수 있다. 예를 들어, 디바이스(1000)는 백그라운드 모듈(1900)의 전력 소모량, 네트워크 사용량 또는 CPU 사용률이 클수록 백그라운드 중지 시간을 늘릴 수 있다.
도 7을 참조하면, 어플리케이션 1의 백그라운드 모듈(1900)의 네트워크 사용량(710) 및 CPU 사용률(720)이 어플리케이션 2의 백그라운드 모듈(1900)의 네트워크 사용량(710) 및 CPU 사용률(720) 보다 크다. 이에 따라, 디바이스(1000)는 어플리케이션 1의 백그라운드 중지 시간(730)을 30 분, 40 분, 50 분으로 결정할 수 있다. 반면, 디바이스(1000)는 어플리케이션 2의 백그라운드 중지 시간(730)은 어플리케이션 1의 백그라운드 모듈(1900) 보다 작은 20 분, 30 분, 40 분으로 결정할 수 있다.
따라서, 백그라운드 모듈(1900)의 전력 소모량, 네트워크 사용량 또는 CPU 사용률이 클수록 백그라운드 모듈(1900)의 실행 시간을 줄일 수 있다.
도 8은 본 발명의 일 실시예에 따른, 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 어플리케이션(1800)을 삭제하는 방법을 설명하기 위한 흐름도이다.
단계 S810에서, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 어플리케이션(1800)의 삭제 예정 시점이 경과되었는지 판단할 수 있다.
어플리케이션(1800)의 삭제 예정 시점은 어플리케이션(1800)의 사용 패턴 및 백그라운드 모듈(1900)의 특성 중 적어도 하나에 기초하여 결정될 수 있다.
단계 S810에서 어플리케이션(1800)의 삭제 예정 시점이 경과한 것으로 판단된 경우, 단계 S820에서 디바이스(1000)는 어플리케이션(1800)의 설치 파일이 디바이스에 저장되어 있는지 판단할 수 있다.
디바이스(1000)는 어플리케이션(1800)의 식별 정보에 대응하여 어플리케이션(1800)의 설치 파일의 존재 여부가 저장되어 있을 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 설치 파일이 일괄적으로 저장되는 저장 위치를 검색하여 어플리케이션(1800)의 설치 파일의 존재 여부를 판단할 수 있다.
단계 S820에서 어플리케이션(1800)의 설치 파일이 디바이스에 저장되어 있지 않은 경우, 단계 S830에서, 디바이스(1000)는 어플리케이션(1800)이 설치된 저장 위치에 기초하여 어플리케이션(1800)의 설치 파일을 생성할 수 있다.
예를 들어, 디바이스(1000)는 어플리케이션(1800)이 설치된 저장 위치를 획득할 수 있다. 디바이스(1000)는 어플리케이션(1800)을 설치하였을 때, 어플리케이션(1800)을 설치한 저장 위치를, 어플리케이션(1800)의 식별 정보에 대응하여, 파일 또는 데이터 베이스 형태로 저장할 수 있다. 이에 따라, 디바이스(1000)는 어플리케이션(1800)의 식별 정보에 대응하여 어플리케이션(1800)의 설치 파일에 필요한 파일들이 저장된 위치를 획득할 수 있다.
디바이스(1000)는 획득된 저장 위치로부터 어플리케이션(1800)의 실행 파일, 어플리케이션(1800)의 리소스 파일, 어플리케이션(1800)에 관한 정보 파일, 어플리케이션(1800)의 실행 권한에 관한 정보 파일 및 인증 파일 등을 추출할 수 있다. 그리고, 디바이스(1000)는 추출된 파일들을 패키징하여 어플리케이션(1800)의 설치 파일을 재 생성할 수 있다. 예를 들어, 디바이스(1000)는 추출된 파일들을 미리 정해진 방법으로 적어도 하나의 파일로 압축하여 설치 파일을 재생성할 수 있다.
이 경우, 디바이스(1000)는 원본과 동일한 파일로 구성되도록 어플리케이션(1800) 설치 파일을 재 생성할 수 있다. 또한, 디바이스(1000)는 배포된 어플리케이션(1800)의 설치 파일을 구성하는 원본 파일 이외에 어플리케이션(1800)의 실행을 통해 생성된 데이터를 포함하여 어플리케이션(1800) 설치 파일을 재 생성할 수 있다. 어플리케이션(1800)의 실행을 통해 생성된 데이터는 사용자의 어플리케이션(1800) 사용에 관한 데이터, 어플리케이션(1800)을 실행함에 따라 생성된 파일 등을 포함할 수 있다. 실시예에 따라, 재 생성된 어플리케이션(1800)의 설치 파일은 어플리케이션(1800)의 백업(Backup) 파일로도 언급될 수 있다.
단계 S840에서, 디바이스(1000)는 단계 S830에서 생성된 어플리케이션(1800) 설치 파일을 저장할 수 있다.
디바이스(1000)는 재 생성한 어플리케이션(1800)의 설치 파일을 미리 정해진 설치 파일 저장 위치에 저장할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 식별 정보에 대응하여, 어플리케이션(1800) 설치 파일이 저장된 저장 위치를 저장할 수 있다.
단계 S850에서, 디바이스(1000)는 디바이스(1000)에 설치된 어플리케이션(1800)을 설치 해제할 수 있다.
디바이스(1000)는 어플리케이션(1800)의 설치 파일을 제외한 어플리케이션(1800)과 관련된 파일 및 데이터들을 삭제함으로써 어플리케이션(1800)을 설치 해제할 수 있다.
예를 들어, 디바이스(1000)는 디바이스 내에 저장된 어플리케이션(1800)의 실행 파일, 리소스 파일을 삭제 할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)이 실행됨에 따라 생성된 데이터 또는 파일을 삭제할 수 있다. 디바이스(1000)는 디바이스(1000)내에 설치된 어플리케이션(1800)들에 관한 정보에서 설치 해제된 어플리케이션(1800)에 관한 정보를 삭제할 수 있다. 또한, 디바이스(1000)는 일정 기간 동안 사용되지 않아 설치 해제한 어플리케이션(1800)의 식별 정보를 저장할 수 있다.
또한, 어플리케이션(1800)을 디바이스(1000) 내에서 설치 해제하기 전에, 디바이스(1000)는 어플리케이션(1800)을 설치 해제할지 여부를 선택하기 위한 사용자 인터페이스를 디스플레이 할 수 있다. 어플리케이션(1800)을 설치 해제할 것을 선택하는 사용자 입력에 수신하는 경우에만, 디바이스(1000)는 어플리케이션(1800)을 설치 해제할 수도 있다.
따라서, 디바이스(1000)는 일정 기간 사용하지 않는 어플리케이션(1800)을 설치 해제함으로써 저장부의 사용 가능 공간을 늘릴 수 있다. 특히, 어플리케이션(1800)을 설치할 때, 어플리케이션(1800)은 운영 체제(Operating system)가 설치된 시스템 드라이브(System drive)와 같은 미리 정해진 위치에 설치되도록 설정될 수 있다. 이 경우, 디바이스(1000)는 불필요한 어플리케이션(1800) 관련 파일을 삭제함으로써 다른 어플리케이션(1800)을 설치할 수 있는 저장 공간을 늘릴 수 있다.
도 9은 본 발명의 일 실시예에 따른, 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 어플리케이션(1800)을 설치 해제하는 일례를 설명하기 위한 도면이다.
도 9(a)를 참조하면, 디바이스(1000)는 어플리케이션(1800)을 설치 해제하기 전에, 어플리케이션(1800)을 설치 해제할지 여부를 선택하기 위한 사용자 인터페이스(930)를 디스플레이 할 수 있다.
디바이스(1000)는 어플리케이션(1800)을 설치 해제할 것을 선택하는 사용자 입력을 수신하는 경우, 디바이스(1000) 어플리케이션(1800)을 설치 해제할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)을 설치 해제하지 않을 것을 선택하는 사용자 입력을 수신하는 경우, 디바이스(1000)는 어플리케이션(1800)을 설치 해제하지 않고 어플리케이션(1800)의 실행을 명령하는 입력을 수신할 때까지 어플리케이션(1800)의 백그라운드 모듈(1900)을 중지한 상태로 유지할 수 있다.
도 9(b)를 참조하면, 디바이스(1000)는 디바이스(1000)내에서 어플리케이션(1800)을 삭제할지 여부를 선택하기 위한 사용자 인터페이스(950)를 디스플레이 할 수 있다.
디바이스(1000)는 일정 시간 동안 어플리케이션(1800)이 실행 되지 않은 경우, 바로 어플리케이션(1800)을 삭제할지 여부를 선택하기 위한 사용자 인터페이스를 디스플레이 할 수 있다. 또한, 디바이스(1000)는, 도 9(a)에서 어플리케이션(1800)을 설치 해제할 것을 선택하는 사용자 입력을 수신하는 경우에만 어플리케이션(1800)을 삭제할 것을 선택하기 위한 사용자 인터페이스를 디스플레이 할 수도 있다.
디바이스(1000)는 어플리케이션(1800)을 삭제할 것을 선택하는 사용자 입력을 수신한 경우, 어플리케이션(1800)을 설치 해제할 뿐만 아니라 어플리케이션(1800)의 설치 파일 또한 삭제할 수 있다.
또한, 디바이스(1000)는 어플리케이션(1800)의 실행이 중지된 시점부터 경과된 시간을 나타내는 정보(910)를 함께 디스플레이 할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)이 중지된 상태에서 소모되는 전력을 디스플레이 할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 백그라운드 모듈(1900)의 특성을 디스플레이 할 수 있다. 또한, 디바이스(1000)는 사용자의 어플리케이션(1800)의 사용 기록 또는 어플리케이션(1800) 사용 패턴을 나타내는 정보를 디스플레이 할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 설치 파일의 크기를 나타내는 정보를 디스플레이 할 수 있다.
따라서, 사용자가 불필요하다고 판단하는 어플리케이션(1800)들을 삭제함으로써, 디바이스(1000)의 전력 소모를 줄일 수 있을 뿐만 아니라, 디바이스(1000)의 저장 공간 또한 효율적으로 사용할 수 있다.
도 10는 본 발명의 일 실시예에 따른, 어플리케이션(1800)이 설치 해제된 후, 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신함에 따라, 어플리케이션(1800)을 다시 설치하여 실행하는 방법을 설명하기 위한 흐름도이다.
단계 S1010에서, 디바이스(1000)는 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신할 수 있다.
디바이스(1000)는 어플리케이션(1800)이 설치 해제된 후에도 어플리케이션(1800)을 실행하기 위한 사용자 입력을 수신할 수 있다.
예를 들어, 디바이스(1000)는 일정 기간 동안 사용되지 않아 설치 해제한 어플리케이션(1800)의 식별 정보를 저장할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)을 설치 해제하기 전에, 어플리케이션(1800)의 설치 파일이 저장되어 있지 않은 경우, 어플리케이션(1800)의 설치 파일을 재 생성할 수 있다.
또한, 디바이스(1000)는 재 생성한 어플리케이션(1800) 설치 파일을 미리 정해진 설치 파일 저장 위치에 저장할 수 있다. 그리고, 디바이스(1000)는 어플리케이션(1800)의 식별 정보에 대응하여, 어플리케이션(1800)의 설치 파일이 저장된 저장 위치에 관한 정보를 저장할 수 있다.
이에 따라, 디바이스(1000)는, 설치 파일은 저장되어 있으나, 일정 기간 동안 사용되지 않아 설치 해제한 어플리케이션(1800)의 식별 정보에 기초하여, 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신하기 위한 인터페이스를 디스플레이 할 수 있다. 예를 들어, 디바이스(1000)는 어플리케이션(1800)이 설치 해제되었지만, 저장된 설치 파일을 이용하여 어플리케이션(1800)을 다시 실행시킬 수 있는 어플리케이션(1800)에 관한 목록을 디스플레이 할 수 있다.
단계 S1020에서, 디바이스(1000)는 어플리케이션(1800)의 설치 파일의 저장 위치에 기초하여, 어플리케이션(1800)을 설치할 수 있다.
설치 해제된 어플리케이션(1800)을 선택하는 사용자 입력을 수신한 경우, 디바이스(1000)는 선택된 어플리케이션(1800)의 식별 정보에 대응하여 어플리케이션(1800)의 설치 파일의 저장 위치를 획득할 수 있다. 그리고, 디바이스(1000)는 획득한 저장 위치에 기초하여 어플리케이션(1800)을 재설치 할 수 있다.
예를 들어, 디바이스(1000)는 어플리케이션(1800)을 설치할 논리적인 저장공간을 생성할 수 있다. 예를 들면, 디바이스(1000)는 실행 파일을 저장하는 디렉토리 및 어플리케이션(1800)을 실행하기 위해 필요한 데이터를 저장하는 디렉토리를 생성할 수 있다.
그리고, 디바이스(1000)는 어플리케이션(1800)의 설치 파일을 압축 해제하여 어플리케이션(1800)의 실행 파일 및 리소스 파일 등을 추출할 수 있다. 그리고 디바이스(1000)는 추출한 어플리케이션(1800)의 실행 파일 및 리소스 파일 등을 생성된 저장 공간에 저장할 수 있다.
어플리케이션(1800)의 설치 파일은 디바이스(1000) 내에서 재 생성된 어플리케이션(1800)의 설치 파일일 수 있다. 이 경우, 어플리케이션(1800)의 설치 파일은 재 생성되기 전에 디바이스(1000)내에서 어플리케이션(1800)이 실행됨에 따라 생성된 데이터를 포함할 수 있다. 어플리케이션(1800)이 실행됨에 따라 생성된 데이터는 사용자의 어플리케이션(1800) 사용에 관한 데이터, 어플리케이션(1800)을 실행함에 따라 생성된 파일 등을 포함할 수 있다.
어플리케이션(1800)의 설치 파일이, 어플리케이션(1800)이 실행됨에 따라 생성된 데이터를 더 포함하는 경우, 디바이스(1000)는 포함된 데이터를 데이터가 생성되었던 디렉토리에 동일하게 저장할 수 있다. 이에 따라, 디바이스(1000)는 재 생성한 어플리케이션(1800)의 설치 파일을 디바이스(1000)에 설치한 경우, 어플리케이션(1800)의 설치 파일을 재 생성하였을 때의 어플리케이션(1800)의 실행 환경과 동일한 어플리케이션(1800)의 실행 환경 및 동일한 사용자 데이터를 사용자에게 제공할 수 있다.
디바이스(1000)는 설치된 어플리케이션(1800)에 대응하여 어플리케이션(1800) 식별 정보를 할당할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 식별 정보에 대응하여, 어플리케이션(1800)의 설치 파일이 저장된 저장 위치, 어플리케이션(1800)이 설치된 저장위치를 파일 또는 데이터 베이스 형태로 저장할 수 있다.
단계 S1030에서, 디바이스(1000)는 설치된 어플리케이션(1800)을 실행할 수 있다.디바이스(1000)는 어플리케이션(1800)이 설치된 저장위치를 획득할 수 있다. 그리고, 디바이스(1000)는 어플리케이션(1800)의 실행 파일을 메모리에 적재하고, 적재된 실행파일 내의 실행코드에 따라 디바이스를 동작시킴으로써 어플리케이션(1800)을 실행할 수 있다.
도 11는 본 발명의 일 실시예에 따른, 어플리케이션(1800)이 설치 해제된 후, 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신함에 따라, 어플리케이션(1800)을 다시 설치하여 실행하는 방법을 설명하기 위한 도면이다.
디바이스(1000)는 설치 파일은 저장되어 있으나, 일정 기간 동안 사용되지 않아 설치 해제한 어플리케이션(1800)의 식별 정보에 기초하여, 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신하기 위한 인터페이스를 디스플레이 할 수 있다.
도 11(a)를 참조하면, 디바이스(1000)는 디바이스(1000) 내에서 실행 가능한 어플리케이션(1800)을 나타내는 사용자 인터페이스(1110)를 디스플레이할 수 있다. 이 경우, 디바이스(1000)는 설치 해제된 어플리케이션(1800)을 나타내는 사용자 인터페이스(1120,1130.1140) 또한 디스플레이할 수 있다.
디바이스(1000)는 설치 해제된 어플리케이션(1800)을 나타내는 사용자 인터페이스를 디바이스(1000)에 설치된 어플리케이션(1800)을 나타내는 사용자 인터페이스와 구별되도록 디스플레이할 수 있다.
도 11(b)를 참조하면, 디바이스(1000)는, 설치 해제된 어플리케이션(1800)을 선택하는 사용자 입력을 수신한 경우, 선택된 어플리케이션(1800)의 식별 정보에 대응하여 어플리케이션(1800)의 설치 파일의 저장 위치를 획득할 수 있다. 그리고, 디바이스(1000)는 획득한 어플리케이션(1800)의 설치 파일을 이용하여 어플리케이션(1800)을 설치할 수 있다. 이 경우, 디바이스(1000)는 어플리케이션(1800)을 설치 중임을 나타내는 사용자 인터페이스(1150)를 디스플레이 할 수 있다. 또한, 디바이스(1000)는 설치한 어플리케이션(1800)을 실행할 수 있다.
도 12 및 도 13는 본 발명의 일부 실시예에 따른 디바이스의 블록도이다.
도 12에 도시된 바와 같이, 일부 실시예에 따른 디바이스(1000)는, 저장부(1700) 및 제어부(13000)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 디바이스(1000)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 디바이스(1000)는 구현될 수 있다.
예를 들어, 도 13에 도시된 바와 같이, 본 발명의 일 실시예에 따른 디바이스(1000)는, 저장부(1700) 및 제어부(13000) 이외에 사용자 입력부(1100), 디스플레이부(1210), 출력부(1200), 통신부(1500) 및 A/V 입력부(1600)를 더 포함할 수도 있다.
이하 상기 구성요소들에 대해 차례로 살펴본다.
도 12를 참조하면, 저장부(1700)는, 제어부(1300)에 의해 처리 및 제어되는 프로그램을 저장할 수도 있고, 입/출력되는 데이터들을 저장할 수도 있다.
또한, 저장부(1700)는 백그라운드 모듈(1900)을 제어하기 위한 적어도 하나의 프로그램을 저장할 수 있다. 적어도 하나의 프로그램은 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하여 백그라운드 모듈(1900)의 실행을 중지할 시간인 제 1 백그라운드 중지 시간을 결정하는 실행 코드 및 결정된 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지하는 실행 코드를 포함할 수 있다.
백그라운드 모듈(1900)의 실행을 중지하는 실행 코드는 제 1 시점이 경과함에 따라, 백그라운드 모듈(1900)의 실행을 중지하는 단계, 백그라운드 모듈(1900)의 실행이 중지된 시점부터, 단위 시간당 제 1 백그라운드 중지 시간의 경과 여부를 판단하는 단계 및 단위 시간당 제 1 백그라운드 중지 시간이 경과한 경우, 백그라운드 모듈(1900)을 재 실행하는 단계를 포함할 수 있다.
또한, 적어도 하나의 프로그램은, 어플리케이션(1800)의 실행이 중지된 시점부터 복수의 시점 중 마지막 시점이 경과함에 따라, 어플리케이션(1800)을 모바일 단말에서 설치 해제하는 실행 코드를 더 포함할 수 있다.
어플리케이션(1800)을 설치 해제하는 실행 코드는, 어플리케이션(1800)이 설치된 저장 위치에 기초하여 어플리케이션(1800)의 설치 파일을 생성하는 단계, 생성된 어플리케이션(1800)의 설치 파일을 저장하는 단계 및 어플리케이션(1800)을 설치 해제하는 단계를 포함할 수 있다.
또한, 어플리케이션(1800)을 설치 해제하는 실행 코드는, 어플리케이션(1800)을 설치 해제할지 여부를 선택하기 위한 사용자 인터페이스를 디스플레이하는 단계 및 어플리케이션(1800)을 설치 해제할 것을 선택하는 사용자 입력에 기초하여 어플리케이션(1800)을 설치 해제하는 단계를 더 포함할 수 있다.
또한, 적어도 하나의 프로그램은, 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신하는 실행 코드, 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신함에 따라, 어플리케이션(1800)의 설치 파일의 저장 위치에 기초하여, 어플리케이션(1800)을 설치하는 실행 코드 및 어플리케이션(1800)을 실행하는 실행 코드를 더 포함할 수 있다.
저장부(1700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 디바이스(1000)는 인터넷(internet)상에서 저장부(1700)의 저장 기능을 수행하는 웹 스토리지(web storage) 또는 클라우드 서버를 운영할 수도 있다.
제어부(1300)는, 통상적으로 디바이스(1000)의 전반적인 동작을 제어한다. 예를 들어, 제어부(1300)는, 저장부(1700)에 저장된 프로그램들을 실행함으로써, 후술할 사용자 입력부(1100), 출력부(1200), 센싱부(미도시), 통신부(1500), A/V 입력부(1600) 등을 제어할 수 있다.
또한, 제어부(1300)는 저장부(1700)에 저장된 프로그램을 실행함으로써 백그라운드 모듈(1900)을 갖는 어플리케이션(1800)을 관리할 수 있다. 제어부(1300)는 저장부(1700)에 저장된 프로그램을 메모리로 적재하고, 적재된 프로그램의 실행 코드에 따라 디바이스를 동작시킴으로써 백그라운드 모듈(1900)을 갖는 어플리케이션(1800)을 관리할 수 있다.
도 13을 참조하면, 저장부(1700)는 어플리케이션(1800), 설치 관리 로직(1720), 어플리케이션 관리 로직(1730) 및 백그라운드 모듈 관리 로직(1740)을 포함할 수 있다. 또한, 어플리케이션(1800)은 백그라운드 모듈(1900)을 포함할 수 있다.
설치 관리 로직(1720), 어플리케이션 관리 로직(1730) 및 백그라운드 모듈 관리 로직(1740)은 소프트웨어로 구현될 수 있다. 설치 관리 로직(1720), 어플리케이션 관리 로직(1730) 및 백그라운드 모듈 관리 로직(1740)은 제어부(1300)에 의해 실행됨으로써 각각의 기능이 수행될 수 있다. 도시되지 않았으나, 다른 실시예에 따라, 설치 관리 로직(1720), 어플리케이션 관리 로직(1730) 및 백그라운드 모듈 관리 로직(1740)은 소프트웨어가 아닌 디바이스(1000)내의 집적 회로 로직으로도 구현될 수 있다.
이하, 설치 관리 로직(1720), 어플리케이션 관리 로직(1730) 및 백그라운드 모듈 관리 로직(1740)이 제어부(1300)에 의해 실행됨으로써 수행되는 기능에 대하여 설명한다.
어플리케이션 관리 로직(1730) 및 백그라운드 모듈 관리 로직(1740)은 어플리케이션들(1800)이 다른 어플리케이션(1800)에 대해 갖는 제어 권한 보다 높은 순위의 제어 권한을 가질 수 있다.
따라서, 백그라운드 모듈 관리 로직(1740)은 배타적으로 백그라운드 모듈(1900)을 제어할 수 있다. 예를 들어, 백그라운드 모듈 관리 로직(1740)이 백그라운드 모듈(1900)의 실행을 중지시킨 경우, 어플리케이션 관리 로직(1730)은 사용자의 입력을 수신하여 백그라운드 모듈(1900)을 다시 실행시킬 수는 있지만, 다른 어플리케이션(1800)이 임의로, 중지된 백그라운드 모듈(1900)을 실행시키는 것은 제한할 수 있다.
이를 위해, 어플리케이션 관리 로직(1730) 및 백그라운드 모듈 관리 로직(1740)은 어플리케이션(1800)들의 실행을 제어하는 프레임 워크(Framework) 레벨의 소프트웨어로 구현될 수 있다.
설치 관리 로직(1720)은 외부 서버 또는 외부 기기로부터 어플리케이션(1800)의 설치 파일을 디바이스(1000)로 다운로드 할 수 있다. 설치 관리 로직(1720)은 다운로드한 어플리케이션(1800)의 설치 파일을 저장부(1700)의 미리 정해진 논리적 저장 위치에 저장할 수 있다.
어플리케이션(1800)의 설치 파일은 디바이스(1000)에 어플리케이션(1800)이 설치되도록 배포된 파일을 의미할 수 있다. 어플리케이션(1800)의 설치 파일은 어플리케이션(1800)의 실행 파일, 어플리케이션(1800)의 실행에 필요한 리소스 파일을 포함할 수 있다. 또한, 어플리케이션(1800)의 설치 파일은 어플리케이션(1800)의 이름 또는 버전 등과 같은 어플리케이션(1800)에 관한 정보 파일, 어플리케이션(1800)의 실행 권한에 관한 정보 파일 및 인증 파일을 더 포함할 수 있다.
설치 관리 로직(1720)은 어플리케이션(1800)의 설치 파일에 기초하여 어플리케이션(1800)을 설치할 수 있다.
예를 들어, 설치 관리 로직(1720)은 어플리케이션(1800)을 설치할 논리적인 저장공간을 생성할 수 있다. 예를 들어, 설치 관리 로직(1720)은 실행 파일을 저장하는 디렉토리 및 어플리케이션(1800)을 실행하기 위해 필요한 데이터를 저장하는 디렉토리를 생성할 수 있다. 어플리케이션(1800)을 실행하기 위해 필요한 데이터는 리소스 데이터, 어플리케이션(1800)의 데이터 베이스, 어플리케이션(1800)을 실행함에 따라 생성된 데이터 등을 포함할 수 있다.
그리고, 설치 관리 로직(1720)은 어플리케이션(1800)의 설치 파일을 압축 해제하여 어플리케이션(1800)의 실행 파일 및 리소스 파일 등을 추출할 수 있다. 그리고 설치 관리 로직(1720)은 추출한 어플리케이션(1800)의 실행 파일 및 리소스 파일 등을 생성된 저장 공간에 저장할 수 있다.
또한, 설치 관리 로직(1720)은 설치된 어플리케이션(1800)에 대응하여 어플리케이션(1800)의 식별 정보를 할당할 수 있다. 또한, 설치 관리 로직(1720)은 어플리케이션(1800)의 식별 정보에 대응하여, 어플리케이션(1800)의 설치 파일이 저장된 저장 위치 및 어플리케이션(1800)이 설치된 저장위치를 파일 또는 데이터 베이스 형태로 저장할 수 있다.
어플리케이션 관리 로직(1730)은 어플리케이션(1800)의 실행을 제어할 수 있다. 또한, 어플리케이션 관리 로직(1730)은 어플리케이션(1800)의 실행에 관련된 정보를 저장할 수 있다.
예를 들어, 어플리케이션 관리 로직(1730)은 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신한 경우, 설치 관리 로직(1720)가 저장하였던 어플리케이션(1800)이 설치된 저장위치를 획득할 수 있다. 그리고, 어플리케이션 관리 로직(1730)은 어플리케이션(1800)의 실행 파일을 메모리에 적재하고, 적재된 실행파일 내의 실행 코드에 따라 디바이스를 동작시킴으로써 어플리케이션(1800)을 실행할 수 있다.
어플리케이션(1800)이 실행됨에 따라 제어부(1300)는 사용자 입력부(1100), 출력부(1200), 센싱부(미도시), 통신부(1500), A/V 입력부(1600)를 제어하여 디아이스를 동작시킬 수 있다.
또한, 어플리케이션 관리 로직(1730)은 실행 중인 어플리케이션(1800)의 식별 정보를 저장할 수 있다. 또한, 어플리케이션 관리 로직(1730)은 어플리케이션(1800)의 식별 정보에 대응하여 실행 중인 모듈의 식별 정보를 저장할 수 있다.
또한, 어플리케이션 관리 로직(1730)은 어플리케이션(1800)의 실행을 중지하는 사용자 입력을 수신한 경우 어플리케이션(1800)의 실행을 중지시킬 수 있다. 어플리케이션 관리 로직(1730)은 어플리케이션(1800)을 구성하는 모듈 전체의 실행을 중지할 수 있으며, 어플리케이션(1800)에 대응하여 미리 정해진 일부의 모듈만의 실행을 중지할 수도 있다. 어플리케이션 관리 로직(1730)은 실행이 중지된 어플리케이션(1800)의 식별 정보를 저장할 수 있다. 또한, 어플리케이션 관리 로직(1730)은 실행이 중지된 모듈의 식별 정보 및 계속 실행 중인 모듈의 식별 정보를 저장할 수 있다.
어플리케이션 관리 로직(1730)은 어플리케이션(1800)의 실행에 관한 정보에 기초하여, 사용자의 어플리케이션(1800) 사용 패턴을 결정할 수 있다. 어플리케이션(1800) 사용 패턴은 각각의 어플리케이션(1800)에 대응하여 결정될 수 있다. 어플리케이션(1800) 사용 패턴은 어플리케이션(1800)의 평균 실행 시간, 평균 실행 횟수, 실행 주기, 하루 중 어플리케이션(1800)이 주로 실행되는 시간 또는 일주일 중 어플리케이션(1800)이 주로 실행되는 요일 등을 포함할 수 있다.
백그라운드 모듈 관리 로직(1740)은 사용자의 어플리케이션(1800) 사용 패턴에 기초하여, 어플리케이션(1800)의 실행이 중지된 후 백그라운드 모듈(1900)의 실행을 제어하는 방법을 결정할 수 있다.
또한, 백그라운드 모듈 관리 로직(1740)은 백그라운드 모듈(1900)의 특성을 획득할 수 있다. 백그라운드 모듈(1900)의 특성은 전력 소모량, 네트워크 사용량 및 CPU 사용률 중 적어도 하나를 포함할 수 있다.
예를 들어, 백그라운드 모듈 관리 로직(1740)은 백그라운드 모듈(1900)이 실행됨에 따라, 백그라운드 모듈(1900)이 외부 디바이스와 송수신하는 데이터양 및 CPU 사용량을 모니터링 할 수 있다. 그리고, 백그라운드 모듈 관리 로직(1740)은 획득된 백그라운드 모듈(1900)의 네트워크 사용량 또는 CPU 사용률 등에 기초하여 백그라운드 모듈(1900)의 전력 사용량을 추정 할 수 있다.
백그라운드 모듈 관리 로직(1740)은 백그라운드 모듈(1900)의 전력 사용량, 리소스 사용량 및 네트워크 사용량 중 적어도 하나에 기초하여 백그라운드 모듈(1900)에 대응하는 제 1 백그라운드 중지 시간을 결정할 수 있다. 예를 들어, 백그라운드 모듈(1900)의 전력 소모량이 많을수록, 백그라운드 모듈 관리 로직(1740)은 어플리케이션(1800)의 실행이 중지된 상태에서 백그라운드 모듈(1900)의 실행 시간이 보다 줄어들도록 결정할 수 있다.
백그라운드 모듈 관리 로직(1740)은 어플리케이션(1800)의 실행이 중지된 시점부터 시간이 경과함에 따라, 백그라운드 모듈(1900)의 실행을 제어할 수 있다.
백그라운드 모듈 관리 로직(1740)은 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하여 백그라운드 모듈(1900)의 실행을 중지할 시간인 제 1 백그라운드 중지 시간을 결정할 수 있다.
백그라운드 모듈 관리 로직(1740)은 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간의 길이에 비례하여 제 1 백그라운드 중지 시간을 결정할 수 있다.
백그라운드 모듈 관리 로직(1740)은 제 1 시점이 경과하기 전에 제 1 백그라운드 중지 시간을 미리 결정할 수 있다. 이 경우, 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점이 경과 했을 때, 백그라운드 모듈 관리 로직(1740)은 미리 결정된 제 1 백그라운드 중지 시간을 획득할 수 있다.
백그라운드 모듈 관리 로직(1740)은 결정된 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점이 경과함에 따라, 백그라운드 모듈 관리 로직(1740)은 결정된 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
백그라운드 모듈 관리 로직(1740)은 제 1 시점부터 제 2 시점까지의 시간에 걸쳐, 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다. 백그라운드 모듈 관리 로직(1740)은 백그라운드 중지 시간 동안 연속하여 백그라운드 모듈(1900)을 중지할 수 있다. 또한, 백그라운드 모듈 관리 로직(1740)은 백그라운드 중지 시간 동안 주기적으로 백그라운드 모듈(1900)을 중지할 수도 있다.
예를 들어, 백그라운드 모듈 관리 로직(1740)은 어플리케이션(1800)의 실행이 중지되었음을 판단한 경우, 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간이 지났을 때 시간 이벤트가 발생되도록 설정할 수 있다.
어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간이 지남에 따라, 디바이스(1000)는 제 1 시점이 경과하였음을 알리는 시간 이벤트를 발생시킬 수 있다. 시간 이벤트가 발생한 것으로 판단한 경우, 백그라운드 모듈 관리 로직(1740)은 제 1 시점이 경과하였음을 판단할 수 있다.
백그라운드 모듈 관리 로직(1740)은 각각의 어플리케이션(1800)에 대응하여 어플리케이션(1800)을 구성하는 백그라운드 모듈(1900)의 리스트를 가지고 있을 수 있다. 또한, 백그라운드 모듈 관리 로직(1740)은 어플리케이션 관리 로직(1730)이 저장한 정보에 기초하여, 어플리케이션(1800)이 실행 중인지 여부를 판단할 수 있을 뿐만 아니라, 어플리케이션(1800)의 백그라운드 모듈(1900)이 실행 중인지 여부 또한 판단할 수 있다.
이에 따라, 백그라운드 모듈 관리 로직(1740)은 제 1 시점이 경과하였음을 판단한 경우, 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
백그라운드 모듈(1900)이 중지됨에 따라, 백그라운드 모듈 관리 로직(1740)은 어플리케이션(1800)의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하는 단위 시간당 제 1 백그라운드 중지 시간을 획득할 수 있다.
또한, 백그라운드 모듈 관리 로직(1740)은 백그라운드 모듈(1900)이 중지되었음을 판단한 경우, 백그라운드 모듈(1900)이 중지된 시점부터 단위 시간당 제 1 백그라운드 중지 시간이 지났을 때 시간 이벤트가 발생되도록 설정할 수 있다. 시간 이벤트가 발생한 경우, 백그라운드 모듈 관리 로직(1740)은 단위 시간당 제 1 백그라운드 중지 시간이 경과하였음을 판단할 수 있다.
단위 시간당 제 1 백그라운드 중지 시간이 경과함에 따라, 백그라운드 모듈 관리 로직(1740)은 중지했던 백그라운드 모듈(1900)을 재 실행할 수 있다.
백그라운드 모듈 관리 로직(1740)은 제 1 시점부터 단위 시간이 경과된 것으로 판단된 경우, 백그라운드 모듈(1900)을 다시 중지할 수 있다.
이에 따라, 백그라운드 모듈 관리 로직(1740)은 제 1 시점부터 제 2 시점까지 단위 시간 마다 단위 시간당 제 1 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
백그라운드 모듈 관리 로직(1740)은 제 2 시점부터 제 3 시점까지, 단위 시간 마다, 어플리케이션(1800)의 실행이 중지된 시점부터 제 2 시점까지 시간에 대응하는 단위 시간당 제 2 백그라운드 중지 시간 동안 백그라운드 모듈(1900)의 실행을 중지할 수 있다.
설치 관리 로직(1720)은 어플리케이션(1800)의 실행이 중지된 시점부터 어플리케이션(1800)의 삭제 예정 시점이 경과된 경우, 어플리케이션(1800)을 설치 해제 할 수 있다.
설치 관리 로직(1720)은 어플리케이션(1800) 사용 패턴 및 백그라운드 모듈(1900)의 특성 중 적어도 하나에 기초하여 어플리케이션(1800)의 삭제 예정 시점을 결정할 수 있다.
설치 관리 로직(1720)은 어플리케이션(1800)의 삭제 예정 시점이 경과한 것으로 판단한 경우, 어플리케이션(1800)의 설치 파일이 디바이스에 저장되어 있는지 판단할 수 있다.
어플리케이션 관리 로직(1730)에 의해 어플리케이션(1800)의 식별 정보에 대응하여 어플리케이션(1800)의 설치 파일의 존재 여부가 저장부(1700)에 저장되어 있을 수 있다. 또한, 설치 관리 로직(1720)은 어플리케이션(1800)의 설치 파일이 일괄적으로 저장되는 저장 위치를 검색하여 어플리케이션(1800)의 설치 파일의 저장 여부를 판단할 수도 있다.
어플리케이션(1800)의 설치 파일이 디바이스에 저장되어 있지 않은 경우, 설치 관리 로직(1720)은 어플리케이션(1800)이 설치된 저장 위치에 기초하여 어플리케이션(1800)의 설치 파일을 생성할 수 있다.
예를 들어, 설치 관리 로직(1720)은 어플리케이션(1800)이 설치된 저장 위치를 획득할 수 있다. 설치 관리 로직(1720)은 어플리케이션(1800)을 설치하였을 때, 어플리케이션(1800)을 설치한 저장 위치를, 어플리케이션(1800)의 식별 정보에 대응하여, 파일 또는 데이터 베이스 형태로 저장할 수 있다. 이에 따라, 설치 관리 로직(1720)은 어플리케이션(1800)의 식별 정보에 대응하여 어플리케이션(1800)의 설치 파일에 필요한 파일들이 저장된 위치를 획득할 수 있다.
설치 관리 로직(1720)은 획득된 저장 위치로부터 어플리케이션(1800)의 실행 파일, 어플리케이션(1800)의 리소스 파일, 어플리케이션(1800)에 관한 정보 파일, 어플리케이션(1800)의 실행 권한에 관한 정보 파일 및 인증 파일 등을 추출할 수 있다. 그리고, 설치 관리 로직(1720)은 추출된 파일들을 패키징하여 어플리케이션(1800)의 설치 파일을 재 생성할 수 있다. 예를 들어, 설치 관리 로직(1720)은 추출된 파일들을 미리 정해진 방법으로 하나의 파일로 압축하여 설치 파일을 재생성할 수 있다.
이 경우, 설치 관리 로직(1720)은 원본과 동일한 파일로 구성되도록 어플리케이션(1800) 설치 파일을 재생성할 수 있다. 또한, 설치 관리 로직(1720)은 배포된 어플리케이션(1800)의 설치 파일을 구성하는 원본 파일 이외에 어플리케이션(1800)의 실행을 통해 생성된 데이터를 포함하여 어플리케이션(1800) 설치 파일을 재생성할 수 있다. 어플리케이션(1800)의 실행을 통해 생성된 데이터는 사용자의 어플리케이션(1800) 사용에 관한 데이터, 어플리케이션(1800)을 실행함에 따라 생성된 파일 등을 포함할 수 있다.
또한, 설치 관리 로직(1720)은 재 생성한 어플리케이션(1800) 설치 파일을 미리 정해진 어플리케이션(1800) 설치 파일 저장 위치에 저장할 수 있다. 또한, 디바이스(1000)는 어플리케이션(1800)의 식별 정보에 대응하여, 어플리케이션(1800) 설치 파일이 저장된 저장 위치를 저장할 수 있다.
또한, 설치 관리 로직(1720)은 디바이스(1000)에 설치된 어플리케이션(1800)을 설치 해제할 수 있다. 예를 들어, 설치 관리 로직(1720)은 어플리케이션(1800)의 설치 파일을 제외한 어플리케이션(1800) 관련 파일 및 관련 데이터들을 삭제함으로써 어플리케이션(1800)을 설치 해제할 수 있다.
또한, 설치 관리 로직(1720)은 디바이스(1000)내에 설치된 어플리케이션(1800)들에 관한 정보에서 설치 해제된 어플리케이션(1800)에 관한 정보를 삭제할 수 있다. 또한, 설치 관리 로직(1720)은 일정 기간 동안 사용되지 않아 설치 해제한 어플리케이션(1800)의 식별 정보를 저장할 수 있다.
또한, 설치 관리 로직(1720)은 어플리케이션(1800)을 디바이스(1000) 내에서 설치 해제하기 전에, 어플리케이션(1800)을 설치 해제할지 여부를 선택하기 위한 사용자 인터페이스를 디스플레이부(1210)에 디스플레이 할 수 있다. 어플리케이션(1800)을 설치 해제할 것을 선택하는 사용자 입력에 기초하여, 설치 관리 로직(1720)은 어플리케이션(1800)을 설치 해제할 수 있다.
또한, 설치 관리 로직(1720)은 어플리케이션(1800)이 설치 해제된 후, 어플리케이션(1800)의 실행을 명령하는 사용자 입력을 수신함에 따라, 어플리케이션(1800)을 다시 설치할 수 있다.
어플리케이션 관리 로직(1730)은 어플리케이션(1800)이 설치 해제된 후에도 어플리케이션(1800)을 실행하기 위한 사용자 입력을 수신할 수 있다.
예를 들어, 어플리케이션 관리 로직(1730)은 설치 파일은 저장되어 있으나, 일정 기간 동안 사용되지 않아 설치 해제한 어플리케이션(1800)의 식별 정보에 기초하여, 어플리케이션(1800)을 다시 실행시킬 수 있는 어플리케이션(1800)에 관한 목록을 디스플레이 할 수 있다.
설치 해제된 어플리케이션(1800)을 선택하는 사용자 입력을 수신한 경우, 어플리케이션 관리 로직(1730) 선택된 어플리케이션(1800)의 식별 정보에 대응하여 어플리케이션(1800)의 설치 파일의 저장 위치를 획득할 수 있다. 그리고, 어플리케이션 관리 로직(1730)은 설치 관리 로직(1720)로 하여금 획득한 저장 위치에 기초하여 어플리케이션(1800)을 재설치 하도록 할 수 있다.
어플리케이션 관리 로직(1730)은 어플리케이션(1800)이 재 설치된 저장위치를 획득할 수 있다. 그리고, 어플리케이션 관리 로직(1730)은 어플리케이션(1800)의 실행 파일을 메모리에 적재하고, 적재된 실행파일 내의 실행코드에 따라 디바이스를 동작시킴으로써 어플리케이션(1800)을 실행할 수 있다.
사용자 입력부(1100)는, 사용자가 디바이스(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다. 사용자 입력부(1100)는, 제어부(1300)에 의해 제어됨으로써, 사용자 입력을 수신할 수 있다.
출력부(1200)는, 제어부(1300)에 의해 제어됨으로써, 오디오 신호 또는 비디오 신호 또는 진동 신호의 출력을 위한 것으로, 이에는 디스플레이부(1210)와 음향 출력부(1220), 진동 모터(1230) 등이 포함될 수 있다.
디스플레이부(1210)는, 제어부(1300)에 의해 제어됨으로써, 디바이스(1000)에서 처리되는 정보를 디스플레이한다.
한편, 디스플레이부(1210)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(1210)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(1210)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 디바이스(1000)의 구현 형태에 따라 디바이스(1000)는 디스플레이부(1210)를 2개 이상 포함할 수도 있다.
음향 출력부(1220)는 통신부(1500)로부터 수신되거나 저장부(1700)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(1220)는 디바이스(1000)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력할 수 있다. 이러한 음향 출력부(1220)에는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있다.
센싱부(미도시)는, 디바이스(1000)의 상태 또는 디바이스(1000) 주변의 상태를 감지하고, 감지된 정보를 제어부(1300)로 전달할 수 있다. 센싱부(미도시)는, 지자기 센서(Magnetic sensor), 가속도 센서(Acceleration sensor), 온/습도 센서, 적외선 센서, 자이로스코프 센서, 위치 센서(예컨대, GPS), 기압 센서, 근접 센서, 및 RGB 센서(illuminance sensor) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
통신부(1500)는, 디바이스(1000)와 외부 디바이스(미도시) 또는 디바이스(1000)와 서버(미도시) 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(1500)는, 근거리 통신부(1510), 이동 통신부(1520), 방송 수신부(1530)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(1510)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(1520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(1530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 디바이스(1000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.
A/V(Audio/Video) 입력부(1600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1610)와 마이크로폰(1620) 등이 포함될 수 있다. 카메라(1610)은 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 제어부(1300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
카메라(1610)에서 처리된 화상 프레임은 저장부(1700)에 저장되거나 통신부(1500)를 통하여 외부로 전송될 수 있다. 카메라(1610)는 단말기의 구성 태양에 따라 2개 이상이 구비될 수도 있다.
마이크로폰(1620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(1620)은 외부 디바이스 또는 화자로부터 음향 신호를 수신할 수 있다. 마이크로폰(1620)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다.

Claims (21)

  1. 모바일 단말이 백그라운드 모듈을 갖는 어플리케이션을 관리하는 방법에 있어서,
    상기 어플리케이션의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하여 상기 백그라운드 모듈의 실행을 중지할 시간인 제 1 백그라운드 중지 시간을 결정하는 단계; 및
    상기 결정된 제 1 백그라운드 중지 시간 동안 상기 백그라운드 모듈의 실행을 중지하는 단계를 포함하는, 어플리케이션 관리 방법.
  2. 제 1 항에 있어서,
    상기 제 1 백그라운드 중지 시간은,
    상기 어플리케이션의 실행이 중지된 시점부터 상기 제 1 시점까지의 시간의 길이에 비례하여 결정되는 것인, 어플리케이션 관리 방법.
  3. 제 1 항에 있어서,
    상기 제 1 백그라운드 중지 시간은,
    미리 정해진 시간 주기 동안 상기 백그라운드 모듈의 실행을 중지할 시간인 단위 시간당 제 1 백그라운드 중지 시간을 포함하는, 어플리케이션 관리 방법.
  4. 제 3 항에 있어서,
    상기 백그라운드 모듈의 실행을 중지하는 단계는,
    상기 제 1 시점이 경과함에 따라, 상기 백그라운드 모듈의 실행을 중지하는 단계;
    상기 백그라운드 모듈의 실행이 중지된 시점부터, 상기 단위 시간당 제 1 백그라운드 중지 시간의 경과 여부를 판단하는 단계; 및
    상기 단위 시간당 제 1 백그라운드 중지 시간이 경과한 경우, 상기 백그라운드 모듈을 재 실행하는 단계를 포함하는 어플리케이션 관리 방법.
  5. 제 1 항에 있어서,
    상기 제 1 백그라운드 중지 시간은,
    상기 백그라운드 모듈의 전력 사용량, 리소스 사용량 및 네트워크 사용량 중 적어도 하나에 기초하여 결정되는 것인, 어플리케이션 관리 방법.
  6. 제 1 항에 있어서,
    상기 제 1 시점은 미리 결정된 복수의 시점 중 하나이고,
    상기 복수의 시점은 상기 어플리케이션의 실행 빈도, 실행 주기 및 실행 시간 중 적어도 하나에 기초하여 결정된 것인 어플리케이션 관리 방법.
  7. 제 6 항에 있어서,
    상기 어플리케이션 관리 방법은,
    상기 어플리케이션의 실행이 중지된 시점부터 상기 복수의 시점 중 마지막 시점이 경과함에 따라, 상기 어플리케이션을 상기 모바일 단말에서 설치 해제하는 단계를 더 포함하는 어플리케이션 관리 방법.
  8. 제 7 항에 있어서,
    상기 어플리케이션을 설치 해제하는 단계는,
    상기 어플리케이션이 설치된 저장 위치에 기초하여 상기 어플리케이션의 설치 파일을 생성하는 단계;
    상기 생성된 어플리케이션의 설치 파일을 저장하는 단계; 및
    상기 어플리케이션을 설치 해제하는 단계를 포함하는 어플리케이션 관리 방법.
  9. 제 7 항에 있어서,
    상기 어플리케이션을 설치 해제하는 단계는,
    상기 어플리케이션을 설치 해제할지 여부를 선택하기 위한 사용자 인터페이스를 디스플레이하는 단계; 및
    상기 어플리케이션을 설치 해제할 것을 선택하는 사용자 입력에 기초하여 상기 어플리케이션을 설치 해제하는 단계를 더 포함하는 어플리케이션 관리 방법.
  10. 제 8 항에 있어서,
    상기 어플리케이션 관리 방법은,
    상기 어플리케이션의 실행을 명령하는 사용자 입력을 수신하는 단계;
    상기 어플리케이션의 실행을 명령하는 사용자 입력을 수신함에 따라, 상기 어플리케이션의 설치 파일의 저장 위치에 기초하여, 상기 어플리케이션을 설치하는 단계; 및
    상기 어플리케이션을 실행하는 단계를 더 포함하는 어플리케이션 관리 방법.
  11. 적어도 하나의 프로그램이 저장되는 저장부(Storage); 및
    상기 적어도 하나의 프로그램을 실행함으로써, 백그라운드 모듈을 갖는 어플리케이션을 관리하는 프로세서(Processer)를 포함하고,
    상기 적어도 하나의 프로그램은,
    상기 어플리케이션의 실행이 중지된 시점부터 제 1 시점까지의 시간에 대응하여 상기 백그라운드 모듈의 실행을 중지할 시간인 제 1 백그라운드 중지 시간을 결정하는 단계; 및
    상기 결정된 제 1 백그라운드 중지 시간 동안 상기 백그라운드 모듈의 실행을 중지하는 단계를 포함하는, 모바일 단말.
  12. 제 11 항에 있어서,
    상기 제 1 백그라운드 중지 시간은,
    상기 어플리케이션의 실행이 중지된 시점부터 상기 제 1 시점까지의 시간의 길이에 비례하여 결정되는 것인, 모바일 단말.
  13. 제 11 항에 있어서,
    상기 제 1 백그라운드 중지 시간은,
    미리 정해진 시간 주기 동안 상기 백그라운드 모듈의 실행을 중지할 시간인 단위 시간당 제 1 백그라운드 중지 시간을 포함하는, 모바일 단말.
  14. 제 13 항에 있어서,
    상기 백그라운드 모듈의 실행을 중지하는 단계는,
    상기 제 1 시점이 경과함에 따라, 상기 백그라운드 모듈의 실행을 중지하는 단계;
    상기 백그라운드 모듈의 실행이 중지된 시점부터, 상기 단위 시간당 제 1 백그라운드 중지 시간의 경과 여부를 판단하는 단계; 및
    상기 단위 시간당 제 1 백그라운드 중지 시간이 경과한 경우, 상기 백그라운드 모듈을 재 실행하는 단계를 포함하는 모바일 단말.
  15. 제 11 항에 있어서,
    상기 제 1 백그라운드 중지 시간은,
    상기 백그라운드 모듈의 전력 사용량, 리소스 사용량 및 네트워크 사용량 중 적어도 하나에 기초하여 결정되는 것인, 모바일 단말.
  16. 제 11 항에 있어서,
    상기 제 1 시점은 미리 결정된 복수의 시점 중 하나이고,
    상기 복수의 시점은 상기 어플리케이션의 실행 빈도, 실행 주기 및 실행 시간 중 적어도 하나에 기초하여 결정된 것인, 모바일 단말.
  17. 제 16 항에 있어서,
    상기 적어도 하나의 프로그램은,
    상기 어플리케이션의 실행이 중지된 시점부터 상기 복수의 시점 중 마지막 시점이 경과함에 따라, 상기 어플리케이션을 상기 모바일 단말에서 설치 해제하는 단계를 더 포함하는, 모바일 단말.
  18. 제 17 항에 있어서,
    상기 어플리케이션을 설치 해제하는 단계는,
    상기 어플리케이션이 설치된 저장 위치에 기초하여 상기 어플리케이션의 설치 파일을 생성하는 단계;
    상기 생성된 어플리케이션의 설치 파일을 저장하는 단계; 및
    상기 어플리케이션을 설치 해제하는 단계를 포함하는, 모바일 단말.
  19. 제 17 항에 있어서,
    상기 어플리케이션을 설치 해제하는 단계는,
    상기 어플리케이션을 설치 해제할지 여부를 선택하기 위한 사용자 인터페이스를 디스플레이하는 단계; 및
    상기 어플리케이션을 설치 해제할 것을 선택하는 사용자 입력에 기초하여 상기 어플리케이션을 설치 해제하는 단계를 더 포함하는 모바일 단말.
  20. 제 18 항에 있어서,
    상기 적어도 하나의 프로그램은,
    상기 어플리케이션의 실행을 명령하는 사용자 입력을 수신하는 단계;
    상기 어플리케이션의 실행을 명령하는 사용자 입력을 수신함에 따라, 상기 어플리케이션의 설치 파일의 저장 위치에 기초하여, 상기 어플리케이션을 설치하는 단계; 및
    상기 어플리케이션을 실행하는 단계를 더 포함하는 모바일 단말.
  21. 제 1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020140031157A 2014-03-17 2014-03-17 어플리케이션 관리 방법 및 그 장치 KR102205902B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140031157A KR102205902B1 (ko) 2014-03-17 2014-03-17 어플리케이션 관리 방법 및 그 장치
US14/620,558 US9841963B2 (en) 2014-03-17 2015-02-12 Method and apparatus for managing application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140031157A KR102205902B1 (ko) 2014-03-17 2014-03-17 어플리케이션 관리 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20150108224A true KR20150108224A (ko) 2015-09-25
KR102205902B1 KR102205902B1 (ko) 2021-01-21

Family

ID=54068976

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140031157A KR102205902B1 (ko) 2014-03-17 2014-03-17 어플리케이션 관리 방법 및 그 장치

Country Status (2)

Country Link
US (1) US9841963B2 (ko)
KR (1) KR102205902B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573652A (zh) * 2015-12-17 2016-05-11 广州视睿电子科技有限公司 一种远程同步的数据处理方法及装置
CN107395744A (zh) * 2017-08-18 2017-11-24 广东欧珀移动通信有限公司 数据同步方法、移动终端以及存储介质
CN109462695B (zh) * 2018-11-16 2021-12-17 努比亚技术有限公司 终端录屏方法、装置、移动终端及可读存储介质
CN109725702A (zh) * 2018-12-28 2019-05-07 三星电子(中国)研发中心 一种基于ai预测的智能终端节能方法和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120001551A (ko) * 2010-06-29 2012-01-04 삼성에스디에스 주식회사 백그라운드에서 사용자용 가상머신의 상태를 설정할 수 있는 단말장치와 그 방법
US20120159209A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Idle Time Service
WO2013033262A1 (en) * 2011-08-29 2013-03-07 Qualcomm Incorporated Systems and methods for monitoring of background application events
KR20140013495A (ko) * 2012-07-24 2014-02-05 주식회사 케이티 이동통신 시스템에서 백그라운드 데이터 전송 제어 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101102342B1 (ko) * 2006-10-02 2012-01-03 엘지전자 주식회사 이동통신단말기의 애플리케이션 종료시간 설정방법,이동통신단말기의 애플리케이션 종료방법, 및 이를수행하기 위한 이동통신단말기
CN101625731A (zh) * 2008-07-10 2010-01-13 鸿富锦精密工业(深圳)有限公司 程序仿生老化系统及其老化方法
KR20120114125A (ko) 2011-04-06 2012-10-16 엘지전자 주식회사 어플리케이션 관리 기능이 있는 이동 단말 장치
WO2014119867A1 (en) * 2013-01-31 2014-08-07 Samsung Electronics Co., Ltd. Method of and device for managing applications
CN104021031A (zh) * 2013-02-28 2014-09-03 富泰华工业(深圳)有限公司 应用程序管理系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120001551A (ko) * 2010-06-29 2012-01-04 삼성에스디에스 주식회사 백그라운드에서 사용자용 가상머신의 상태를 설정할 수 있는 단말장치와 그 방법
US20120159209A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Idle Time Service
WO2013033262A1 (en) * 2011-08-29 2013-03-07 Qualcomm Incorporated Systems and methods for monitoring of background application events
KR20140013495A (ko) * 2012-07-24 2014-02-05 주식회사 케이티 이동통신 시스템에서 백그라운드 데이터 전송 제어 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Joshua Johnson. Tame Those Background Processes with App Tamer. 2011.09.10. *

Also Published As

Publication number Publication date
KR102205902B1 (ko) 2021-01-21
US9841963B2 (en) 2017-12-12
US20150261548A1 (en) 2015-09-17

Similar Documents

Publication Publication Date Title
KR102057269B1 (ko) 애플리케이션 컨테이너를 사용한 코드 및 종속 데이터의 전달 관리
KR102106744B1 (ko) 피어 이벤트 데이터에 기초한 모바일 디바이스의 동적 조정
US9451100B2 (en) Method for transmitting notification information and electronic device thereof
US20180063670A1 (en) Background management of mobile applications
US9733695B2 (en) Battery life management in portable terminal
US20150333971A1 (en) Method and device for managing processes of application program
TW201504805A (zh) 基於使用者活動之行動裝置之動態調整
US9277530B2 (en) Delivery of push notifications to an inactive computing device
CN102681896A (zh) 移动设备上的休眠后台应用
CN108111520B (zh) 媒体播放资源处理方法、装置及终端
US10097019B2 (en) Alternate alarm notifications based on battery condition
CN103412793A (zh) 一种优化系统资源的方法、装置及系统
KR102205902B1 (ko) 어플리케이션 관리 방법 및 그 장치
KR102492996B1 (ko) 외부 입력을 이용하여 백그라운드 태스크를 처리하는 전자 장치 및 그 저장 매체
CA2710416C (en) Method and device for application archiving
CN110865837B (zh) 一种进行系统升级的方法和终端
KR20200015000A (ko) 메모리 누수 검출 방법 및 그 전자 장치
CN113110939A (zh) 运行数据的处理方法、装置、计算机设备及存储介质
CN113535207A (zh) 车辆及其车载软件的更新方法、移动终端
CN113542545A (zh) 电子设备及录像方法
CN111935353A (zh) 移动终端及其短信显示方法
CN111158735A (zh) 一种热补丁文件处理方法及通信终端
CN116700601A (zh) 内存优化方法、设备及存储介质
KR20160033579A (ko) 애플리케이션을 통하여 서비스를 제공하는 시스템 및 방법
KR102407275B1 (ko) 이어셋 제어 방법 및 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right