KR20160042398A - 백그라운드 애플리케이션을 제어하기 위한 방법 및 장치 - Google Patents

백그라운드 애플리케이션을 제어하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20160042398A
KR20160042398A KR1020157009919A KR20157009919A KR20160042398A KR 20160042398 A KR20160042398 A KR 20160042398A KR 1020157009919 A KR1020157009919 A KR 1020157009919A KR 20157009919 A KR20157009919 A KR 20157009919A KR 20160042398 A KR20160042398 A KR 20160042398A
Authority
KR
South Korea
Prior art keywords
application
identifier
background
traversed identifier
preset
Prior art date
Application number
KR1020157009919A
Other languages
English (en)
Other versions
KR101706359B1 (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 시아오미 아이엔씨.
Publication of KR20160042398A publication Critical patent/KR20160042398A/ko
Application granted granted Critical
Publication of KR101706359B1 publication Critical patent/KR101706359B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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/46Multiprogramming arrangements
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computing Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Telephone Function (AREA)

Abstract

본 발명은 백그라운드 애플리케이션을 제어하기 위한 방법 및 장치 그리고 단말장치에 관련된 것이다. 상기 방법은, 운영 시스템 내에서 실행 중인 애플리케이션들에 따라서 애플리케이션을 생성하는 단계 - 이때 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 식별자들을 포함함 -; 상기 애플리케이션 리스트 내에서 상기 식별자들을 트래버스하는 단계; 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하는 단계; 만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부 및 상기 애플리케이션 리스트 내에 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 미리 설정된 역치를 초과하는지 여부를 판단하는 단계 - 이때 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함함 -; 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 상기 선택된 식별자에 대응되는 상기 백그라운드 애플리케이션을 종료하는 단계; 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하는 단계;를 포함한다. 이러한 기술적 해결책에 따라서 상기 백그라운드 애플리케이션은 보다 더 잘 제어될 수 있다.

Description

백그라운드 애플리케이션을 제어하기 위한 방법 및 장치, 그리고 단말장치{METHOD AND DEVICE FOR CONTROLLING BACKGROUND APPLICATION AND TERMINAL DEVICE}
본 발명은 단말장치에 관련된 것으로, 보다 구체적으로, 백그라운드 애플리케이션을 제어하기 위한 방법, 백그라운드 애플리케이션을 제어하기 위한 장치 및 단말장치에 관한 것이다.
단말장치가 지능화되는 방향으로 발전됨에 따라, 보다 더 많은 애플리케이션들이 개발되고 있으며, 사용자는 상기 단말장치의 지능성(intelligence)에 기인하여 보다 더 편리함을 즐길 수 있게 되었다. 사용자가 상기 단말장치를 사용할 때, 그 또는 그녀는 다수의 자주 사용하는 애플리케이션을 백그라운드에서 실행되고 있는 상태로 유지하고자 할 수 있다. 자주 사용하는 애플리케이션들은 트위터(twitter), 위챗(WeChat), 큐큐(QQ) 등을 포함한다. 단말장치에서 백그라운드에서 실행되고 있는 상태의 애플리케이션은 백그라운드 애플리케이션이라고 부를 수 있다. 만약 백그라운드 애플리케이션의 수가 적다면, 단말장치에서 사용되고 있는 메모리 리소스가 작다. 만약 백그라운드 애플리케이션의 수가 많다면, 단말장치에서 사용되고 있는 메모리 리소스가 크며, 이로써 상기 단말장치의 처리 속도에 영향을 미치게 된다. 따라서, 단말장치에서 백그라운드 어플리케이션을 어떻게 제어할지 아는 것은 중요한 일이다.
관련 분야에서, 백그라운드 애플리케이션을 제어하는 방법은 다음과 같다. 최대역치(maximum threshold)가 설정되고, 백그라운드 애플리케이션들의 수가 상기 최대역치를 초과하는지 여부가 모니터된다. 만약 백그라운드 애플리케이션의 수가 최대역치와 같거나 더 적은 경우, 백그라운드 애플리케이션들의 각각은 백그라운드에서 실행되고 있는 상태에 있는 것이 허용된다. 만약 백그라운드 애플리케이션의 수가 최대역치를 초과하는 경우, 메모리를 가장 많이 점유하고 있는 백그라운드 애플리케이션이 종료될 수 있다. 예를 들어, 최대역치가 25인 것을 가정할 때, 만약 백그라운드 애플리케이션의 수가 24인 경우, 각각의 백그라운드 애플리케이션들이 백그라운드엥서 실행되고 있는 상태에 있는 것이 허영된다. 만약 백그라운드 애플리케이션의 수가 26인 경우, 메모리를 가장 많이 점유하고 있는 백그라운드 애플리케이션은 종료될 수 있고, 이에 따라 메모리를 릴리즈(release)할 수 있다.
전술한 방법에 있어서, 백그라운드 애플리케이션의 수가 상기 최대 역치를 초과하는지 여부를 판단함으로써 백그라운드 애플리케이션이 종료되어야 하는지 여부가 결정된다. 만약 백그라운드 애플리케이션들의 수가 상기 최대 역치를 초과하는 경우, 메모리를 가장 많이 점유하고 있는 백그라운드 애플리케이션은 종료될 수 있다. 그러나 사용자는 메모리를 가장 많이 점유하고 있는 백그라운드 애플리케이션을 항상 백그라운드에서 실행되고 있는 상태로 유지하기를 원할 수 있으며, 상기 백그라운드 애플리케이션의 종료는 사용자의 경험에 영향을 미칠 수 있게 된다. 이로써, 전술한 방법에 의하면, 상기 단말장치에서 상기 백그라운드 애플리케이션이 잘 제어될 수 없으며, 이는 사용자의 경험에 영향을 미치게 된다.
본 발명은 백그라운드 애플리케이션을 제어하는 방법, 백그라운드 애플리케이션을 제어하기 위한 장치 및 당해 기술분야의 문제점들을 해결하기 위한 단말장치들을 제공한다.
본 발명의 실시예들의 첫번째 양상에 따르면, 백그라운드 애플리케이션을 제어하기 위한 방법이 제공되며, 상기 방법은, 운영 시스템(operating system)에서 실행 중인 애플리케이션들에 따라 애플리케이션 리스트(application list)를 생성하는 단계 - 이때 상기 애플리케이션 리스트들은 적어도 상기 운영 시스템에서 상기 실행 중인 애플리케이션들의 식별자(identification)를 포함함 -; 상기 애플리케이션 리스트 내의 상기 식별자들을 트래버스(traverse)하고, 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지를 여부를 판단하는 단계; 만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트(white list)가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부 및 상기 애플리케이션 리스트 내에 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 미리 설정된 역치(predetermined threshold)을 초과하는지 여부를 판단하는 단계 - 이때 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함함 -; 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 상기 선택된 식별자에 대응되는 상기 백그라운드 애플리케이션을 종료하는 단계; 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하는 단계;를 포함한다.
상기 첫번째 양상에 결합될 수 있는 첫번째 가능한 구현예에 있어서, 상기 운영 시스템에서 실행 중인 애플리케이션들에 따라 상기 애플리케이션 리스트를 생성하는 단계는, 상기 운영 시스템에서 상기 실행 중인 애플리케이션들의 실행 상태 우선순위들(running state priorities)을 계산하는 단계 - 이때 상기 실행 상태 우선순위는 포어그라운드(foreground), 가시상태(visible), 인지가능상태(appreciable), 백그라운드(background)와 같이 높은 순위로부터 낮은 순위로 랭크됨 -; 실행 상태 우선순위에 따라서 높은 순위부터 낮은 순위로 상기 실행 애플리케이션들의 식별자들을 시퀀싱하여 상기 애플리케이션 리스트를 획득하는 단계;를 포함한다.
상기 첫번째 양상의 첫번째 가능한 구현예에 결합될 수 있는 상기 첫번째 양상의 두번째 가능한 구현예에 있어서, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하는 단계는, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위를 획득하는 단계; 만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 상기 실행 상태 우선순위가 백그라운드인 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 백그라운드 애플리케이션인 것으로 판단하는 단계;를 포함한다.
상기 첫번째 양상의 상기 첫번째 가능한 구현예 또는 두번째 가능한 구현예에 결합될 수 있는 상기 첫번째 양상의 세번째 가능한 구현예에 있어서, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하는 단계는, 상기 미리 설정된 화이트 리스트 내에 포함되어 있지 않고 상기 애플리케이션 리스트 내의 상기 현재 트래버스된 식별자에 선행하는 하나 이상의 식별자들을 검색하는 단계; 만약 상기 미리 설정된 화이트 리스트에 포함되지 않으며 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 식별자가 적어도 하나 검색된 경우, 상기 하나 이상의 식별자들로부터 하나를 선택하거나 또는 상기 하나 이상의 식별자들로부터 상기 현재 트래버스된 식별자에 가장 가까운 식별자를 선택하는 단계; 만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않으며 상기 애플리케이션 리스트 내에서 상기 현재 트래버스된 식별자에 선행하는 식별자가 검색되지 않는 경우, 상기 현재 트래버스된 식별자를 선택하는 단계;를 포함한다.
상기 첫번째 양상에 결합될 수 있는 상기 첫번째 양상의 네번째 가능한 구현예에 있어서, 상기 방법은, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하는 단계; 상기 비활성 시간이 제1 미리 설정된 시간을 초과하는지 여부를 판단하는 단계; 만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하는 단계;를 더 포함한다.
상기 첫번째 양상의 네번째 가능한 구현예에 결합될 수 있는 상기 첫번째 양상의 다섯번째 가능한 구현에에 있어서, 상기 방법은, 만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하지 않는 경우, 상기 비활성 시간이 제2 미리 설정된 시간을 초과하는지 여부를 검출하는 단계; 만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리를 릴리즈하는 단계 - 이때 상기 제2 미리 설정된 시간은 상기 제2 미리 설정된 시간 보다 짧음 -;를 더 포함한다.
상기 첫번째 양상에 결합될 수 있는 상기 첫번째 양상의 여섯번째 가능한 구현예에 있어서, 상기 방법은, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않으며 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하는 단계; 상기 비활성 시간이 제3 미리 설정된 시간을 초과하는지 여부를 판단하는 단계; 만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리를 릴리즈하는 단계;를 더 포함한다.
상기 첫번째 양상의 네번째 가능한 구현예, 다섯번째 가능한 구현예 또는 여섯번째 가능한 구현예에 결합될 수 있는 상기 첫번째 양상의 일곱번째 가능한 구현예에 있어서, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하는 단계는, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 프로세스가 상기 운영 시스템 내의 다른 프로세스들과 인터랙트(interact)하지 않은 시간을 카운팅하는 단계; 상기 시간을 상기 비활성 시간으로 정의하는 단계;를 포함한다.
본 발명의 두번째 양상에 따르면, 백그라운드 애플리케이션을 제어하기 위한 장치가 제공된다. 상기 장치는, 운영 시스템 내에서 실행 중인 애플리케이션들에 따라서 애플리케이션 리스트를 생성하기 위한 생성 유닛 - 이때 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 식별자들을 포함함 -; 상기 애플리케이션 리스트 내에서 상기 식별자들을 트래버스하기 위한 트래버싱 유닛; 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하기 위한 제1 판단 유닛; 만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부 및 상기 애플리케이션 리스트 내에서 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 미리 설정된 역치를 초과하는지 여부를 판단하기 위한 제2 판단 유닛 - 이때 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함함 -; 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 상기 선택된 식별자에 대응되는 상기 백그라운드 애플리케이션을 종료하고, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하지 않고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하기 위한 제1 종료 유닛;을 포함한다.
상기 두번째 양상에 결합되는 상기 두번째 양상의 첫번째 가능한 구현예에 있어서, 상기 생성 유닛은, 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 실행 상태 우선순위들을 계산하기 위한 계산 서브유닛 - 이때 상기 실행 상태 우선순위들은 포어그라운드(foreground), 가시상태(visible), 인지가능상태(appreciable), 백그라운드(background)와 같이 높은 순위로부터 낮은 순위로 랭크됨 -; 상기 실행 상태 우선순위들에 따라서 높은 순위부터 낮은 순위로 상기 실행 중인 애플리케이션들의 식별자들을 시퀀싱하여 상기 애플리케이션 리스트를 획득하기 위한 시퀀싱 서브유닛;을 포함한다.
상기 두번째 양상의 첫번째 가능한 구현예에 결합되는 상기 두번째 양상의 두번째 구현예에 있어서, 상기 제1 판단 유닛은, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위를 획득하기 위한 획득 서브유닛; 만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위가 백그라운드인 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 백그라운드 애플리케이션으로 판단하기 위한 제1 판단 서브유닛;을 포함한다.
상기 두번째 양상의 첫번째 가능한 실시예 또는 두번째 가능한 실시예에 결합되는 상기 두번째 양상의 세번째 가능한 구현예에 있어서, 상기 제1 종료 유닛은, 상기 미리 설정된 화이트 리스트 내에 포함되어 있지 않고 상기 애플리케이션 리스트 내에서 상기 현재 트래버스된 식별자에 선행하는 하나 이상의 식별자들을 검색하기 위한 검색 서브유닛; 만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않고 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 식별자가 적어도 하나 검색되는 경우, 상기 하나 이상의 식별자들로부터 하나를 선택하거나 또는 상기 하나 이상의 식별자들로부터 상기 현재 트래버스된 식별자에 가장 가까운 식별자를 선택하고, 만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않고 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 식별자가 검색되지 않는 경우, 상기 현재 트래버스된 식별자를 선택하기 위한 선택 서브유닛;을 포함한다.
상기 두번째 양상에 결합되는 상기 두번째 양상의 네번째 가능한 구현예에 있어서, 상기 장치는, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있으며 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하기 위한 제1 획득 유닛; 상기 비활성 시간이 제1 미리 설정된 시간을 초과하는지 여부를 판단하기 위한 제3 판단 유닛; 만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하기 위한 제2 종료 유닛;을 더 포함한다.
상기 두번째 양상의 네번째 가능한 구현예에 결합되는 상기 두번째 양상의 다섯번째 가능한 구현예에 있어서, 상기 장치는, 만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하지 않는 경우, 상기 비활성 시간이 제2 미리 설정된 시간을 초과하는지 여부를 검출하기 위한 검출 유닛; 만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유되는 메모리를 릴리즈하기 위한 제1 릴리즈 유닛 - 이때 상기 제2 미리 설정된 시간은 상기 제1 미리 설정된 시간보다 짧음 -;을 더 포함한다.
상기 두번째 양상에 결합되는, 상기 두번째 양상의 여섯번째 가능한 구현예에 있어서, 상기 장치는, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않으며 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하기 위한 제2 획득 유닛; 상기 비활성 시간이 제3 미리 설정된 시간을 초과하는지 여부를 판단하기 위한 제4 판단 유닛; 만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유되는 메모리를 릴리즈하기 위한 제2 릴리즈 유닛;을 더 포함한다.
상기 두번째 양상의 네번째 가능한 구현예, 다섯번째 가능한 구현예 또는 여섯번째 가능한 구현예에 결합되는 상기 두번째 양상의 일곱번째 가능한 구현예에 있어서, 상기 제1 획득 유닛 및 상기 제2 획득 유닛은, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 프로세스가 상기 운영 시스템 내의 다른 프로세스들과 인터랙트하지 않는 시간을 카운팅하기 위한 카운팅 서브유닛; 상기 시간을 상기 비활성 시간으로 정의하기 위한 제2 판단 서브유닛;을 포함한다.
본 발명의 세번째 양상에 따르면, 단말장치가 제공되며, 상기 단말장치는, 프로세서; 상기 프로세서에 의해 실행가능한 명령들(instructions)을 저장하기 위한 메모리;를 포함하며, 이때 상기 프로세서는, 운영 시스템 내에서 실행 중인 애플리케이션들에 따라서 애플리케이션 리스트를 생성하고 - 이때 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 식별자들을 포함함 -; 상기 애플리케이션 리스트 내에서 상기 식별자를 트래버스하고; 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하고; 만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부 및 상기 애플리케이션 리스트 내에서 백그라운드 애플리케이션들의 식별자들의 수가 미리 설정된 역치를 초과하는지 여부를 판단하고 - 이때 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함함 -; 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하며 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 상기 선택된 식별자에 대응되는 상기 백그라운드 애플리케이션을 종료하고; 만약 상기 미리 설정된 화이트 리스트에 상기 현재 트래버스된 식별자가 포함되어 있지 않으며 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료할 수 있다.
전술한 일반적인 설명과 이하의 상세한 설명은 모두 예시적이고 설명을 위한 것일 뿐이며 본 발명을 제한하지 않는 다는 것을 밝혀둔다.
본 발명의 실시예들에 의해 개시되는 기술적 해결책은 다음과 같은 유리한 효과를 가진다. 종료되어야 할 백그라운드 애플리케이션이 단말장치에 의해 판단되기 위하여, 백그라운드 애플리케이션들의 수가 미리 설정된 역치를 초과하는지 여부 및 미리 설정된 화이트 리스트가 종료되어야 할 상기 백그라운드 애플리케이션의 식별자를 포함하고 있는지 여부 양자를 고려하게 된다. 상기 미리 설정된 화이트 리스트는 사용자에 의해 할당된 백그라운드 애플리케이션들의 식별자를 포함하고 있다. 즉, 사용자는 미리 설정된 화이트 리스트 내에 포함된 식별자들에 대응되는 상기 백그라운드 애플리케이션들 중 그 어느 것도 종료시키길 원하지 않는다. 현재 트래버스된 식별자에 대해서, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 또한 상기 백그라운드 애플리케이션의 수가 상기 미리 설정된 역치를 초과하는 경우, 하나의 백그라운드 애플리케이션이 선택되고 종료된다. 만약 미리 설정된 화이트 리스트가 현재 트래버스된 식별자를 포함하고 있지 않으며 상기 백그라운드 애플리케이션들의 수가 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션이 종료된다. 사용자에 의해 지정된 백그라운드 애플리케이션들이 무분별하게 종료되지 않기 때문에, 가장 많은 메모리를 점유하고 있어서 종료되어야 하는 애플리케이션이 사용자에 의해 지정된 백그라운드 애플리케이션일 수 있는 종래의 기술에 비하여, 상기 백그라운드 애플리케이션들은 보다 더 잘 제어될 수 있으며, 이에 따라 사용자 경험(user experience)을 향상시킬 수 있게 된다.
본 명세서의 일부를 구성하는 첨부된 도면들은 본 발명에 따르는 실시예들을 도시하고 있으며, 상세한 설명과 함께 본 발명의 사상을 설명하는 데에 사용되는 것이다.
도 1은, 본 발명의 실시예에 따르는 백그라운드 애플리케이션을 제어하기 위한 방법을 도시하고 있는 흐름도이다.
도 2는, 본 발명의 실시예에 따르는 백그라운드 애플리케이션을 제어하기 위한 다른 방법을 도시하고 있는 흐름도이다.
도 3은, 본 발명의 실시예에 따르는 백그라운드 애플리케이션을 제어하기 위한 장치를 도시하고 있는 블록도이다.
도 4는, 본 발명의 실시예에 따르는 단말장치를 도시하고 있는 블록도이다.
첨부되는 도면들에 도시되고 있는 실시예들, 바람직한 실시예들에 대해 상세하게 참조번호가 사용될 수 있다. 이하의 상세한 설명에서 첨부되는 도면들을 참조할 때 이하의 상세한 설명은 다른 언급이 없는 한 동일하거나 유사한 구성요소들을 나타내는 다른 도면들에서 동일한 참조번호가 사용될 수 있다. 바람직한 실시예들에 대한 이하의 상세한 설명들에서 설명되는 구현예들은 본 발명에 따르는 모든 구성을 나타내지 않는다. 대신, 청구항에서 인용되는 바와 같이 본 발명에 관련된 양상들에 따르는 장치 및 방법들의 예시일 뿐이다.
도 1은, 본 발명의 실시예들에 따라서 백그라운드 애플리케이션을 제어하기 위한 방법을 도시하고 있는 흐름도이다. 도 1에 도시된 바와 같이, 단말장치(terminal device)에서 사용되는 상기 방법은 다음의 단계들을 포함한다.
단계 11에서, 운영 시스템(operating system) 내의 실행 애플리케이션들(running application)에 따라서 애플리케이션 리스트(application list)가 생성된다.
일반적으로, 운영 시스템은 단말장치에 설치된다. 자주 사용되는 운영 시스템은 안드로이드 시스템, 윈도우 시스템, IOS 시스템 및 기타 등등일 수 있다. 많은 애플리케이션들이 사용자의 다양한 요구를 충족시키기 위하여 상기 단말장치에 설치될 수 있다. 상기 사용자는 또한 필요한 애플리케이션들을 설정(set up)할 수 있다. 이러한 애플리케이션들은 상기 단말장치의 운영 시스템 내에서만 실행될 수 있다. 따라서, 상기 백그라운드 애플리케이션들을 제어하기 위하여, 상기 애플리케이션 리스트는 상기 운영 시스템 내에서 실행되고 있는 애플리케이션들에 따라서 생성된다. 상기 애플리케이션 리스트는 상기 운영 시스템 내에서 실행되고 있는 상기 애플리케이션의 식별자들(identifications)을 포함한다. 상기 애플리케이션의 식별자는, 이에 한정되는 것은 아니지만, 상기 애플리케이션의 이름(name), 아이콘(icon) 등등일 수 있다.
상기 애플리케이션 리스트는 상기 운영 시스템 내에서 실행 중인 상기 애플리케이션들의 식별자, 마지막으로 실행된 시각 및 실행 상태 우선순위(running state priority)와 같은 정보를 포함한다. 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내에서 실행 중인 상기 애플리케이션의 상기 식별자들을 포함한다.
단계 12에서, 상기 애플리케이션 리스트에 포함된 상기 식별자들은 트래버스(traverse)된다.
단계 13에서, 현재 트래버스된 식별자(current traversed identification)에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부가 판단된다.
상기 애플리케이션 리스트 내에 포함된 상기 식별자들은 트래버스될 수 있으며, 트래버스 중인 식별자(identification being traversed)를 현재 트래버스된 식별자로 정의한다. 본 발명은 백그라운드 애플리케이션을 제어하고자 하는 데에 목적이 있기 때문에, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부가 먼저 판단된다.
만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 단계 14에서, 미리 설정된 화이트 리스트(predetermined white list)가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부 및 상기 애플리케이션 리스트 내에서 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 미리 설정된 역치(predetermined threshold)을 초과하는지 여부가 판단된다.
만약 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션이 아닌 경우, 단계 12가 실행된다.
상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들, 즉 사용자가 종료되기를 원하지 않는 백그라운드 애플리케이션들의 식별자들을 포함한다. 예를 들어, 사용자에 의해 지정된 백그라운드 애플리케이션은 큐큐(QQ), 위챗(WeChat), 페이신(fetion), 바이두 맵(Baidu map) 및 기타 등등일 수 있다. 상기 미리 설정된 화이트 리스트는 큐큐(QQ), 위챗(WeChat), 페이신(fetion), 바이두 맵(Baidu map) 등과 같은 애플리케이션들의 식별자들을 포함할 수 있다.
상기 미리 설정된 역치는 상기 단말장치의 하드웨어 구성 및 실제적인 요구사항(practical requirements)에 따라서 설정될 수 있다. 예를 들어, 상기 미리 설정된 역치는 10,20, 또는 25 등으로 설정될 수 있다.
만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 상기 애플리케이션 리스트에 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하는 경우, 단계 15에서, 백그라운드 애플리케이션에 대응되는 식별자가 상기 애플리케이션 리스트로부터 선택되며, 상기 선택된 식별자에 대응되는 상기 애플리케이션은 종료된다.
만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 애플리케이션 리스트에 백그라운드 애플리케이션에 대응되는 식별자의 수가 상기 미리 설정된 역치를 초과하면, 상기 운영 시스템이 정상적으로 동작하는 것을 보장하고 사용자의 경험을 좋게 하는 것을 보장하기 위하여, 하나의 백그라운드 애플리케이션이 선택될 수 있으며 종료될 수 있다.
만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 애플리케이션 리스트에 백그라운드 애플리케이션에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하는 경우, 단계 16에서, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션이 종료된다.
만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 애플리케이션 리스트내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션은 바로 종료될 수 있다. 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않기 때문에, 즉 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션은 사용자에 의해 지정된 백그라운드 애플리케이션이 아니기 때문에, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션은 바로 종료될 수 있으며, 이로써 메모리 리소스가 절약될 수 있고, 이에 따라 사용자 경험(user experience)을 향상시킬 수 있다.
만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 또는 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 상기 애플리케이션 리스트 내의 백그라운드 애플리베이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 단계 12가 실행된다.
본 발명의 실시예들에 따르는 상기 백그라운드 애플리케이션을 제어하기 위한 방법에 의하면, 단말장치에 의해 종료되어야 할 백그라운드 애플리케이션을 결정하기 위하여, 백그라운드 애플리케이션들의 수가 상기 미리 설정된 역치를 초과하는지 여부 및 상기 미리 설정된 화이트 리스트가 상기 종료되어야 할 백그라운드 애플리케이션의 식별자를 포함하는지 여부를 모두 고려하여야 한다. 상기 화이트 리스트는 상기 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함하고 있다. 즉, 상기 사용자는 상기 미리 설정된 화이트 리스트 내의 상기 식별자들에 대응되는 백그라운드 애플리케이션들 중 어떠한 것도 종료되기를 원하지 않는다. 상기 현재 트래버스된 식별자에 대하여, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 상기 백그라운드 애플리케이션의 수가 상기 미리 설정된 역치를 초과하는 경우, 하나의 백그라운드 애플리케이션은 선택되고 종료된다. 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하지 않고 상기 백그라운드 애플리케이션들의 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 종료된다. 상기 사용자에 의해 지정된 백그라운드 애플리케이션이 무분별하게 종료되지 않기 때문에, 종래기술에 의할 경우 가장 많이 메모리를 점유하고 있고 종료되는 백그라운드 애플리케이션은 상기 사용자에 의해 지정된 백그라운드 애플리케이션일 수 있는 것에 비하여, 상기 백그라운드 애플리케이션들은 보다 더 잘 제어될 수 있고, 이로써, 사용자 경험(user experience)은 보다 더 향상될 수 있다.
한편, 단계 11에서, 상기 운영 시스템 내의 상기 실행 애플리케이션들에 따라 상기 애플리케이션 리스트를 생성하는 단계는, 상기 운영 시스템 내의 상기 실행 애플리케이션들의 실행 상태 우선순위들(running state priorities)을 산출하고; 높은 순위로부터 낮은 순위까지 상기 실행 상태 우선순위들에 따라서 상기 실행 애플리케이션들의 식별자들을 시퀀싱(sequencing)하여 상기 애플리케이션 리스트를 획득하는 것을 포함한다.
일반적으로, 상기 실행 상태 우선순위들은 포어그라운드(foreground), 가시상태(visible), 인지가능상태(appreciable), 백그라운드(background)와 같이 높은 순위로부터 낮은 순위로 랭크될 수 있다. 이로써, 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 상기 실행 상태 우선순위들은 상기 단말장치에 의해 계산(calculate)될 수 있으며, 상기 실행 중인 애플리케이션들의 상기 식별자들은 상기 실행 상태 우선순위에 따라서 높은 순위로부터 낮은 순위까지 시퀀싱되어 상기 애플리케이션 리스트가 획득될 수 있다.
여기에서 단지 애플리케이션 리스트를 생성하기 위한 한가지 방법을 예로 들었지만 애플리케이션 리스트를 생성하기 위한 다수의 다른 방법들도 있다. 예를 들어, 상기 실행 중인 애플리케이션들의 식별자들이 상기 실행 상태 우선순위들에 따라서 낮은 순위로부터 높은 순위로 시퀑싱되어 상기 애플리케이션 리스트가 획득될 수 있다. 애플리케이션 리스트를 생성하기 위한 다른 방법들에 대해서는 여기서는 자세히 설명하지 않는다.
짧은 시간 안에 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 변화는 작기 때문에, 리소스를 절약하기 위하여, 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 상기 실행 상태 우선순위들은 미리 설정된 기간(preset period)에 따라서 상기 단말장치에 의해 계산될 수 있다. 상기 미리 설정된 기간은 실제적인 요구에 따라서 설정될 수 있다. 예를 들어, 상기 미리 설정된 기간은 30초, 45초, 60초, 기타 등등으로 설정될 수 있다.
한편, 단계 13에서, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하는 단계는, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위를 획득하고; 만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 상기 실행 상태 우선순위가 백그라운드인 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션은 백그라운드 애플리케이션인 것으로 판단하는 것을 포함한다.
상기 운영 시스템 내에서 실행 중인 상기 애플리케이션들의 상기 실행 상태 우선순위들이 상기 단말장치에 의해 계산될 수 있기 때문에, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 상기 실행 상태 우선순위에 따라서 백그라운드 애플리케이션이 결정될 수 있다. 즉, 실행 상태 우선순위가 백그라운드인 상기 애플리케이션이 백그라운드 애플리케이션으로 결정될 수 있다.
한편, 단계 15에서, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하는 단계는, 상기 미리 설정된 화이트 리스트 내에 포함되어 있지 않으며 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 하나 이상의 식별자들을 검색하고; 만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않으며 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 적어도 하나의 식별자가 검색되는 경우, 상기 하나 이상의 식별자들을 선택하거나 또는 상기 하나 이상의 식별자들로부터 상기 현재 트래버스된 식별자에 가장 가까운 식별자를 선택하고; 만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않으며 상기 애플리케이션 리스트 내의 상기 현재 트래버스된 식별자에 선행하는 식별자가 검색되지 않는 경우, 상기 현재 트래버스된 식별자를 선택하는 것을 포함한다.
상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하기 위하여, 상기 미리 설정된 화이트 리스트에 포함되어 있지 않으며 상기 애플리케이션 리스트 내의 상기 현재 트래버스된 식별자에 선행하는 하나 이상의 식별자들을 우선적으로 검색할 수 있는데, 즉 이는 사용자에 의해 지정되지 않은 백그라운드 애플리케이션을 먼저 찾을 수 있는 것을 의미한다. 만약 적어도 하나의 식별자가 검색되는 경우, 하나 이상의 식별자들 또는 현재 트래버스된 식별자에 가장 가까운 하나의 식별자가 선택될 수 있다. 만약 식별자가 검색되지 않는 경우, 즉 현재 트래버스된 식별자에 선행하는 하나 이상의 식별자들에 대응되는 모든 백그라운드 애플리케이션들이 사용자에 의해 지정된 백그라운드 애플리케이션인 경우, 상기 현재 트래버스된 식별자가 선택될 수 있다.
한편, 상기 방법은, 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간(inactive time period)을 획득하고; 상기 비활성 시간이 제1 미리 설정된 시간(first predetermined time period)을 초과하는지 여부를 판단하고; 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하는 경우 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하는 것을 더 포함한다.
상기 메모리 리소스의 낭비를 피하기 위하여, 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간이 획득될 수 있다. 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션은 바로 종료될 수 있다. 즉 상기 미리 설정된 화이트 리스트가 현재 트래버스된 식별자를 포함하고 있으며 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우라 할지라도, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 오랜 시간 동안 비활성이었던 경우, 상기 애플리케이션은 종료될 수 있다. 상기 제1 미리 설정된 시간은 실제적인 요구에 따라서 설정될 수 있다. 예를 들어, 상기 제1 미리 설정된 시간은 3분, 5분, 10분, 기타 등등으로 설정될 수 있다.
큐큐(QQ)의 경우를 예로 들면, 사용자가 사용하고 있지 않는 경우, 큐큐(QQ)는 백그라운드 실행 상태에 있을 수 있다. 만약 큐큐(QQ)의 비활성 시간이 10분을 초과하는 경우, 상기 미리 설정된 화이트 리스트가 큐큐(QQ)의 식별자를 포함하고 있을지라도, 큐큐(QQ)는 메모리 리소스의 절약을 위하여 종료될 수 있다.
또한, 상기 방법은, 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하지 않는 경우, 상기 비활성 시간이 제2 미리 설정된 시간을 초과하는지 여부를 판단하고; 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스(user interface)에 의해 점유된 메모리를 릴리즈(release)하는 것을 더 포함하며, 이때 상기 제2 미리 설정된 시간은 상기 제1 미리 설정된 시간보다 짧다.
이상에서 설명한 예들에 따르면, 상기 비활성 시간이 제1 미리 설정된 시간을 초과하지 않는 경우, 상기 비활성 시간이 제2 미리 설정된 시간을 초과하는지 여부가 검출될 수 있다. 상기 제2 미리 설정된 시간은 상기 제1 미리 설정된 시간보다 더 짧다. 만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션 내의 상기 사용자 인터페이스에 의해 점유된 상기 메모리가 릴리즈될 수 있다. 만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하지 않는 경우, 상기 애플리케이션 리스트 내의 다음 식별자가 트래버스될 수 있다. 상기 제2 미리 설정된 시간은 실질적인 요구에 따라 설정될 수 있다. 예를 들어, 상기 제2 미리 설정된 시간은 3분, 5분, 10분, 기타 등등으로 설정될 수 있다.
큐큐(QQ)를 예로 들면, 사용자가 사용하고 있지 않는 경우 큐큐(QQ)는 백그라운드 실행 상태에 있을 수 있다. 만약 큐큐(QQ)의 상기 비활성 시간이 5분을 초과하는 경우, 상기 미리 설정된 화이트 리스트가 큐큐(QQ)의 식별자를 포함하고 있을지라도, 큐큐(QQ) 내의 사용자 인터페이스에 의해 점유된 메모리는 메모리 리소스의 절약을 위하여 릴리즈될 수 있다.
일반적으로, 애플리케이션은 로직 코드들(logic codes)과 사용자 인터페이스(UI) 두 부분을 포함할 수 있다. 사용자 인터페이스(UI)는 그림(picture) 및 카툰(cartoon)과 같은 구성들을 포함한다. 일반적인 경우, 상기 두 부분들은 상기 메모리에 저장될 수 있다. 안드로이드 시스템에 있어서, 상기 사용자 인터페이스는 액티비티(activity)일 수 있다. 액티비티(activity)는 상기 애플리케이션의 상기 사용자 인터페이스를 저장하는 데 사용되는 컨테이너(container)이다. 상기 로직 코드들에 의해 점유되는 메모리는 작기 때문에, 상기 애플리케이션의 로직 코드들을 파괴(destroy)하는 대신 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 애플리케이션의 사용자 인터페이스에 의해 점유되는 메모리가 릴리즈될 수 있으며, 이로써 메모리 리소스들의 많은 부분이 절약될 수 있다. 만약 상기 애플리케이션의 실행 상태가 포어그라운드(foreground)가 되는 경우, 상기 애플리케이션의 로직 코드들은 저장되어 있기 때문에, 상기 사용자 인터페이스는 다시 재구성될 수 있고, 이로써 상기 사용자들은 영향을 받지 않게 된다.
한편, 상기 방법은, 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하지 않고 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하고; 상기 비활성 시간이 제3 미리 설정된 시간을 초과하는지 여부를 판단하고; 만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리를 릴리즈하는 것을 더 포함한다.
즉, 상기 메모리 리소스들을 절약하기 위하여, 상기 미리 설정된 화이트 리스트가 현재 트래버스된 식별자를 포함하지 않고 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간이 획득될 수 있다. 만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 상기 사용자 인터페이스에 의해 점유되는 메모리가 릴리즈될 수 있다.
상기 제3 미리 설정된 시간은 실제적인 요구에 따라서 설정될 수 있다. 예를 들어, 상기 제3 미리 설정된 시간은 3분, 5분, 10분, 기타 등등으로 설정될 수 있다.
계산기(calculator)를 예로 들면, 상기 사용자가 사용하고 있지 않는 경우, 상기 계산기는 백그라운드 실행 상태일 수 있다. 만약 상기 계산기의 비활성 시간이 5분을 초과하는 경우, 상기 미리 설정된 화이트 리스트가 상기 계산기의 식별자를 포함하고 있지 않기 때문에, 상기 계산기의 사용자 인터페이스에 의해 점유된 메모리는 메모리 리소스의 절약을 위하여 릴리즈될 수 있다.
한편, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 상기 비활성 시간을 획득하는 단계는, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 프로세스가 상기 운영 시스템 내의 다른 프로세스들과 인터랙트(interact)하지 않는 시간(time period)을 카운팅하고; 상기 시간(time period)을 상기 비활성 시간으로 정의하는 것을 포함한다.
상기 애플리케이션의 비활성 상태는, 상기 애플리케이션의 프로세스(process)가 상기 운영 시스템 내의 다른 프로세스들과 인터랙트를 하지 않고 있는 상태를 말한다. 상기 인터랙트는 데이터 요청(data request)를 전송하는 것, 데이터 요청 또는 다른 프로세스들에 의해 전송된 통신 요청(communication request)에 대해 응답하는 것 등을 포함할 수 있다. 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 프로세스가 상기 운영 시스템 내의 다른 프로세스들과 인터랙트하지 않는 상기 시간은 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하기 위하여 카운팅될 수 있다.
도 2는, 본 발명의 실시예들에 따르는 백그라운드 애플리케이션을 제어하기 위한 다른 방법을 도시하고 있는 흐름도이다. 도 2에 도시된 바와 같이, 단말장치에 의해 사용되는 상기 방법은 다음의 단계들을 포함한다.
단계 21에서, 상기 운영 시스템에서 실행 중인 애플리케이션들의 실행 상태 우선순위들이 계산된다.
일반적으로, 실행 중인 애플리케이션들의 상기 실행 상태 우선순위들은 포어그라운드(foreground), 가시상태(visible), 인지가능상태(appreciable), 백그라운드(background)와 같이 높은 순위로부터 낮은 순위까지 랭크될 수 있다. 서로 다른 운영 시스템들에서 사용되는 실행 애플리케이션들의 실행 상태 우선순위들을 계산하는 방법은 서로 다를 수 있다. 안드로이드 시스템을 예로 들면, 실행 애플리케이션들의 실행 상태 우선순위는 액티비티 매니저 서비스(Activity Manager Service)에 의해 계산될 수 있다.
단계 22에서, 상기 실행 애플리케이션들의 식별자들은 상기 실행 상태 우선순위에 따라서 높은 순위로부터 낮은 순위까지 시퀀싱되어 상기 애플리케이션 리스트가 획득될 수 있다.
애플리케이션 리스트를 생성하는 방법에 대해서 여기에서 설명한다. 애플리케이션 리스트를 생성하기 위한 다른 다양한 방법들이 있다. 예를 들어, 실행 애플리케이션들의 식별자들은 애플리케이션 리스트들을 획득하기 위하여 상기 실행 상태 우선순위에 따라 낮은 순위로부터 높은 순위로 시퀀싱될 수 있다. 애플리케이션 리스트를 생성하는 다른 방법들은 여기서는 자세히 설명하지 않는다.
애플리케이션의 식별자는, 이에 한정되는 것은 아니지만, 상기 애플리케이션의 이름, 아이콘 등등일 수 있다.
단계 23에서, 상기 애플리케이션 리스트 내의 상기 시별자들은 트래버스될 수 있다.
각각의 트래버스된 식별자들에 대해서, 백그라운드 애플리케이션을 제어하기 위한 프로시져들(procedure)은 동일하다. 이하에서, 현재 트래버스된 식별자를 에로 들어 설명한다.
단계 24에서, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 실행 상태 우선순위가 획득된다.
만약 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위가 백그라운드인 경우, 단계 25에서, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 백그라운드 애플리케이션으로 판단하며, 단계 26이 이어서 수행된다.
만약 상기 현태 트래버스된 식별자에 대응되는 상기 애플리케이션의 상기 실행 상태 우선순위가 백그라운드가 아닌 경우, 단계 40이 이어서 수행된다.
단계 26에서, 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부가 판단된다.
상기 미리 설정된 화이트 리스트는 상기 사용자에 의해서 지정된 백그라운드 애플리케이션들의 식별자들, 즉 사용자가 종료하기를 원하지 않는 백그라운드 애플리케이션들의 식별자들을 포함한다. 예를 들어, 사용자에 의해 지정된 백그라운드 애플리케이션은 큐큐(QQ), 위챗(WeChat), 페이신(fetion), 바이두 맵(Baidu map) 기타 등등일 수 있다. 상기 미리 설정된 화이트 리스트는 큐큐(QQ), 위챗(WeChat), 페이신(fetion), 바이두 맵(Baidu map) 기타 등등과 같은 애플리케이션들의 식별자들을 포함할 수 있다.
만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자들을 포함하고 있는 경우, 단계 27에서, 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션에 대응되는 식별자들의 수가 미리 설정된 역치를 초과하는지 여부가 판단될 수 있다.
상기 미리 설정된 역치는 상기 단말장치의 하드웨어 구성 및 실제적인 요구에 따라서 설정될 수 있다. 예를 들어, 상기 미리 설정된 역치는 10, 20, 또는 25 등과 같이 설정될 수 있다.
만약 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하는 경우, 단계 28에서, 상기 미리 설정된 화이트 리스트에 포함되어 있지 않으며 상기 애플리케이션 리스트 내의 상기 현재 트래버스된 식별자에 선행하는 하나 이상의 식별자들이 검색된다.
만약 적어도 하나의 식별자가 검색되는 경우, 단계 29에서, 하나 이상의 식별자들 또는 상기 현재 트래버스된 식별자에 가장 가까운 하나의 식별자가 선택될 수 있으며, 단계 31이 이어서 수행된다.
만약 식별자가 검색되지 않는 경우, 단계 30에서, 상기 현재 트래버스된 식별자가 선택되며 단계 31이 이어서 수행된다.
단계 31에서, 상기 선택된 식별자에 대응되는 상기 애플리케이션이 종료되며, 단계 40이 이어서 수행된다.
만약 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 단계 32에서, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간이 획득되며, 상기 비활성 시간이 제1 미리 설정된 시간을 초과하는지 여부가 판단된다.
만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하는 경우, 단계 33에서, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 종료되며, 단계 40이 이어서 수행된다.
상기 메모리 리소스의 낭비를 피하기 위하여, 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간이 획득될 수 있다. 만약 비활성시간이 제1 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션은 바로 종료될 수 있다. 즉 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우라 할지라도, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 오랜 시간 동안 비활성이었던 경우, 상기 애플리케이션은 종료될 수 있다. 상기 제1 미리 설정된 시간은 실제적인 요구에 따라서 설정될 수 있다. 예를 들어, 상기 제1 미리 설정된 시간은 3분, 5분, 10분 및 기타 등등으로 설정될 수 있다.
큐큐(QQ)를 예로 들면, 사용자가 사용하고 있지 않는 경우, 큐큐(QQ)는 백그라운드 실행 상태에 있을 수 있다. 만약 큐큐(QQ)의 비활성 시간이 10분을 초과하는 경우, 상기 미리 설정된 화이트 리스트가 큐큐(QQ)의 식별자를 포함하고 있을지라도, 큐큐(QQ)는 상기 메모리 리소소의 절약을 위하여 종료될 수 있다.
만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하지 않는 경우, 단계 34에서, 상기 비활성 시간이 제2 미리 설정된 시간을 초과하는지 여부가 검출된다.
만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 단계 35에서, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리가 릴리즈되며, 단계 40이 이어서 수행된다.
만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하지 않는 경우, 단계 40이 이어서 수행된다.
이상에서 설명한 예들에 따르면, 만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하지 않는 경우, 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는지 여부가 검출될 수 있다. 상기 제2 미리 설정된 시간은 상기 제1 미리 설정된 시간보다 짧다. 만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 상기 사용자 인터페이스에 의해 점유된 메모리가 릴리즈될 수 있다. 만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하지 않는 경우, 상기 애플리케이션 리스트 내의 다음 식별자가 트래버스될 수 있다. 상기 제2 미리 설정된 시간은 실제적인 요구에 따라서 설정될 수 있다. 예를 들어, 상기 제2 미리 설정된 시간은 3분, 5분, 10분 및 기타 등등으로 설정될 수 있다.
큐큐(QQ)를 예로 들면, 사용자가 사용하고 있지 않는 경우, 큐큐(QQ)는 백그라운드 실행 상태에 있을 수 있다. 만약 큐큐(QQ)의 비활성 시간이 5분을 초과하는 경우, 상기 미리 설정된 화이트 리스트가 큐큐(QQ)의 상기 식별자를 포함하고 있을지라도, 큐큐(QQ)의 사용자 인터페이스에 의해 점유된 상기 메모리는 메모리 리소스를 절약하기 위하여 릴리즈될 수 있다.
비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 상기 애플리케이션의 사용자 인터페이스(UI)에 의해 점유된 메모리가 릴리즈되기 때문에, 많은 양의 메모리 리소스가 절감될 수 있다. 만약 상기 애플리케이션의 실행 상태가 포어그라운드(foreground)로 되는 경우, 상기 사용자 인터페이스는 재구성될 수 있으며, 이로써, 사용자는 영향을 받지 않게 된다.
만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하지 않는 경우, 단계 36에서, 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하는 지 여부가 판단될 수 있다.
만약 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하는 경우, 단계 37에서, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션이 종료되며, 단계 40이 이어서 실행된다.
만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자들에 대응되는 상기 애플리케이션은 바로 종료될 수 있다. 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않는 경우, 즉 상기 현재 트래버스된 식별자에 대응되는 애플리케이션이 상기 사용자에 의해 지정된 백그라운드 애플리케이션이 아닌 경우, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션은 바로 종료될 수 있으며, 이로써 상기 메모리 리소스가 절약될 수 있고, 이에 따라 상기 사용자 경험(user experience)는 향상된다.
만약 상기 애플리케이션 리스트 내의 백그라운드 애플리케이션에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 단계 38에서, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 상기 비활성 시간이 획득되며 상기 비활성 시간이 제3 미리 설정된 시간을 초과하는지 여부가 판단된다.
상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 단계 39에서, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리가 릴리즈되며, 단계 40이 이어서 실행된다.
만약, 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하지 않는 경우, 단계 40이 이어서 실행된다.
즉, 메모리 리소스를 절약하기 위하여, 상기 미리 설정된 화이트 리스트가 현재 트래버스된 식별자를 포함하고 있지 않고 상기 애플리케이션 리스트 내에 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간이 획득될 수 있다. 만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리는 릴리즈될 수 있다.
즉, 메모리 리소스를 절약하기 위하여, 상기 미리 설정된 화이트 리스트가 현재 트래버스된 식별자를 포함하고 있지 않고 상기 애플리케이션 리스트 내에 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간이 획득될 수 있다. 만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리는 릴리즈될 수 있다.
예를 들어, 계산기에 대해서, 사용자가 사용하고 있지 않는 경우 계산기는 백그라운드 실행 상태에 있을 수 있다. 만약 계산기의 비활성 시간이 5분을 초과하는 경우, 상기 미리 설정된 화이트 리스트가 상기 계산기의 식별자를 포함하고 있지 않기 때문에, 상기 계산기의 사용자 인터페이스에 의해 점유된 메모리는 메모리 리소스의 절약을 위하여 릴리즈될 수 있다.
단계 40은 종료단계이다.
도 3은, 본 발명의 실시예에 따르는 백그라운드 애플리케이션을 제어하기 위한 장치를 도시하는 블록도이다. 도 3에 도시된 바와 같이, 상기 장치는 생성 유닛(creating unit, 31), 트래버싱 유닛(traversing unit, 32), 제1 판단 유닛(first determining unit, 33), 제2 판단 유닛(second determining unit, 34) 및 제1 종료 유닛(first closing unit, 35)을 포함한다.
상기 생성 유닛(31)은 상기 운영 시스템 내의 실행 애플리케이션에 따라서 애플리케이션 리스트를 생성할 수 있으며, 이때 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내의 상기 실행 애플리케이션의 식별자들을 포함한다.
상기 트래버싱 유닛(32)은 상기 애플리케이션 리스트 내의 상기 식별자들을 트래버스할 수 있다.
상기 제1 판단 유닛(33)은 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단할 수 있다.
상기 제2 판단 유닛(34)은, 만약 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트를 상기 현재 트래버스된 식별자를 포함하는지 여부 및 상기 애플리케이션 내에 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 미리 설정된 역치를 초과하는지 여부를 판단할 수 있으며, 이때 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션의 식별자들을 포함한다.
상기 제1 종료 유닛(35)은, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 선택된 식별자에 대응되는 백그라운드 애플리케이션을 종료할 수 있으며; 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료할 수 있다.
본 발명의 실시예들에 따르는 백그라운드 애플리케이션을 제어하기 위한 장치에 의하면, 종료되어야 할 백그라운드 애플리케이션을 상기 단말장치에 의해 판단하기 위하여, 백그라운드 애플리케이션들의 수가 상기 미리 설정된 역치를 초과하는지 여부 및 상기 미리 설정된 화이트 리스트가 종료되어야 할 상기 백그라운드 애플리케이션의 식별자를 포함하고 있는지 여부를 모두 고려하여야 한다. 상기 화이트 리스트는 상기 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함하고 있다. 즉, 상기 사용자는 상기 미리 설정된 화이트 리스트에 포함된 상기 식별자들에 대응되는 상기 백그라운드 애플리케이션들 중 그 어느 것도 종료시키기를 원하지 않는다. 현재 트래버스된 식별자에 대하여, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 백그라운드 애플리케이션들의 수가 상기 미리 설정된 역치를 초과하는 경우, 백그라운드 애플리케이션은 선택되고 종료된다. 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 백그라운드 애플리케이션들의이 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 종료된다. 상기 사용자에 의해 지정된 백그라운드 애플리케이션이 무분별하게 종료되지 않기 때문에, 가장 많은 메모리를 점유하고 있는 종료되어야 할 백그라운드 애플리케이션이 사용자에 의해 지정된 백그라운드 애플리케이션일 수 있는 종래의 기술에 비하여, 훨씬 더 잘 제어될 수 있고, 이에 따라 상기 사용자 경험(user experience)이 향상될 수 있다.
한편, 상기 생성 유닛(31)은 계산 서브유닛 및 시퀀싱 서브유닛을 포함한다.
상기 계산 서브유닛은 상기 운영 시스템 내의 상기 실행 애플리케이션의 실행 상태 우선순위들을 계산할 수 있으며, 이때 상기 실행 상태 우선순위들은 포어그라운드(foreground), 가시상태(visible), 인지가능상태(appreciable), 백그라운드(background)와 같이 높은 순위부터 낮은 순위로 랭크된다.
상기 시퀀싱 서브유닛은 상기 실행 상태 우선순위에 따라서 높은 순위부터 낮은 순위로 상기 실행 애플리케이션의 식별자들을 시퀀싱하여 상기 애플리케이션 리스트를 획득할 수 있다.
한편, 상기 제1 판단 유닛(33)은 획득 서브유닛 및 제1 판단 서브유닛을 포함한다.
상기 획득 서브유닛은 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위를 획득할 수 있다.
상기 제1 판단 서브유닛은 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 실행 상태 우선순위가 백그라운드인 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 백그라운드 애플리케이션으로 판단할 수 있다.
한편, 상기 제1 종료 유닛(35)은 검색 서브유닛 및 선택 서브유닛을 포함한다.
상기 검색 서브유닛은 상기 미리 설정된 화이트 리스트에 포함되어 있지 않고 상기 애플리케이션 리스트 내의 상기 현재 트래버스된 식별자에 선행하는 하나 이상의 식별자들을 검색할 수 있다.
상기 선택 서브유닛은, 만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않고 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 적어도 하나의 식별자가 검색이 되는 경우, 하나 이상의 식별자들을 선택하거나 또는 상기 하나 이상의 식별자들 중에서 상기 현재 트래버스된 식별자에 가장 가까운 하나의 식별자를 선택할 수 있으며; 만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않고 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 식별자가 검색되지 않는 경우, 상기 현재 트래버스된 식별자를 선택할 수 있다.
한편, 상기 장치는 제1 획득 유닛, 제3 판단 유닛 및 제2 종료 유닛을 더 포함한다.
상기 제1 획득 유닛은, 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득할 수 있다.
상기 제3 판단 유닛은 상기 비활성 시간이 제1 미리 설정된 시간을 초과하는지 여부를 판단할 수 있다.
상기 제2 종료 유닛은, 만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료할 수 있다.
한편, 상기 장치는 검출 유닛 및 제2 릴리즈 유닛을 더 포함한다.
상기 검출 유닛은, 만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하지 않는 경우, 상기 비활성 시간이 제2 미리 설정된 시간을 초과하는지 여부를 검출할 수 있다.
상기 제1 릴리즈 유닛은, 만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리를 릴리즈할 수 있으며, 이때 상기 제2 미리 설정된 시간은 상기 제1 미리 설정된 시간보다 짧다.
한편, 상기 장치는 제2 획득 유닛, 제4 판단 유닛 및 제2 릴리즈 유닛을 더 포함한다.
상기 제2 획득 유닛은, 만약 상기 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득할 수 있다.
상기 제4 판단 유닛은 상기 비활성 시간이 제3 미리 설정된 시간을 초과하는지 여부를 판단할 수 있다.
상기 제2 릴리즈 유닛은, 만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리를 릴리즈할 수 있다.
한편, 상기 제1 획득 유닛 및 상기 제2 획득 유닛은 카운팅 서브유닛 및 제2 판단 서브유닛을 포함한다.
상기 카운팅 서브유닛은, 상기 현재 트래버스된 식별자에 대응되는 애플리케이션의 프로세스가 상기 운영 시스템 내의 다른 프로세스들과 인터랙트하지 않는 시간을 카운트할 수 있다.
상기 제2 판단 서브유닛은 상기 시간을 상기 비활성 시간으로 정의할 수 있다.
이상에서 설명한 실시예들에서의 상기 장치들에 대하여, 그에 포함된 각각의 모듈들을 동작시키기 위한 구체적인 방법들은 백그라운드 애플리케이션을 제어하기 위한 방법들에 대한 실시예들에서 상세하게 설명한 바 있으므로, 다시 자세한 설명을 하지는 않는다.
도 4는, 본 발명의 실시예에 따르는 백그라운드 애플리케이션을 제어하기 위한 장치(800)를 도시하는 개략도이다. 예를 들어, 상기 장치(800)는 모바일폰(mobile phone), 컴퓨터(computer), 디지털 방송 단말기(digital broadcasting terminal), 메시지 송/수신 장비(message receiving and sending equipment), 게임기(game controller), 태블릿 장치(tablet device), 의료장비(medical equipment), 피트니스 장비(fitness equipment), PDA 등일 수 있다.
도 4를 참조하면, 상기 장치(800)는 프로세싱 컴포넌트(processing component, 802), 메모리(memory, 804), 파워 컴포넌트(power component, 806), 멀티미디어 컴포넌트(multimedia component, 808), 오디오 컴포넌트(audio component, 810), 입출력 인터페이스(I/O interface, 812), 센서 컴포넌트(sensor component, 814) 및 통신 컴포넌트(communication component, 816)과 같은 컴포넌트들 중 하나 이상을 포함할 수 있다.
상기 프로세싱 컴포넌트(802)는, 디스플레이와 관련된 동작들, 전화통화, 데이터 통신, 카메라 동작 및 레코딩 동작등과 같은 상기 장치(800)의 전반적인 동작을 제어한다. 상기 프로세싱 컴포넌트(802)는 전술한 방법의 단계들의 전부 또는 일부를 수행하기 위한 명령들(instructions)을 실행할 수 있는 하나 이상의 프로세서들(820)을 포함할 수 있다. 또한, 상기 프로세싱 컴포넌트(802)는 상기 프로세싱 컴포넌트(802)와 다른 컴포넌트들 사이의 인터랙트를 가능하게 하는 하나 이상의 모듈들을 포함할 수 있다. 예를 들어, 상기 프로세싱 컴포넌트(802)는 상기 멀티미디어 컴포넌트(808) 및 상기 프로세싱 컴포넌트(802) 사이의 인터랙트를 가능하게 하는 멀티미디어 모듈을 포함할 수 있다.
상기 메모리(804)는 상기 장치(800)의 동작을 가능하게 하는 다양한 타입의 데이터들을 저장할 수 있다. 이러한 데이터들의 예는 상기 장치(800)에서 동작하는 애플리케이션 또는 방법들을 위한 명령어(instructions), 컨택 데이터(contact data), 폰북 데이터(phonebook data), 메시지(message), 그림(pictures), 비디오(video) 등을 포함한다. 상기 메모리(804)는, 정적 랜덤 억세스 메모리(static random access memory, SRAM), EEPROM(electrically erasable programmable read-only memory), EPROM(erasable programmable read-only memory), PROM(programmable read-only memory), ROM(read-only memory), 자기 메모리(magnetic memory), 플래시 메모리(flash memory), 자기 또는 광학 디스크(magnetic or optical disk)등과 같은 휘발성 타입, 비휘발성 타입 또는 이들이 조합된 형태의 타입의 메모리 장치들을 이용하여 구현될 수 있다.
상기 파워 컴포넌트(806)는 상기 장치(800)의 다양한 컴포넌트들로 파워를 제공한다. 상기 파워 컴포넌트(806)는 파워 관리 시스템, 하나 이상의 파워소스들 및 상기 장치(800) 내에 파워를 생성, 제어 및 공급하는 데 관련된 다른 컴포넌트들을 포함할 수 있다.
상기 멀티미디어 컴포넌트(808)는 상기 장치(800)와 상기 사용자 사이의 출력 인터페이스를 제공하는 스크린을 포함한다. 몇몇 실시예들에 있어서, 상기 스크린은 액정 디스플레이(liquid crystal display, LCD) 및 터치 패널(TP)를 포함할 수 있다. 만약 상기 스크린이 상기 터치 패널을 포함하는 경우, 상기 스크린은 사용자로부터 입력 신호들을 수신할 수 있는 터치 스크린으로 구현될 수 있다. 상기 터치 패널은 상기 터치 패널 상의 터치들, 스와이프들(swipes) 및 제스쳐들(gestures)을 센싱하기 위한 하나 이상의 터치 센서들을 포함한다. 상기 터치 센서들은 터치 또는 스와이프 동작을 센싱할 수 있을 뿐만 아니라, 상기 터치 또는 스와이프 동작에 관련된 지속시간(duration) 및 압력(pressure)를 센싱할 수 있다. 몇몇 실시예들에 있어서, 상기 멀티미디어 컴포넌트(808)는 전면 카메라(front camera) 및/또는 후면 카메라(rear camera)를 포함한다. 상기 전면 카메라 및 상기 후면 카메라는 상기 장치(800)가 사진 촬영 모드 또는 비디오 모드와 같은 동작 모드에 있는 동안 외부의 멀티미디어 데이터를 수신할 수 있다. 상기 전면 카메라 및 상기 후면 카메라 각각은 고정된 광학 렌즈 시스템일 수 있고 또는 포커스 및 광학 줌 기능들을 가질 수 있다.
상기 오디오 컴포넌트(810)는 오디오 신호를 출력하거나 입력할 수 있다. 예를 들어, 상기 오디오 컴포넌트(810)는 상기 장치(800)가 전화 모드, 녹음 모드 및 음성 인식 모드 등과 같은 동작 모드에 있을 때 외부의 오디오 신호를 수신할 수 있는 마이크로폰(microphone, MIC)을 포함한다. 상기 수신된 오디오 신호는 상기 메모리(804)에 저장되거나 또는 상기 통신 컴포넌트(816)를 통해 전송될 수 있다. 몇몇 실시예들에 있어서, 상기 오디오 컴포넌트(810)는 오디오 신호를 출력하기 위한 스피커를 포함한다.
상기 입출력 인터페이스(812)는 상기 프로세싱 컴포넌트(802)와 키보드, 클릭휠(click wheel), 버튼 등과 같은 주변의 인터페이스 모듈들 사이의 인터페이스를 제공한다. 상기 버튼은, 이에 한정되는 것은 아니지만, 홈버튼, 볼륨버튼, 시작버튼 및 잠금 버튼을 포함할 수 있다.
상기 센서 컴포넌트(814)는 상기 장치(800)의 다양한 양상의 상태 평가를 제공할 수 있는 하나 이상의 센서들을 포함한다. 예를 들어, 상기 센서 컴포넌트(814)는 상기 장치(800)의 오픈/클로즈 상태, 상기 장치(800)의 컴포넌트들(예를 들어, 디스플레이 및 키패드)의 상대적인 포지셔닝(relative positioning), 상기 장치(800) 또는 상기 장치의 컴포넌트의 위치 변화, 상기 장치(800)에 대한 사용자의 접촉(contact) 유무, 상기 장치(800)의 오리엔테이션 또는 가속/감속 및 상기 장치(800)의 온도 변화 등을 검출할 수 있다. 상기 센서 컴포넌트(814)는 어떠한 물리적 접촉(physical contact) 없이 근처에 오브젝트가 있음을 검출할 수 있는 근접 센서를 포함할 수 있다. 상기 센서 컴포넌트(814)는 또한 이미징 애플리케이션에서 사용될 수 있는 CMOS 또는 CCD 이미지 센서와 같은 광학 센서를 포함할 수 있다. 몇몇 실시예들에 있어서, 상기 센서 컴포넌트(814)는 또한 가속도 센서(accelerometer sensor), 자이로 센서(gyroscope sensor), 자기 센서(magnetic sensor), 압력 센서(pressure sensor) 또는 온도 센서(temperature sensor) 등을 포함할 수 있다.
상기 통신 컴포넌트(816)는 상기 장치(800)와 다른 장치들 사이의 유선 또는 무선 통신을 가능하게 할 수 있다. 상기 장치(800)는 WiFi, 2G, 3G 또는 이들의 조합와 같은 통신 표준에 기초하여 무선 네트워크에 억세스할 수 있다. 일 실시예에 있어서, 상기 통신 컴포넌트(816)는 통신 채널을 통해 외부 방송 제어 시스템으로부터 방송 신호 또는 방송과 관련된 정보들을 수신한다. 일 실시예에 있어서, 상기 통신 컴포넌트(816)는 근거리 통신들을 가능하게 하는 근거리 통신(near field communication, NFC) 모듈을 더 포함할 수 있다. 예를 들어, 상기 근거리 통신 모듈은 RFID(radio frequency identification) 기술, IrDA(infrared data association) 기술, UWB(ultra-wideband) 기술, 블루투스 기술 및 다른 기술들에 기초하여 구현될 수 있다.
일 실시예에 있어서, 상기 장치(800)는 본 발명의 실시예들에 따르는 전술한 방법들을 실행하기 위하여, 하나 이상의 ASIC(application specific integrated circuits), DSP(digital signal processor), DSPD(digital signal processing device), PLD(programmable logic device), FPGA(field programmable gate array), 컨트롤러, 마이크로 컨트롤러, 마이크로프로세서, 또는 다른 전자소자들로 구현될 수 있다.
몇몇 실시예들에 있어서, 전술한 방법들을 수행하기 위하여, 상기 장치(800)의 상기 프로세서(820)에 의해 실행가능한 명령어들(instructions)을 포함하고 있는 상기 메모리(804)와 같은, 명령어들(instructions)을 포함하는 비일시적인 컴퓨터로 판독가능한 저장 매체(non-transitory computer-readable storage medium)에 제공될 수 있다. 예를 들어, 상기 비일시적인 컴퓨터로 판독가능한 저장 매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광학 데이터 저장 장치 등과 같은 것일 수 있다.
단말장치의 프로세서에 의해 실행될 때, 상기 단말장치가 백그라운드 애플리케이션을 제어하기 위한 방법들을 수행할 수 있도록 하는 명령어들이 저장되어 있는 비일시적인 컴퓨터로 판독가능한 저장 매체가 제공된다. 상기 방법은, 운영 시스템 내의 실행 애플리케이션들에 따라서 애플리케이션 리스트를 생성하고 - 이때 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내의 상기 실행 애플리케이션들의 식별자들을 포함함 -; 상기 애플리케이션 리스트 내의 상기 식별자들을 트래버스하고; 현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하고; 만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트레 상기 현재 트래버스된 식별자가 포함되어 있는지 여부 및 상기 애플리케이션 리스트 내에 백그라운드 애플리케이션에 대응되는 식별자들의 수가 미리 설정된 역치를 초과하는지 여부를 판단하고 - 이때, 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함함 -; 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 수가 상기 미리 전해진 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 상기 선택된 식별자에 대응되는 상기 백그라운드 애플리케이션을 종료하고; 만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하는 것을 포함한다.
본 발명의 다른 실시예들은 본 명세서에 대한 고찰과 여기서 개시되는 본 발명에 대한 실시로부터 본 기술 분야의 당업자에게 명백하게 이해될 수 있을 것이다. 본 출원은, 본 발명의 기술 분야에서 공지된 사항 또는 관습의 범위 내에서 본 발명에 의해 개시된 내용으로부터 도출될 수 있는 본 발명의 일반적인 사상의 변형, 사용 또는 적용을 포함하도록 의도되는 것이다. 본 명세서 및 실시예들은 청구 범위에 의해 지시되는 본 발명의 진정한 범위 및 사상 내에서, 단지 예시로서만 고려되어야 할 것이다.
또한, 본 발명은 첨부 도면에서 상술되고 예시된 정확한 구성에 한정되지 않으며, 각종 수정 및 변경은 본 발명의 범위를 벗어나지 않고 이루어질 수 있다는 것을 알 수 있을 것이다. 본 발명의 범위는 오직 첨부된 청구항들에 의해서만 한정되어야 할 것이다.

Claims (17)

  1. 운영 시스템 내에서 실행 중인 애플리케이션들에 따라서 애플리케이션을 생성하는 단계 - 이때 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 식별자들을 포함함 -;
    상기 애플리케이션 리스트 내에서 상기 식별자들을 트래버스하는 단계;
    현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하는 단계;
    만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부 및 상기 애플리케이션 리스트 내에 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 미리 설정된 역치를 초과하는지 여부를 판단하는 단계 - 이때 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함함 -;
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 상기 선택된 식별자에 대응되는 상기 백그라운드 애플리케이션을 종료하는 단계;
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하는 단계;를 포함하는
    백그라운드 애플리케이션을 제어하기 위한 방법.
  2. 제1항에 있어서,
    상기 운영 시스템 내에서 실행 중인 애플리케이션에 따라서 상기 애플리케이션 리스트를 생성하는 단계는,
    상기 운영 시스템 내에서 실행 중인 애플리케이션들의 실행 상태 우선순위들(running state priorities)을 계산하는 단계 - 이때 상기 실행 상태 우선순위들은 포어그라운드(foreground), 가시상태(visible), 인지가능상태(appreciable), 백그라운드(background)와 같이 높은 순위로부터 낮은 순위로 랭크됨 -;
    상기 실행 상태 우선순위들에 따라서 높은 순위로부터 낮은 순위로 상기 실행 중인 애플리케이션들의 식별자들을 시퀀싱하여 상기 애플리케이션 리스트를 획득하는 단계;를 포함하는
    백그라운드 애플리케이션을 제어하기 위한 방법.
  3. 제2항에 있어서,
    상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하는 단계는,
    상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위를 획득하는 단계;
    만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위가 백그라운드인 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 백그라운드 애플리케이션으로 판단하는 단계;를 포함하는
    백그라운드 애플리케이션을 제어하기 위한 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하는 단계는,
    상기 미리 설정된 화이트 리스트에 포함되어 있지 않으며 상기 래플리케이션 리스트 내에 상기 현태 트래버스된 식별자에 선행하는 하나 이상의 식별자들을 검색하는 단계;
    만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않으며 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 적어도 하나의 식별자가 검색된 경우, 상기 하나 이상의 식별자들로부터 하나를 선택하거나 또는 상기 하나 이상의 식별자들로부터 상기 현재 트래버스된 식별자에 가장 가까운 식별자를 선택하는 단계;
    만약 상기 미리 설정된 화이트 리스트 내에 포함되어 있지 않으며 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 식별자가 검색되지 않는 경우, 상기 현재 트래버스된 식별자를 선택하는 단계;를 포함하는
    백그라운드 애플리케이션을 제어하기 위한 방법.
  5. 제1항에 있어서,
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하는 단계;
    상기 비활성 시간이 제1 미리 설정된 시간을 초과하는지 여부를 판단하는 단계;
    만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하는 단계;를 더 포함하는
    백그라운드 애플리케이션을 제어하기 위한 방법.
  6. 제5항에 있어서,
    만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하지 않는 경우, 상기 비활성 시간이 제2 미리 설정된 시간을 초과하는지 여부를 검출하는 단계;
    만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리를 릴리즈하는 단계 - 이때 상기 제2 미리 설정된 시간은 상기 제2 미리 설정된 시간 보다 짧음 -;를 더 포함하는
    백그라운드 애플리케이션을 제어하기 위한 방법.
  7. 제1항에 있어서,
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않으며 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하는 단계;
    상기 비활성 시간이 제3 미리 설정된 시간을 초과하는지 여부를 판단하는 단계;
    만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유된 메모리를 릴리즈하는 단계;를 더 포함하는
    백그라운드 애플리케이션을 제어하기 위한 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하는 단계는,
    상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 프로세스가 상기 운영 시스템 내의 다른 프로세스들과 인터랙트하지 않은 시간을 카운팅하는 단계;
    상기 시간을 상기 비활성 시간으로 정의하는 단계;를 포함하는
    백그라운드 애플리케이션을 제어하기 위한 방법.
  9. 운영 시스템 내에서 실행 중인 애플리케이션들에 따라서 애플리케이션 리스트를 생성하기 위한 생성 유닛 - 이때 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 식별자들을 포함함 -;
    상기 애플리케이션 리스트 내에서 상기 식별자를 트래버스하기 위한 트래버싱 유닛;
    현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하기 위한 제1 판단 유닛;
    만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부 및 상기 애플리케이션 리스트 내에서 백그라운드 애플리케이션들에 대응되는 식별자들의 수가 미리 설정된 역치를 초과하는지 여부를 판단하기 위한 제2 판단 유닛 - 이때 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함함 -;
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 상기 선택된 식별자에 대응되는 상기 백그라운드 애플리케이션을 종료하고
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하지 않고 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하기 위한 제1 종료 유닛;을 포함하는
    백그라운드 애플리케이션을 제어하기 위한 장치.
  10. 제9항에 있어서,
    상기 생성 유닛은,
    상기 운영 시스템 내에서 실행 중인 애플리케이션들의 실행 상태 우선순위들을 계산하기 위한 계산 서브유닛 - 이때 상기 실행 상태 우선순위들은 포어그라운드(foreground), 가시상태(visible), 인지가능상태(appreciable), 백그라운드(background)와 같이 높은 순위로부터 낮은 순위로 랭크됨 -;
    상기 실행 상태 우선순위들에 따라서 높은 순위부터 낮은 순위로 상기 실행 중인 애플리케이션들의 식별자들을 시퀀싱하여 상기 애플리케이션 리스트를 획득하기 위한 시퀀싱 서브유닛;을 포함하는
    백그라운드 애플리케이션을 제어하기 위한 장치.
  11. 제10항에 있어서,
    상기 제1 판단 유닛은,
    상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위를 획득하기 위한 획득 서브유닛;
    만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 실행 상태 우선순위가 백그라운드인 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 백그라운드 애플리케이션으로 판단하기 위한 제1 판단 서브유닛;을 포함하는
    백그라운드 애플리케이션을 제어하기 위한 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 제1 종료 유닛은,
    상기 미리 설정된 화이트 리스트 내에 포함되어 있지 않으며 상기 애플리케이션 리스트 내에서 상기 현재 트래버스된 식별자에 선행하는 하나 이상의 식별자들을 검색하기 위한 검색 서브유닛;
    만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않고 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 식별자가 적어도 하나 검색되는 경우, 상기 하나 이상의 식별자들로부터 하나를 선택하거나 또는 상기 하나 이상의 식별자들로부터 상기 현재 트래버스된 식별자에 가장 가까운 식별자를 선택하고,
    만약 상기 미리 설정된 화이트 리스트에 포함되어 있지 않고 상기 애플리케이션 리스트 내에 상기 현재 트래버스된 식별자에 선행하는 식별자가 검색되지 않는 경우, 상기 현재 트래버스된 식별자를 선택하기 위한 선택 서브유닛;을 포함하는
    백그라운드 애플리케이션을 제어하기 위한 장치.
  13. 제9항에 있어서,
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있고 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하기 위한 제1 획득 유닛;
    상기 비활성 시간이 제1 미리 설정된 시간을 초과하는지 여부를 판단하기 위한 제3 판단 유닛;
    만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료하기 위한 제2 종료 유닛;을 더 포함하는
    백그라운드 애플리케이션을 제어하기 위한 장치.
  14. 제13항에 있어서,
    만약 상기 비활성 시간이 상기 제1 미리 설정된 시간을 초과하지 않는 경우, 상기 비활성 시간이 제2 미리 설정된 시간을 초과하는지 여부를 검출하기 위한 검출 유닛;
    만약 상기 비활성 시간이 상기 제2 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유되는 메모리를 릴리즈하기 위한 제1 릴리즈 유닛 - 이때 상기 제2 미리 설정된 시간은 상기 제1 미리 설정된 시간보다 짧음 -;을 더 포함하는
    백그라운드 애플리케이션을 제어하기 위한 장치.
  15. 제9항에 있어서,
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있지 않으며 상기 수가 상기 미리 설정된 역치를 초과하지 않는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 비활성 시간을 획득하기 위한 제2 획득 유닛;
    상기 비활성 시간이 제3 미리 설정된 시간을 초과하는지 여부를 판단하기 위한 제4 판단 유닛;
    만약 상기 비활성 시간이 상기 제3 미리 설정된 시간을 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 사용자 인터페이스에 의해 점유되는 메모리를 릴리즈하기 위한 제2 릴리즈 유닛;을 더 포함하는
    백그라운드 애플리케이션을 제어하기 위한 장치.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    상기 제1 획득 유닛 및 상기 제2 획득 유닛은,
    상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션의 프로세스가 상기 운영 시스템 내의 다른 프로세스들과 인터랙트하지 않는 시간을 카운팅하기 위한 카운팅 서브유닛;
    상기 시간을 상기 비활성 시간으로 정의하기 위한 제2 판단 서브유닛;을 포함하는
    백그라운드 애플리케이션을 제어하기 위한 장치.
  17. 프로세서;
    상기 프로세서에 의해 실행가능한 명령들(instructions)을 저장하기 위한 메모리;를 포함하며,
    이때 상기 프로세서는,
    운영 시스템 내에서 실행 중인 애플리케이션들에 따라서 애플리케이션 리스트를 생성하고 - 이때 상기 애플리케이션 리스트는 적어도 상기 운영 시스템 내에서 실행 중인 애플리케이션들의 식별자들을 포함함 -;
    상기 애플리케이션 리스트 내에서 상기 식별자들을 트래버스하고;
    현재 트래버스된 식별자에 대응되는 애플리케이션이 백그라운드 애플리케이션인지 여부를 판단하고;
    만약 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션이 백그라운드 애플리케이션인 경우, 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하고 있는지 여부 및 상기 애플리케이션 리스트 내에서 백그라운드 애플리케이션들의 식별자들의 수가 미리 설정된 역치를 초과하는지 여부를 판단하고 - 이때 상기 미리 설정된 화이트 리스트는 사용자에 의해 지정된 백그라운드 애플리케이션들의 식별자들을 포함함 -;
    만약 상기 미리 설정된 화이트 리스트가 상기 현재 트래버스된 식별자를 포함하며 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 애플리케이션 리스트로부터 백그라운드 애플리케이션에 대응되는 식별자를 선택하고 상기 선택된 식별자에 대응되는 상기 백그라운드 애플리케이션을 종료하고;
    만약 상기 미리 설정된 화이트 리스트에 상기 현재 트래버스된 식별자가 포함되어 있지 않으며 상기 수가 상기 미리 설정된 역치를 초과하는 경우, 상기 현재 트래버스된 식별자에 대응되는 상기 애플리케이션을 종료할 수 있는
    단말장치.
KR1020157009919A 2014-08-29 2015-01-22 백그라운드 애플리케이션을 제어하기 위한 방법 및 장치 KR101706359B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410436455.8A CN104239094B (zh) 2014-08-29 2014-08-29 后台应用程序的控制方法、装置及终端设备
CN201410436455.8 2014-08-29
PCT/CN2015/071367 WO2016029642A1 (zh) 2014-08-29 2015-01-22 后台应用程序的控制方法、装置及终端设备

Publications (2)

Publication Number Publication Date
KR20160042398A true KR20160042398A (ko) 2016-04-19
KR101706359B1 KR101706359B1 (ko) 2017-02-13

Family

ID=52227229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157009919A KR101706359B1 (ko) 2014-08-29 2015-01-22 백그라운드 애플리케이션을 제어하기 위한 방법 및 장치

Country Status (9)

Country Link
US (1) US9588805B2 (ko)
EP (1) EP2993584B1 (ko)
JP (1) JP6134074B2 (ko)
KR (1) KR101706359B1 (ko)
CN (1) CN104239094B (ko)
BR (1) BR112015008641A2 (ko)
MX (1) MX356378B (ko)
RU (1) RU2637474C2 (ko)
WO (1) WO2016029642A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200006841A (ko) * 2018-07-11 2020-01-21 주식회사 케이티 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법
WO2022059978A1 (ko) * 2020-09-21 2022-03-24 삼성전자(주) 전자장치 및 그 제어방법

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015095219A (ja) * 2013-11-14 2015-05-18 ソニー株式会社 情報処理装置、情報処理方法および記憶媒体
CN105373419A (zh) * 2014-08-26 2016-03-02 阿里巴巴集团控股有限公司 一种后台应用的操作方法及装置
CN104239094B (zh) * 2014-08-29 2017-12-08 小米科技有限责任公司 后台应用程序的控制方法、装置及终端设备
CN104461725B (zh) * 2014-12-30 2018-05-08 小米科技有限责任公司 控制应用进程启动的方法及装置
CN105828408B (zh) * 2015-01-08 2020-12-22 中兴通讯股份有限公司 一种控制上网时间的方法和装置
CN104636144A (zh) * 2015-02-26 2015-05-20 北京数字天域科技有限责任公司 一种移动终端后台程序管理方法及装置
CN104793846A (zh) * 2015-04-27 2015-07-22 小米科技有限责任公司 应用程序的界面展示方法及装置
CN106371913A (zh) * 2015-07-21 2017-02-01 赤子城网络技术(北京)有限公司 内存清理方法及装置
CN105373405B (zh) * 2015-11-26 2019-05-10 努比亚技术有限公司 动态加载应用程序的装置及方法
CN105430726B (zh) * 2015-11-28 2018-05-29 广东欧珀移动通信有限公司 一种通信终端的载波聚合功能控制方法及通信终端
CN106855826B (zh) * 2015-12-08 2021-02-23 斑马智行网络(香港)有限公司 一种后台应用程序的控制方法及装置
CN106909447B (zh) * 2015-12-23 2019-11-15 北京金山安全软件有限公司 一种后台应用程序的处理方法、装置及终端
CN106909407B (zh) * 2015-12-23 2020-07-03 北京金山安全软件有限公司 一种后台应用程序的关闭方法、装置及终端
CN105653323B (zh) * 2015-12-28 2019-07-02 小米科技有限责任公司 应用程序管理方法及装置
CN105786520A (zh) * 2016-03-17 2016-07-20 北京百纳威尔科技有限公司 电子设备应用程序的管理方法和装置
CN105893146B (zh) * 2016-03-28 2020-01-10 北京小米移动软件有限公司 内存处理方法及装置
CN106537344A (zh) * 2016-03-30 2017-03-22 北京小米移动软件有限公司 一种应用程序调用管理的方法和装置
CN112882804A (zh) * 2016-08-17 2021-06-01 华为技术有限公司 一种启动应用的方法及装置
CN106293402B (zh) * 2016-08-22 2019-11-29 珠海市魅族科技有限公司 应用程序控制方法及其装置
CN107783833B (zh) * 2016-08-25 2020-04-28 华为技术有限公司 一种终端后台应用程序的管理方法及装置
CN106650430A (zh) * 2016-12-01 2017-05-10 惠州Tcl移动通信有限公司 一种基于移动终端的应用程序状态锁定控制方法及系统
CN107066288B (zh) * 2017-01-17 2020-06-26 北京光年无限科技有限公司 一种用于智能机器人的多模态交互方法及装置
CN107045443A (zh) * 2017-04-14 2017-08-15 北京安云世纪科技有限公司 后台进程控制方法、装置及智能终端
JP6470344B2 (ja) * 2017-04-28 2019-02-13 Kddi株式会社 制御装置、制御方法、及びコンピュータプログラム
CN107894917A (zh) * 2017-11-10 2018-04-10 深圳天珑无线科技有限公司 终端及其关闭后台应用程序的方法、存储装置
CN107911831B (zh) * 2017-11-16 2022-03-01 北京小米移动软件有限公司 提醒用户更换路由器的方法、装置、设备和存储介质
CN108363591A (zh) * 2018-01-25 2018-08-03 维沃移动通信有限公司 一种推送消息控制的方法及装置
CN108304525B (zh) * 2018-01-25 2022-02-11 创新先进技术有限公司 一种条件数据的确定方法及装置
CN110489171A (zh) * 2018-05-11 2019-11-22 珠海市魅族科技有限公司 移动终端控制方法、移动终端及存储介质
CN109117256A (zh) * 2018-07-12 2019-01-01 维沃移动通信有限公司 一种后台应用程序的管理方法及终端
CN109688618A (zh) * 2018-11-27 2019-04-26 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及存储介质
CN109725702A (zh) * 2018-12-28 2019-05-07 三星电子(中国)研发中心 一种基于ai预测的智能终端节能方法和设备
CN109862184A (zh) * 2019-01-28 2019-06-07 努比亚技术有限公司 终端及其资源管控方法、计算机可读存储介质
CN110069328B (zh) * 2019-03-25 2021-11-09 维沃移动通信有限公司 应用关闭方法及终端设备
CN110716799A (zh) * 2019-09-30 2020-01-21 深圳市九洲电器有限公司 一种应用程序管理方法及智能终端
US11416130B2 (en) * 2019-10-01 2022-08-16 Microsoft Technology Licensing, Llc Moving applications on multi-screen computing device
US11201962B2 (en) 2019-10-01 2021-12-14 Microsoft Technology Licensing, Llc Calling on a multi-display device
US11561587B2 (en) 2019-10-01 2023-01-24 Microsoft Technology Licensing, Llc Camera and flashlight operation in hinged device
CN113138892A (zh) * 2020-01-20 2021-07-20 青岛海尔多媒体有限公司 用于应用运行监控的方法及装置、设备
CN112162783B (zh) * 2020-09-27 2021-09-14 珠海格力电器股份有限公司 音乐播放应用保活处理方法、系统、存储介质及电子设备
CN115665311B (zh) * 2022-10-25 2024-02-06 北京鸿途信达科技股份有限公司 一种手机定时优化后台进程的系统优化方法
CN117667364B (zh) * 2024-02-02 2024-04-09 广东信聚丰科技股份有限公司 应用程序的管控方法及用户设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130074082A1 (en) * 2010-06-09 2013-03-21 Zte Corporation Control method and control device for releasing memory
US20140007106A1 (en) * 2012-07-02 2014-01-02 Arnold S. Weksler Display and Terminate Running Applications

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954045B2 (en) * 2006-09-29 2015-02-10 Qualcomm Incorporated Method and apparatus for managing resources at a wireless device
US8635630B2 (en) * 2010-10-25 2014-01-21 Microsoft Corporation Application lifetime management
CN103443770B (zh) * 2011-03-19 2017-12-12 富士通株式会社 终端装置、进程管理方法以及进程管理程序
US8886976B2 (en) * 2011-04-11 2014-11-11 Microsoft Corporation Management of background tasks
AU2012347871B2 (en) * 2011-12-06 2017-11-23 Domain Surgical Inc. System and method of controlling power delivery to a surgical instrument
US9319246B2 (en) * 2012-06-25 2016-04-19 Microsoft Technology Licensing, Llc Voice-over-internet protocol (VOIP) application platform
US8813177B2 (en) * 2012-07-12 2014-08-19 Microsoft Corporation Background application management
CN103914342A (zh) * 2013-01-06 2014-07-09 联想(北京)有限公司 一种电子设备程序控制方法、系统及电子设备
US9274832B2 (en) * 2013-02-07 2016-03-01 Htc Corporation Method and electronic device for thread scheduling
CN103164268B (zh) * 2013-04-02 2016-04-20 北京奇虎科技有限公司 系统优化方法及装置
CN103164229A (zh) * 2013-04-08 2013-06-19 北京奇虎科技有限公司 一种清理移动终端进程的方法及装置
CN103220427A (zh) * 2013-04-16 2013-07-24 广东欧珀移动通信有限公司 手机后台程序清理方法及手机
CN103902335A (zh) * 2014-03-12 2014-07-02 上海天奕达电子科技有限公司 一种后台程序清理的方法及其系统
US9690685B2 (en) * 2014-05-30 2017-06-27 Apple Inc. Performance management based on resource consumption
CN104239094B (zh) * 2014-08-29 2017-12-08 小米科技有限责任公司 后台应用程序的控制方法、装置及终端设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130074082A1 (en) * 2010-06-09 2013-03-21 Zte Corporation Control method and control device for releasing memory
US20140007106A1 (en) * 2012-07-02 2014-01-02 Arnold S. Weksler Display and Terminate Running Applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Effective Handling of Low Memory Scenarios in Android using Logs", M.Tech Dissertation Report(2013.06)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200006841A (ko) * 2018-07-11 2020-01-21 주식회사 케이티 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법
WO2022059978A1 (ko) * 2020-09-21 2022-03-24 삼성전자(주) 전자장치 및 그 제어방법

Also Published As

Publication number Publication date
CN104239094A (zh) 2014-12-24
RU2637474C2 (ru) 2017-12-04
MX356378B (es) 2018-05-25
JP2016538663A (ja) 2016-12-08
WO2016029642A1 (zh) 2016-03-03
BR112015008641A2 (pt) 2017-07-04
MX2015003748A (es) 2017-03-20
CN104239094B (zh) 2017-12-08
EP2993584B1 (en) 2018-03-21
US9588805B2 (en) 2017-03-07
EP2993584A1 (en) 2016-03-09
KR101706359B1 (ko) 2017-02-13
US20160062792A1 (en) 2016-03-03
JP6134074B2 (ja) 2017-05-24
RU2015113734A (ru) 2016-11-10

Similar Documents

Publication Publication Date Title
KR101706359B1 (ko) 백그라운드 애플리케이션을 제어하기 위한 방법 및 장치
US10282561B2 (en) Method and apparatus for managing application
CN105955765B (zh) 应用预加载方法及装置
EP3136793B1 (en) Method and apparatus for awakening electronic device
US20170063657A1 (en) Connection status prompting method and device
US20190235745A1 (en) Method and device for displaying descriptive information
US10216248B2 (en) Method and device for controlling power consumption
CN105912450B (zh) 应用的状态信息显示方法及装置
CN110262692B (zh) 一种触摸屏扫描方法、装置及介质
EP3076745A1 (en) Methods and apparatuses for controlling wireless access point
CN108629178B (zh) 应用程序的资源访问权限配置方法及装置
KR20180081638A (ko) 어플리케이션 프로그램 아이콘 관리 방법 및 장치
EP3232325B1 (en) Method and device for starting application interface
US9678868B2 (en) Method and device for optimizing memory
RU2632396C2 (ru) Способ и устройство для управления подключаемым модулем маршрутизатора
US20160349947A1 (en) Method and device for sending message
US20170220401A1 (en) Method, device, and computer-readable storage medium for calling a process
US20170316039A1 (en) Information acquisition method, device and system
US20170180968A1 (en) Method, apparatus and computer-readable medium for cellular data monitoring
US9740524B2 (en) Method and terminal device for executing application chain
US9703662B2 (en) Method for controlling plug-in by a router and the router thereof
CN112783636B (zh) 资源分配方法、装置及存储介质
CN106909496B (zh) 信息显示方法及装置
CN115729770A (zh) 界面状态检测方法、装置和用于检测界面状态的装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant