KR102085473B1 - 애플리케이션 제안 특징 - Google Patents

애플리케이션 제안 특징 Download PDF

Info

Publication number
KR102085473B1
KR102085473B1 KR1020187035858A KR20187035858A KR102085473B1 KR 102085473 B1 KR102085473 B1 KR 102085473B1 KR 1020187035858 A KR1020187035858 A KR 1020187035858A KR 20187035858 A KR20187035858 A KR 20187035858A KR 102085473 B1 KR102085473 B1 KR 102085473B1
Authority
KR
South Korea
Prior art keywords
application
applications
list
utility
electronic device
Prior art date
Application number
KR1020187035858A
Other languages
English (en)
Other versions
KR20180135983A (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 KR20180135983A publication Critical patent/KR20180135983A/ko
Application granted granted Critical
Publication of KR102085473B1 publication Critical patent/KR102085473B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 출원은, 모바일 디바이스로 하여금 애플리케이션들에 유틸리티 값들을 할당하고 그 후에 사용자가 실행할 애플리케이션들을 제안할 수 있게 하는, 모바일 디바이스를 위한 특징들에 관한 것이다. 제안된 애플리케이션은 모바일 디바이스 내의 소프트웨어에 의해 유틸리티를 할당받은 애플리케이션들의 목록으로부터 도출될 수 있다. 애플리케이션들의 목록 중 개별 애플리케이션들의 유틸리티 할당은 이벤트의 발생, 환경 변화, 또는 빈번한 애플리케이션 사용의 기간에 기초하여 수행될 수 있다. 일부 실시예들에서 특정 애플리케이션들에 유틸리티를 보다 정확하게 할당하기 위해 피드백 메커니즘이 제공된다. 피드백 메커니즘은 소정 애플리케이션들에 대해 제안의 기간 동안 사용자가 무엇을 하는지를 추적하고, 그 후에 제안의 기간 동안 사용자가 어떤 애플리케이션들을 선택하는지에 기초하여 애플리케이션들의 유틸리티를 수정할 수 있다.

Description

애플리케이션 제안 특징{APPLICATION SUGGESTION FEATURES}
기술된 실시예들은 일반적으로 소프트웨어 애플리케이션 제안 특징들에 관한 것이다. 보다 상세하게는, 본 실시예들은 다양한 학습 알고리즘들에 기초하여 애플리케이션들의 순위를 매기고 제안하는 것에 관한 것이다.
모바일 컴퓨팅 디바이스들은 다른 것들 중에서도, 소셜 네트워킹, 이메일, 작업 관리, 및 엔터테인먼트에 관련된 다양한 애플리케이션들을 사용자에게 제공해왔다. 사용자가 다운로드할 수 있는 대다수의 애플리케이션들을 고려해볼 때, 사용자는 잠재적으로 디바이스의 저장 용량에 따라 거의 무한한 수의 애플리케이션들로 디바이스를 채울 수 있다. 그러나, 애플리케이션들을 다운로드하고 설치하려는 사용자의 의향을 넘어서는, 디바이스는 디바이스 상에 저장된 애플리케이션들을 관리함에 있어서 사용자에게 도움이 되지 않는다. 시간이 지남에 따라, 사용자가 디바이스 상의 임의의 사용하지 않는 애플리케이션들을 능동적으로 삭제하거나 달리 배열하고 있지 않는 경우, 사용자는 사용자가 주어진 시간에 열기를 원하는 애플리케이션을 찾기 위해 과다한 애플리케이션들을 파헤치게 될 수 있고, 이는 무체계로 이어진다.
체계성의 결여는, 많은 애플리케이션들이 더 친숙한 사용자 경험을 용이하게 하기 위한 것이라는 사실에도 불구하고 사용자를 좌절시킬 수 있다. 또한, 특히 디바이스 개발자들은 종종 사용자의 의사 결정 능력을 없애는 것을 피하고 싶어하므로, 사용자가 애플리케이션들을 선택할 때 행하는 선택들에 영향을 주기 위해 디바이스에 의해 제공되는 임의의 도움은 통상적으로 제한될 수 있다. 이러한 난관은, 사용자가 디바이스의 소유 기간에 걸쳐 개인적으로 변화하고 애플리케이션들의 제시가 사용자와 함께 변화하지 못함에 따라, 악화된다. 예를 들어, 데스크톱 또는 홈 스크린을 포함하는 디바이스들에서, 사용자는 전형적으로 특정 애플리케이션들에 대한 임의의 변화하는 사용 빈도와 일치하기 위해 홈 스크린을 수동으로 수정해야 한다. 또한, 많은 디바이스들이 사용자의 습관들 및 활동들에 대한 직접적인 증거임에도 불구하고, 디바이스들은 종종, 사용자가 어떻게 매일 디바이스를 이용하고 있는지를 학습하고 그에 적응하는 데 실패할 수 있다. 예를 들어, 사용자는 직업을 바꾸거나, 아이들을 갖거나, 또는 단지 사용자의 일상 생활에 영향을 미칠 수 있는 새로운 디바이스 또는 소프트웨어를 구입할 수 있다. 또한, 개발자들은 종종, 디바이스들 및 애플리케이션들로 하여금 사용자 경험을 향상시키기 위한 새로운 소프트웨어를 광고할 수 있게 한다. 그러나, 광고주에 의해 촉진되는 것은 전형적으로, 특정 사용자에게 맞춤화된 제품보다는 사용자 그룹을 위한 제품에 관련될 수 있다. 이러한 점에서, 소프트웨어 및 디바이스 개발자들은, 디바이스의 수명 동안 사용자와 협력하거나 디바이스의 각각의 소유자에게 각각의 디바이스를 적응시킬 기회를 활용하지 않음으로써, 퇴보하고 있을 수 있다.
본 명세서는 다양한 학습 알고리즘들에 기초하여 애플리케이션들의 순위를 매기고 사용자에게 제안하는 것에 관련된 다양한 실시예들을 기술한다. 본 명세서에 기술된 실시예들은 모바일 디바이스의 사용자에게 애플리케이션을 제안하기 위한 방법을 포함한다. 방법은 모바일 디바이스 상에 저장되는 애플리케이션들의 목록을 수신하는 단계를 포함할 수 있다. 방법은 애플리케이션들의 목록으로부터의 애플리케이션에 대한 유틸리티를 결정하는 단계를 더 포함할 수 있다. 또한, 방법은, 애플리케이션들의 목록 중 최고 유틸리티 애플리케이션이 모바일 디바이스의 사용자 인터페이스 상에 나타나게 하는 단계를 포함할 수 있다.
일부 실시예들에서, 비일시적 컴퓨터 판독가능 저장 매체가 제시된다. 비일시적 컴퓨터 판독가능 저장 매체는, 컴퓨팅 디바이스에 포함된 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금, 애플리케이션들의 목록을 생성하라는 커맨드를 수신하게 하는 명령어들을 저장할 수 있다. 명령어들은 커맨드의 상황에 기초하여 애플리케이션들의 목록을 생성하는 단계를 더 포함할 수 있다. 또한, 명령어들은, 애플리케이션들의 목록 내의 각각의 애플리케이션에 유틸리티 값을 할당하기 위해 예측 엔진에 애플리케이션들의 목록을 전송하고, 순서화된 애플리케이션들의 목록이 생성되게 하는 단계를 포함할 수 있다.
다른 실시예들에서, 애플리케이션들에 유틸리티 값들을 할당하도록 구성된 시스템이 제시된다. 시스템은 프로세서, 그래픽 사용자 인터페이스(GUI), 및 메모리를 포함할 수 있다. 메모리는, 프로세서에 의해 실행될 때, 시스템으로 하여금 유틸리티가 할당될 애플리케이션들의 목록을 생성하게 하는 명령어들을 저장하도록 구성될 수 있다. 명령어들은 또한 시스템으로 하여금, 시스템의 상황 또는 시스템과 연관된 상황에 기초하여 애플리케이션들의 목록 내의 각각의 애플리케이션에 대해 유틸리티를 할당하게 할 수 있다. 또한, 명령어들은 시스템으로 하여금 추가로, GUI에서, 애플리케이션들의 목록 중 최고 유틸리티 애플리케이션과 연관된 아이콘을 표시하게 할 수 있다.
실시예들의 다른 양태들 및 이점들은 설명되는 실시예들의 원리들을 예로서 도시하는 첨부 도면들과 함께 취해지는 하기의 상세한 설명으로부터 명백하게 될 것이다.
개시내용은 유사한 도면 부호가 유사한 구조적 요소들을 지시하는 첨부 도면과 관련하여 하기의 상세한 설명에 의해 쉽게 이해될 것이다.
도 1a 및 도 1b는 하나 이상의 제안된 애플리케이션 아이콘을 표시하는 모바일 디바이스의 정면도를 도시한다.
도 2는 본 명세서에 기술된 일부 실시예들에 따른, 모바일 디바이스의 아키텍처를 도시한다.
도 3은 본 명세서에 기술된 일부 실시예들에 따른, 애플리케이션 개시 서비스를 동작시키기 위한 방법을 도시한다.
도 4는 본 명세서에 기술된 일부 실시예들에 따른, 예측 엔진을 동작시키기 위한 방법을 도시한다.
도 5는 본 명세서에 기술된 일부 실시예들에 따른, 예측 엔진을 사용하여 애플리케이션들의 목록 내의 하나 이상의 애플리케이션의 유틸리티를 결정하기 위한 방법을 도시한다.
도 6은 이벤트의 발생에 기초하여 애플리케이션의 유틸리티를 결정하기 위한 방법을 도시한다.
도 7은 환경 변화에 기초하여 애플리케이션의 유틸리티를 결정하는 방법을 도시한다.
도 8은 빈번한 애플리케이션 사용의 기간에 기초하여 애플리케이션의 유틸리티를 결정하기 위한 방법을 도시한다.
도 9a 내지 도 9c는 본 명세서에 기술된 일부 실시예들에 따른, 수행되고 있는 유틸리티 평가의 유형에 따라 애플리케이션에 대한 유틸리티의 값의 시간에 따른 변화를 나타내는 상이한 플롯들을 도시한다.
도 10은 본 명세서에 기술된 일부 실시예들에 따른, 애플리케이션의 유틸리티를 리셋하기 위한 방법을 도시한다.
도 11은 본 명세서에 기술된 일부 실시예들에 따른, 적격성 타이머(eligibility timer)의 리셋을 도시한다.
도 12는 일부 실시예들에 따른, 본 명세서에 기술된 다양한 컴포넌트들을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스의 상세도를 도시한다.
본 출원에 따른 방법들 및 장치들의 대표적인 응용예들이 이 섹션에 기술된다. 이 예들은 단지 맥락을 부가하고 기술된 실시예들의 이해를 돕기 위하여 제공된다. 따라서, 기술된 실시예들이 이들의 구체적인 상세한 설명의 일부 또는 전부 없이도 실시될 수 있다는 것이 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에게 명백할 것이다. 다른 경우들에서, 공지된 공정 단계들은 기술된 실시예들을 불필요하게 불명료하게 하지 않기 위해 상세히 기술되지 않았다. 다른 응용예들도 가능하며, 따라서 이하의 예들을 제한하는 것으로 간주되어서는 안 된다.
하기의 상세한 설명에서는, 설명의 일부를 형성하고, 기술된 실시예들에 따른 특정 실시예들을 예시로서 도시하는 첨부 도면들에 대한 참조가 행해진다. 이러한 실시예들은 통상의 기술자들이 기술된 실시예들을 실시할 수 있을 정도로 충분히 상세히 기술되어 있지만, 이 예시들이 제한하는 것이 아니고, 따라서 다른 실시예들이 사용될 수 있으며, 기술된 실시예들의 기술적 사상 및 범주를 벗어남이 없이 변경들이 행해질 수 있음이 이해된다.
본 명세서에 기술된 실시예들은, 모바일 디바이스가 애플리케이션들에 유틸리티 값들을 할당하고 모바일 디바이스의 수명에 걸쳐 사용자가 실행할 애플리케이션들을 제안할 수 있게 하는, 모바일 디바이스를 위한 특징을 제시한다. 제안된 애플리케이션들은, 제안된 애플리케이션이 특정 시점들에서 사용자의 눈에 띌 수 있게 하는 방식으로 모바일 디바이스의 디스플레이의 일부분에 나타날 수 있다. 예를 들어, 제안된 애플리케이션에 대한 아이콘은, 모바일 디바이스가 잠기거나, 시작되거나, 유휴 스크린을 표시할 때에만 모바일 디바이스의 디스플레이 상에 나타나도록 구성될 수 있다. 제안된 애플리케이션은, 모바일 디바이스 내의 소프트웨어에 의해 유틸리티가 할당된 애플리케이션들의 목록으로부터 도출될 수 있다. 애플리케이션들의 목록은 원래 공장-설정 애플리케이션들의 목록일 수 있지만, 시간이 지나면서 사용자가 디바이스 상에 애플리케이션들을 설치 및 삭제하거나 달리 애플리케이션들을 사용함에 따라, 애플리케이션들의 목록은 변화할 수 있다. 애플리케이션들은 리마인더, 캘린더, 인터넷, 원격 디바이스, 또는 소셜 네트워킹 애플리케이션, 또는 임의의 다른 적합한 애플리케이션과 같은, 모바일 디바이스에 의해 사용하기 위한 임의의 적합한 애플리케이션을 포함할 수 있다.
애플리케이션들의 목록 내의 개별 애플리케이션들에 유틸리티들을 할당하는 것은 다양한 방법으로 수행될 수 있다. 애플리케이션이 유틸리티를 할당받을 수 있는 하나의 방법은, 애플리케이션의 유틸리티(예를 들어, 양의 실수)가, 애플리케이션의 사용에 관련되거나 이를 요구하는 특정 이벤트의 발생을 기초로 하는 것이다. 이벤트가 다가오고 있는 경우, 특정 애플리케이션에 대한 유틸리티는 사용자가 애플리케이션에 더 관심을 갖게 될 때 그리고 이벤트가 가까워질 때 시간에 따라 증가할 수 있다. 이벤트 동안에 애플리케이션은 최고 유틸리티를 받을 수 있고, 그 후에, 유틸리티는 더 낮은 유틸리티로 즉시 떨어지거나 시간이 지남에 따라 점차 떨어질 수 있다. 애플리케이션이 유틸리티를 할당받을 수 있는 다른 방법은, 유틸리티가, 애플리케이션에 관련되거나 애플리케이션의 사용을 요구하는 환경 변화를 기초로 하는 것이다. 환경 변화가 발생하기 전에, 애플리케이션에 대한 유틸리티는 최저 유틸리티일 수 있지만, 환경 변화가 발생할 때 애플리케이션은 더 높은 유틸리티를 받을 수 있다. 환경 변화가 발생한 후에, 애플리케이션에 대한 유틸리티는, 환경 변화가 발생한 후에 사용자가 애플리케이션에 관심이 없을 수 있으므로 시간이 지남에 따라 점차 감소할 수 있다. 애플리케이션이 유틸리티를 할당받을 수 있는 또 다른 방법은, 유틸리티가, 유틸리티를 할당받는 애플리케이션에 대한 빈번한 사용의 기간을 기초로 하는 것이다. 빈번한 사용의 기간 이전에, 애플리케이션의 유틸리티는 0이거나, 최저 유틸리티를 나타내는 다른 값일 수 있다. 그러나, 빈번한 사용의 기간이 시작되는 경우, 애플리케이션에 대한 유틸리티는 빈번한 사용의 전체 기간 동안 증가될 수 있다. 빈번한 사용의 기간이 종료되는 경우, 애플리케이션에 대한 유틸리티는 즉시 감소되거나 시간이 지남에 따라 점차 감소할 수 있다. 소정 유틸리티 값들에 대한 시간에 따른 변화는 특정 애플리케이션의 사용자의 사용 이력에 관련된 확률들에 기초할 수 있다. 또한, 적격성 타이머가 리셋되거나 소정 값에 도달할 때까지 소정 애플리케이션들이 현저한 유틸리티로 되돌아가는 것을 방지하기 위한, 적격성 타이머가 포함될 수 있다.
또한 일부 실시예들에서, 특정 애플리케이션들에 유틸리티들을 보다 정확하게 할당하기 위한 피드백 메커니즘이 제공된다. 피드백 메커니즘은, 애플리케이션들이 사용자에게 제시되고 있는 기간 동안 사용자가 무엇을 하는지 추적할 수 있다. 예를 들어, 사용자가 특정 시간에 첫 번째로 높은 유틸리티 애플리케이션 대신에 두 번째로 높은 유틸리티 애플리케이션을 선택하는 경우, 두 번째로 높은 유틸리티 애플리케이션의 유틸리티를 증가시키기 위해 두 번째로 높은 유틸리티 애플리케이션에 가중치가 주어질 수 있다. 또한, 이전의 첫 번째로 높은 유틸리티 애플리케이션의 유틸리티를 감소시키기 위해 이전의 첫 번째로 높은 유틸리티 애플리케이션에 가중치가 주어질 수 있다. 이러한 방식으로, 다음 번에 이들 애플리케이션이 특정 시간에 사용자에게 제안될 때, 하나의 애플리케이션은 다른 애플리케이션보다 더 많은 가중치를 가질 수 있고 따라서 사용자의 이전 선택들 및 임의의 미래 선택들에 적응될 수 있다. 임의의 주어진 시간에 사용자에게 더 나은 애플리케이션들을 제안하도록 애플리케이션들의 목록을 더 최적화하기 위해, 다른 피드백 및 학습 알고리즘들이 사용될 수 있다.
이러한 실시예들 및 다른 실시예들이 도 1 내지 도 12를 참조하여 아래에 논의되지만, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자는 이러한 도면들과 관련하여 본 명세서에서 제시되는 상세한 설명이 설명의 목적을 위한 것일 뿐이며, 제한적인 것으로 해석되지 않아야 한다는 것을 쉽게 이해할 것이다.
도 1a 및 도 1b는 하나 이상의 애플리케이션 아이콘(104)을 표시하는 모바일 디바이스(102)의 정면도를 도시한다. 애플리케이션 아이콘들(104)은 모바일 디바이스(102)의 스크린(110) 주변에 임의의 적합한 구성으로 배열될 수 있고, 영구적 아이콘(106)과 동시에 표시될 수 있다. 도 1a에서, 애플리케이션 아이콘들(104)은 스크린(110)의 코너들에 배열되고, 본 명세서에서 논의된 일부 실시예들에 따라 스크린(110) 내의 위치들을 변경할 수 있다. 도 1b에 도시된 바와 같이, 숨겨진 부분(108)은 애플리케이션 아이콘들(104)을 드러내기 위해 사용자에 의해 토글링될 수 있다. 숨겨진 부분(108)은 본 명세서에 기술된 일부 실시예들에 따른 애플리케이션 아이콘들(104)로 채워질 수 있고, 애플리케이션 아이콘들(104)은 사용자가 숨겨진 부분(108)을 토글링하기 위해 스크린(110)을 가로질러 손가락을 드래그한 이후에만 스크린(110) 상에 제시될 수 있다. 애플리케이션 아이콘들(104)은 모바일 디바이스(102)의 개시 서비스, 예측 엔진, 및/또는 사용자 인터페이스 서비스로부터 부분적으로 비롯될 수 있다.
도 2는 모바일 디바이스(102)의 아키텍처를 도시한다. 특히, 모바일 디바이스(102)는, 임의의 주어진 시간에 모바일 디바이스(102) 상에 저장된 디바이스 애플리케이션들(212)의 목록을 만들도록 구성되는 애플리케이션 개시 서비스(204)를 포함한다. 애플리케이션 개시 서비스(204)는 모바일 디바이스(102) 상의 각각의 디바이스 애플리케이션(212)과 연관된 애플리케이션 식별자들 또는 애플리케이션들의 목록을 검색하고, 애플리케이션 개시 서비스(204)에 의해 배포될 수 있는 목록 내에 모든 식별자들을 컴파일하도록 구성된다. 애플리케이션 개시 서비스(204)는 모바일 디바이스(102)의 임의의 적합한 메커니즘에 의해 검출된 상황에 기초하여 애플리케이션들의 목록의 검색을 개시할 수 있다. 그러한 메커니즘들의 예들은 시계, 근접 센서, 글로벌 포지셔닝 시스템, 통신 디바이스, 애플리케이션, 이미지 디바이스, 오디오 디바이스 등을 포함할 수 있다. 예측 엔진(206)에는, 애플리케이션 개시 서비스(204)에 의해 컴파일된 애플리케이션들의 목록이 제공될 수 있다. 예측 엔진(206)은 모바일 디바이스(102) 및 디바이스 애플리케이션들(212)의 사용에 관련된 분석 데이터에 따라 식별자들의 목록을 더 구성할 수 있다. 분석 데이터는 디바이스 애플리케이션들(212) 및/또는 모바일 디바이스(102)에 관련된 임의의 적합한 데이터를 포함할 수 있다. 예를 들어, 분석 데이터는 디바이스 애플리케이션(212)의 사용의 시간 및 길이, 모바일 디바이스(102)의 사용의 시간 및 길이, 디바이스 애플리케이션들 및/또는 모바일 디바이스(102)의 사용 이전에, 이후에, 또는 그 동안에 수행되는 기능들, 애플리케이션들 사용에 관련된 임의의 적합한 데이터의, 전술한 분석 데이터의 시간에 따른 변화를 포함할 수 있다. 본 명세서에서 추가로 논의되는 바와 같이, 예측 엔진(206)은 디바이스 애플리케이션들에 유틸리티 값들을 할당하고 그 후에 애플리케이션들의 목록을 재구성하기 위해 분석 데이터를 사용한다. 분석 데이터에 따라 유틸리티가 할당된 애플리케이션들의 목록을 컴파일할 시, 예측 엔진(206)은 유틸리티에 따라 애플리케이션들의 순위를 매기거나 순서화하고, 모바일 디바이스(102) 상의 디바이스 애플리케이션들(212) 또는 다른 서비스들에 이용가능한 애플리케이션들의 순위 목록을 전송하거나 그렇지 않으면 만들 수 있다.
그래픽 사용자 인터페이스(210) 상의 디바이스 애플리케이션들(212)의 제시를 관리하기 위한 사용자 인터페이스 서비스(208)가 도 2에서 제공된다. 특히, 사용자 인터페이스 서비스는 예측 엔진(206)으로부터 애플리케이션들의 순위 목록을 수신하고, 그래픽 사용자 인터페이스(210)에서 애플리케이션들이 어떻게 표시될 것인지를 결정할 수 있다. 사용자 인터페이스 서비스(208)는 모바일 디바이스(102) 상에 저장된 애플리케이션들에 관련된 다양한 아이콘들 또는 그래픽들을 저장하거나 액세스하도록 구성될 수 있다. 그래픽들은 각각의 실시예에 따라 정적 또는 동적일 수 있다. 일부 실시예들에서, 애플리케이션 식별자는 특히, 디바이스 애플리케이션들(212)과 연관된 그래픽이, 다수의 디바이스 애플리케이션들(212)에 관련되는 다양한 텍스트들 또는 그림들을 포함하도록 허용하는 다수의 디바이스 애플리케이션들(212)을 식별할 수 있다. 다른 실시예들에서, 애플리케이션 식별자는 단일 디바이스 애플리케이션(212)을 식별할 수 있고, 다양한 텍스트들 또는 그림들, 또는 단지 단일 디바이스 애플리케이션(212)에 관련되는 단일 그림 또는 문자들을 포함할 수 있다. 예를 들어, 하나의 애플리케이션 아이콘(104)만이 표시되는 경우, 애플리케이션 아이콘(104)은 최고 유틸리티 디바이스 애플리케이션(212)를 지칭하거나, 또는 애플리케이션 식별자들의 목록 상의 둘 이상의 디바이스 애플리케이션(212)을 지칭할 수 있다.
도 3은 본 명세서에 기술된 일부 실시예들에 따른, 애플리케이션 개시 서비스(204)를 동작시키기 위한 방법(300)을 도시한다. 특히, 방법(300)은, 애플리케이션 개시 서비스(204)에 의해, 미리결정된 인터페이스가 표시되고 있다는 통지를 수신하는 단계(302)를 포함한다. 미리결정된 인터페이스는 애플리케이션 개시 서비스(204)의 동작들을 개시하도록 지정되는 디스플레이이다. 미리결정된 인터페이스는, 데스크톱, 잠금 스크린, 홈 스크린, 애플리케이션 스크린, 또는 본 명세서에 기술된 실시예들에 따른 애플리케이션 아이콘(104)을 표시하기 위한 임의의 적합하게 배열된 스크린일 수 있다. 또한, 단계(302)는 모바일 디바이스(102)의 사용자에 의해 개시된 동작 또는 모바일 디바이스(102)의 기능으로부터 도출된 동작에 기초할 수 있다. 방법(300)은, 애플리케이션 개시 서비스(204)에 의해, 통지의 상황에 기초하여 애플리케이션들의 목록을 결정하는 단계(304)를 더 포함할 수 있다. 애플리케이션들의 목록은, 본 명세서에서 논의된 바와 같이, 모바일 디바이스(102)에 이용가능한 임의의 수의 애플리케이션들을 지칭할 수 있다. 애플리케이션들의 목록이 기초로 할 수 있는 상황들은 사용자 또는 모바일 디바이스(102)에 의해 생성된 것들에 한정되지 않는다. 일부 실시예들에서, 사용자의 움직임, 또는 사용자에 의해 생성된 청각적 또는 시각적 자극들은 애플리케이션들의 목록이 기초로 할 수 있는 상황들일 수 있다. 예를 들어, 사용자는 애플리케이션들의 목록이 기초로 할 수 있는 자극들을 생성하기 위해 커맨드를 말하거나 모바일 디바이스(102)의 카메라를 조준할 수 있다. 다른 실시예들에서, 모바일 디바이스(102)는 모바일 디바이스(102)의 소프트웨어 또는 하드웨어 메커니즘을 통해 애플리케이션들의 목록의 기초가 되는 상황들을 생성한다. 예를 들어, 모바일 디바이스(102)는 애플리케이션들의 목록의 생성에 대한 기초가 될 수 있는 자동 업데이트들을 모바일 디바이스(102) 내의 무선 통신 디바이스를 통해 수신할 수 있다.
일부 실시예들에서 애플리케이션들의 목록에 대한 기초를 형성하는 상황은, 모바일 디바이스(102) 상의 애플리케이션들의 전부 또는 일부가 애플리케이션들의 목록 상에 포함될 것인지 여부를 결정할 것이다. 일부 실시예들에서, 상황의 발생시 가장 관련있는 애플리케이션들을 사용자에게 제공하기 위하여 애플리케이션들의 목록에 필터가 적용될 수 있다. 상황들의 유형들은 지리, 시간, 스케줄, 사용, 외부 디바이스들, 날씨, 발신 또는 수신 신호들, 또는 소프트웨어 애플리케이션에 관련될 수 있는 임의의 적합한 사건 또는 발생에 관련된 것들일 수 있다. 예를 들어, Wi-Fi가 있는 영역으로 사용자가 모바일 디바이스(102)를 가져오는 경우, 모바일 디바이스(102)는 이 사건을, 애플리케이션들의 목록의 결정의 기초가 되는 상황으로서 분류할 수 있다.
방법(300)은, 애플리케이션 개시 서비스(204)에 의해, 예측 엔진(206)에 애플리케이션들의 목록을 전송하는 단계(306)를 더 포함할 수 있다. 본 명세서에서 추가로 논의되는 바와 같이, 상기 예측 엔진(206)은 사용자의 특정 행동들을 예측하기 위해 모바일 디바이스(102)의 사용에 관련된 분석 데이터를 이용할 수 있다. 이들 행동은 사용자가 애플리케이션을 열고 닫거나, 또는 모바일 디바이스(102)의 기능을 달리 실행할 때를 포함할 수 있다. 예측 엔진(206)은 사용자가 모바일 디바이스(102)를 처음 턴 온시킬 때부터 분석 데이터를 저장하기 시작할 수 있다. 일부 실시예들에서, 분석 데이터는 모바일 디바이스(102) 상에 저장되거나, 외부 디바이스(예를 들어, 클라우드 저장장치) 상에 저장된다. 다른 실시예들에서, 분석 데이터는 미리결정된 기간 동안 일시적으로 저장되고, 새로운 분석 데이터가 예측 엔진(206)에 의해 생성될 때 대체된다.
단계(308)에서, 애플리케이션 개시 서비스(204)는 애플리케이션들의 순서화된 목록이 예측 엔진(206)에 의해 생성되게 할 수 있다. 예측 엔진(206)은 각각의 애플리케이션에 유틸리티들(또한 본 명세서에서 유틸리티 값들로 지칭됨)을 할당함으로써 애플리케이션들 또는 애플리케이션들의 목록의 애플리케이션 식별자들에 대한 우선순위들을 관리한다. 각각의 애플리케이션은 예측 엔진(206)에 전송되는 애플리케이션들의 목록의 결과로서 유틸리티 또는 가중치를 수신한다. 유틸리티들은 분석 데이터 및 단계(304)로부터의 통지의 상황에 기초하며, 이는 부분적으로 상황이 예측 엔진(206)에 전송된 애플리케이션들의 원래 목록의 생성에 대한 기초이기 때문이다. 분석 데이터는 예측 엔진(206)으로 하여금 사용자가 실행하는데 가장 관심이 있을 수 있는 애플리케이션들을 예측하게 함으로써, 각각의 애플리케이션에 대한 유틸리티들에 대한 기초를 제공한다. 일부 실시예들에서, 유틸리티는 0과 1 사이의 값이며, 여기서 1은 주어진 시간에서 사용자에게 제안할 최선의 애플리케이션을 나타내고, 0은 제안할 최악의 애플리케이션을 나타낸다. 이들 유틸리티는, 사용자가 호감도를 나타내기 위해 분석할 수 있는 임의의 적합한 값, 메트릭, 또는 문자들로 스케일링될 수 있다. 애플리케이션들의 목록이 제공되는 경우, 예측 엔진(206)은 애플리케이션들의 목록으로부터 애플리케이션들의 총수를 취하고, 총수를 각각의 애플리케이션의 유틸리티들에 대한 계산 내에 통합시킬 수 있다. 예를 들어, 애플리케이션들의 목록이 총 5개의 애플리케이션들을 포함하는 경우, 유틸리티들의 총수는 5일 것이다. 유틸리티들은 일부 실시예들에서 0 내지 1이기 때문에, 유틸리티들 중 적어도 하나는 0일 수 있고, 나머지는 1/4의 배수일 것이다. 이러한 방식으로, 애플리케이션들의 목록이 총 5개의 애플리케이션들을 포함하는 경우, 최고 유틸리티부터 최저 유틸리티까지의 유틸리티들의 순서는 1, 3/4, 2/4, 1/4, 및 0일 수 있다. 또한, 일부 실시예들에서, 유틸리티들은 1부터, 애플리케이션들의 목록 내의 애플리케이션들의 총수(예를 들어, 5)까지일 수 있다. 유틸리티들은 또한 점수 또는 유틸리티를 나타내기 위한 숫자들 또는 문자들의 임의의 다른 적합한 세트일 수 있다.
소정 인스턴스들에서, 애플리케이션들의 목록 중 하나의 애플리케이션은, 그 애플리케이션이 애플리케이션들의 목록의 생성을 야기한 상황과 가장 연관되기 때문에, 유틸리티가 가장 높게 할당될 수 있다. 사용자가 소정 상황이 일어나는 시간의 적어도 대부분에서 특정 애플리케이션을 여는 경우, 그 특정 애플리케이션은 애플리케이션들의 목록에 포함된 임의의 다른 애플리케이션들 중에서 최고 유틸리티를 할당받을 수 있다. 사용자가 소정 상황의 시간에 둘 이상의 애플리케이션을 열려는 경향이 있는 경우, 예측 엔진(206)은 특정 애플리케이션에 대한 유틸리티를 결정할 때 다른 인자들을 고려할 수 있다. 다른 인자들은 모바일 디바이스(102)에 저장된 정보, 또는 모바일 디바이스(102)의 외부에 있지만 어떤 방식으로 상황에 관련되고 모바일 디바이스(102)에 의해 발견가능한 데이터를 포함할 수 있다. 예를 들어, 모바일 디바이스(102)의 사용자는, 사용자가 직장에 도착하는 평상시(예를 들어, 8:00 AM) 이전에 뉴스 애플리케이션 및 클라우드 저장 애플리케이션을 여는 습관을 가질 수 있다. 또한, 모바일 디바이스(102) 상의 캘린더 애플리케이션이 사용자가 직장에 보통 도착하는 시간에 미팅이 예약되어 있다고 나타내는 경우, 사용자는 전형적으로 뉴스 애플리케이션을 열지 않을 수 있다. 이 시나리오에서, 예측 엔진(206)은 사용자의 작업 스케줄 및 모바일 디바이스(102)의 캘린더 애플리케이션 둘 모두에 기초하여, 뉴스 애플리케이션보다 클라우드 저장 애플리케이션에 더 높은 유틸리티 값을 할당할 수 있다. 명확하게 하기 위해, 다른 예에서, 사용자는 전형적으로 매주 토요일 저녁 자신의 주소록에서 연락처를 호출하고, 이후에 레스토랑 애플리케이션 및 뱅킹 애플리케이션 둘 모두를 확인할 수 있다. 그러나, 사용자가 토요일 저녁에 주소록에서 연락처를 호출하지 않는 경우, 사용자는 독서 애플리케이션(reading application)을 연다. 이 시나리오에서, 예측 엔진(206)은 전술한 애플리케이션들의 목록을 수신하고 임의의 토요일 저녁에 또는 그 이전에 주소록, 레스토랑 애플리케이션, 뱅킹 애플리케이션, 및 독서 애플리케이션에 대한 유틸리티를 결정할 수 있다. 예측 엔진(206)은 토요일 저녁에 가장 자주 사용된 애플리케이션을 나타내기 위해 분석 데이터에 따라 주소록 또는 독서 애플리케이션에 유틸리티 값을 가장 높게 할당할 수 있다. 그 후에, 주소록이 표시되고 사용자가 주소록을 선택하는 경우, 예측 엔진(206)은 유사한 분석 데이터에 기초하여 레스토랑 애플리케이션 및/또는 뱅킹 애플리케이션에 유틸리티 값을 할당할 수 있다.
방법(300)은, 애플리케이션 개시 서비스(204)에 의해, 애플리케이션들의 순서화된 목록 중 제1 애플리케이션이 미리결정된 인터페이스에서 아이콘으로 나타나게 하는 단계(310)를 포함할 수 있다. 본 명세서에서 논의된 바와 같이, 하나 이상의 애플리케이션 아이콘(104)이 미리결정된 스크린 상에 표시될 수 있다. 이들 애플리케이션 아이콘(104)은, 본 명세서에서 논의된 유틸리티들에 기초하여 특정 시간에 사용자에게 관심 대상인 것으로 결정된 애플리케이션들을 나타낸다. 애플리케이션 아이콘들(104)은 애플리케이션들의 순서화된 목록 상의 모든 애플리케이션들 중에서 최고 유틸리티들을 갖는 하나 이상의 애플리케이션에 관한 것일 수 있다. 소정 시간에 사용자에게 이들 애플리케이션 아이콘(104)을 제공함으로써, 사용자는 다른 애플리케이션들 또는 스크린들을 검색할 필요 없이 특정 시간에 그들이 가장 관심있는 애플리케이션으로 빠르게 내비게이션할 수 있게 될 것이다.
도 4는 본 명세서에 기술된 일부 실시예들에 따른, 예측 엔진(206)을 동작시키기 위한 방법(400)을 도시한다. 방법(400)은 본 명세서에 기술된 실시예들 중 임의의 것에 따라 수정 및 배열될 수 있다. 단계(402)에서, 예측 엔진(206)은 애플리케이션 개시 서비스(204)로부터 애플리케이션들의 목록을 수신한다. 애플리케이션들의 목록 내의 애플리케이션들의 순서는 단계(404)에서 결정된다. 단계(406)에서, 애플리케이션들의 목록의 순서화가 완료되면, 예측 엔진(206)은 애플리케이션들의 순서화된 목록을 사용자 인터페이스 서비스(208)에 전송한다. 일부 실시예들에서, 애플리케이션들의 순서화된 목록 내의 최고 유틸리티 애플리케이션들 중 하나 이상만이 사용자 인터페이스 서비스(208)에 전송된다. 그 후에, 단계(408)에서, 적어도 하나의 애플리케이션은 예측 엔진(206)에 의해 미리결정된 인터페이스에서 아이콘으로 나타나게 된다.
도 5는 본 명세서에 기술된 일부 실시예들에 따른, 예측 엔진(206)을 사용하여 애플리케이션들의 목록 내의 하나 이상의 애플리케이션에 유틸리티를 할당하기 위한 방법(500)을 도시한다. 특히, 도 5는 모바일 디바이스(102) 상의 애플리케이션에 관련될 수 있는 소정 상황들에 따라 애플리케이션이 유틸리티를 할당받는 다양한 방법들을 제시한다. 단계(502)에서, 예측 엔진(206)은 애플리케이션 개시 서비스(204)로부터 애플리케이션들의 목록을 수신한다. 단계(504)에서, 예측 엔진(206)은 애플리케이션들의 목록 내의 첫 번째 애플리케이션을 현재 애플리케이션으로 설정한다. 현재 애플리케이션은, 본 명세서에 기술된 실시예들에 따라 유틸리티를 할당받게 되거나, 그것을 다음에 할당받을 애플리케이션을 지칭한다. 단계(506)에서, 예측 엔진(206)은 현재 애플리케이션에 관련되는 이벤트가 다가오고 있는지 여부를 결정한다. 현재 애플리케이션에 관련되는 이벤트가 다가오고 있는 경우, 방법(500)은, 예측 엔진(206)에 의해 이벤트-기반 유틸리티 할당이 수행되는 노드(A)로 보내지며, 그렇지 않으면, 방법(500)은 단계(508)로 진행한다. 단계(508)에서, 예측 엔진 (206)은 현재 애플리케이션에 관련되는 환경 변화가 발생했는지 여부를 결정한다. 현재 애플리케이션에 관련되는 환경 변화가 발생한 경우, 방법(500)은, 환경-기반 유틸리티 할당이 수행되는 노드(B)로 보내지며, 그렇지 않으면 방법(500)은 단계(510)로 진행한다. 단계(510)에서, 예측 엔진(206)은 현재 애플리케이션에 관련되는 빈번한 애플리케이션 사용의 기간이 다가오고 있는지 여부를 결정한다. 현재 애플리케이션에 관련되는 빈번한 애플리케이션 사용의 기간이 가까워지고 있는 경우, 방법(500)은, 사용자-기반 유틸리티 할당이 예측 엔진(206)에 의해 수행되는 노드(C)로 보내지며, 그렇지 않으면 방법은 단계(514)로 진행한다. 본 명세서에서 추가로 논의되는 바와 같이, 노드들(A, B, C)로부터의 프로세스들의 연속을 나타내는 노드(D)는 또한, 현재 애플리케이션의 유틸리티 할당이 수행된 후에 단계(514)로 진행한다. 단계(514)에서, 예측 엔진(206)은 애플리케이션들의 목록 내에서 아직 유틸리티 할당 프로세스를 거쳐야 할 다른 애플리케이션들이 있는지 여부를 결정한다. 아직 유틸리티를 할당받아야 할 다른 애플리케이션들이 있는 경우, 방법(500)은, 예측 엔진(206)이 애플리케이션들의 목록 내의 다음 애플리케이션을 현재 애플리케이션으로 설정하는 단계(512)로 진행하고, 그 후에 방법(500)은 단계(506)로 되돌아간다. 애플리케이션들의 목록 중 유틸리티를 할당받아야 할 다른 애플리케이션들이 없는 경우, 방법(500)은, 예측 엔진(206)이 애플리케이션들의 목록을 유틸리티에 의해 순서화하고 애플리케이션들의 순서화된 목록을 사용자 인터페이스 서비스(208)에 전송하는 단계(516)로 진행한다.
도 6은 디바이스 애플리케이션(212)의 이벤트-기반 유틸리티 할당을 수행하기 위한 방법(600)을 도시한다. 방법(600)은, 애플리케이션 또는 애플리케이션 식별자의 이벤트-기반 유틸리티 할당을 수행하기 위한 결정이 이루어질 때 노드(A)에서 방법(500) 내에 통합될 수 있다. 방법(600)의 단계(602)에서, 예측 엔진(206)은 현재 시간 및 이벤트의 시간에 기초하여 유틸리티를 할당하기 위해 현재 애플리케이션을 수신한다. 현재 애플리케이션은, 사용자 또는 모바일 디바이스(102)에 대한 이벤트와 어떤 방식으로 연관되는 임의의 애플리케이션일 수 있다. 일부 실시예들에서, 현재 애플리케이션은 캘린더 애플리케이션 또는 이벤트에 대한 세부 사항들을 제공하는 임의의 다른 적합한 애플리케이션이다. 이벤트는 모바일 디바이스(102)의 사용자에 의해 모바일 디바이스(102) 내에 프로그래밍되는 이벤트, 또는 모바일 디바이스(102)에 의해 자동으로 생성된 이벤트일 수 있다. 예를 들어, 사용자는 모바일 디바이스(102)의 캘린더 애플리케이션 내에 미팅을 프로그래밍할 수 있고, 이벤트-기반 유틸리티 할당 방법(600)은 미팅을 이벤트로 해석할 것이다. 유사하게, 이벤트는, 사용자의 모바일 디바이스(102) 내에 이벤트들을 자동으로 프로그래밍하거나 미리결정된 시간 기간 동안 일시적으로 이벤트들을 유지하는 모바일 디바이스(102) 상의 웹 애플리케이션에 의해 개시될 수 있다. 단계(604)에서, 예측 엔진(206)은 이벤트가 지나갔는지 여부를 결정한다. 이벤트가 지나간 경우, 예측 엔진(206)은 단계(606)에 따라 1 미만의 유틸리티 값으로 현재 애플리케이션에 유틸리티 값을 할당하고, 그렇지 않으면 방법(600)은, 예측 엔진(206)이 이벤트가 현재 발생하고 있는지 여부를 결정하는 단계(608)로 진행한다. 이벤트가 현재 발생하고 있는 경우, 현재 애플리케이션은 1과 동일한 유틸리티 값, 또는 최고 유틸리티를 나타내는 다른 적합한 값을 할당받는다. 이벤트가 현재 발생하고 있지 않는 경우, 방법(600)은, 예측 엔진(206)이 이벤트가 가까운 미래에 일어날 것인지 여부를 결정하는 단계(612)로 진행한다. 이벤트가 가까운 미래에 일어나게 될 경우, 현재 애플리케이션은 단계(614)에 따라 1 미만인 유틸리티 값을 할당받고, 그렇지 않으면 방법(600)은 노드(D)로 진행한다. 현재 애플리케이션에 유사하게 점수를 매기기 위해 임의의 유틸리티 값들이 임의의 적합한 값 또는 문자로 스케일링되거나 달리 수정될 수 있다는 것에 유의해야 한다. 현재 애플리케이션이 이벤트에 따라 유틸리티를 할당받으면, 방법(600)은 노드(D)를 참조하고 그 후에 방법(500)으로 되돌아갈 수 있다.
도 7은 환경 변화에 기초하여 애플리케이션에 유틸리티를 할당하는 방법(700)을 도시한다. 특히, 도 7은, 현재 시간 및 모바일 디바이스(102)에서 환경 변화가 발생하는 시간 둘 모두에 기초하여 현재 애플리케이션에 유틸리티를 할당하기 위한 방법(700)을 제시한다. 방법(700)은, 애플리케이션 또는 애플리케이션 식별자의 환경-기반 유틸리티 할당을 수행하기 위한 결정이 이루어질 때 노드(B)에서 방법(500) 내에 통합될 수 있다. 단계(702)에서, 예측 엔진(206)은 현재 시간 및 환경 변화의 시간에 기초하여 유틸리티를 할당하기 위해 현재 애플리케이션을 수신한다. 환경 변화는 사용자가 개시한 변화 또는 사용자의 통제 밖의 변화를 포함할 수 있다. 예를 들어, 사용자는 모바일 디바이스(102)가 통신할 수 있는 디바이스(예를 들어, 텔레비전)를 포함하는 방 안으로 걸어 들어감으로써 환경 변화를 개시할 수 있다. 유사하게, 사용자의 통제 밖일 수 있는 환경 변화는 네트워크 신호의 손실 또는 검출을 포함할 수 있다. 단계(704)에서, 예측 엔진(206)은 환경 변화가 이미 발생했는지 여부를 결정한다. 환경 변화가 이미 발생한 경우, 현재 애플리케이션은 단계(706)에 따라 예측 엔진(206) 1 이하의 유틸리티를 할당받는다. 그렇지 않으면, 환경 변화가 이미 발생하지 않은 경우, 현재 애플리케이션은 단계(708)에 따라 예측 엔진(206)에 의해 0의 유틸리티를 할당받는다. 유틸리티를 수신하면, 방법(700)은 노드(D)를 참조하고 그 후에 방법(500)으로 되돌아갈 수 있다.
도 8은 빈번한 애플리케이션 사용의 기간에 기초하여 애플리케이션에 유틸리티를 할당하기 위한 방법(800)을 도시한다. 특히, 도 8은, 현재 시간 및 현재 애플리케이션에 대한 빈번한 애플리케이션 사용의 기간에 기초하여 현재 애플리케이션에 유틸리티를 할당하기 위한 방법(800)을 제시한다. 방법(800)은, 빈번한 애플리케이션 사용의 기간에 기초하여 애플리케이션 유틸리티 할당을 수행하기 위한 결정이 이루어질 때 노드(C)에서 방법(500) 내에 통합될 수 있다. 단계(802)에서, 예측 엔진(206)은 현재 시간 및 빈번한 애플리케이션 사용의 기간에 기초하여 유틸리티를 할당하기 위해 현재 애플리케이션을 수신한다. 빈번한 애플리케이션 사용의 기간은 사용자가 소정 기간 동안 자주 여는 임의의 적합한 애플리케이션에 관련될 수 있다. 예를 들어, 사용자는 점심 시간 동안 소셜 네트워킹 애플리케이션을 자주 확인할 수 있으며, 점심 시간은 디바이스 애플리케이션에 관련된 빈번한 애플리케이션 사용의 기간을 구성할 것이다. 단계(804)에서, 예측 엔진(206)은 빈번한 애플리케이션 사용의 기간이 지나갔는지 여부를 결정한다. 빈번한 애플리케이션 사용의 기간이 지나간 경우, 현재 애플리케이션은 단계(806)에 따라, 1 미만의 유틸리티, 또는 가장 높지 않은 어떤 다른 유틸리티를 할당받는다. 그렇지 않으면 방법(800)은, 예측 엔진(206)이 빈번한 애플리케이션 사용의 기간이 현재 발생하고 있는지 여부를 결정하는 단계(808)로 진행한다. 빈번한 애플리케이션 사용 기간이 현재 발생하고 있는 경우, 방법(800)은, 1과 동일한 유틸리티 값, 또는 그렇지 않으면 최고 유틸리티가 현재 애플리케이션에 할당되는 단계(810)를 참조한다. 그렇지 않으면, 방법(800)은, 예측 엔진(206)이 빈번한 애플리케이션 사용의 기간이 가까운 미래에 발생할 것인지 여부를 결정하는 단계(812)로 진행한다. "가까운 미래"로 여겨지는 임계치 값은 모바일 디바이스(102)에 의해 미리 결정되거나 사용자에 의해 수동으로 설정될 수 있다. 빈번한 애플리케이션 사용의 기간이 가까운 미래에 발생하게 될 경우, 1 미만의 유틸리티가 예측 엔진(206)에 의해 현재 애플리케이션에 할당된다. 일부 실시예들에서, 유틸리티 값은 현재 시간과, 빈번한 애플리케이션 사용 또는 다른 상황의 시간 사이의 차이에 비례할 수 있다. 차이가 미리결정된 임계치 밖이거나 그 초과인 경우, 현재 애플리케이션에 대한 유틸리티는 0으로 할당될 수 있다. 그 후에, 방법(800)은 노드(D)로 보내지고 방법(500)으로 되돌아갈 수 있다.
도 9a 내지 도 9c는 본 명세서에 기술된 일부 실시예들에 따른, 수행되고 있는 유틸리티 할당의 유형에 따라 시간에 따른 애플리케이션에 대한 유틸리티의 변화를 나타내는 상이한 플롯들을 도시한다. 특히, 도 9a는 유틸리티(902)가 시간(904)에 따라 변화하는 다수의 기울기들 또는 부분들을 갖는 유틸리티 플롯(906)을 도시한다. 특정 애플리케이션의 유틸리티는, 본 명세서에 추가로 기술된 바와 같이, 특정 상황이 다가옴에 따라 0 또는 어떤 다른 상수일 수 있다. 현재 시간과 상황 시간 사이의 차이가 제1 미리결정된 임계치(912) 내에 있으면, 유틸리티는 도 9a에 도시된 바와 같이 증가하기 시작할 수 있다. 애플리케이션의 유틸리티는, 상황이 발생하고 있는 지점에서 피크가 되거나, 1을 할당받을 수 있다. 상황의 시간이 지날 때, 애플리케이션의 유틸리티는 도 9a에 도시된 바와 같이, 점차 감소할 수 있다. 현재 시간과 상황 시간 사이의 차이가 제2 미리결정된 임계치(914)를 넘으면, 유틸리티는 0 또는 어떤 다른 일정한 값으로 되돌아갈 수 있다.
도 9b는 애플리케이션에 대한 유틸리티 플롯(908)을 도시하며, 여기서 유틸리티 플롯(908)은 피크 값 및 단일 기울기를 포함한다. 단일 기울기는 일부 실시예들에서 (도시된 바와 같이) 피크 전 또는 피크 후에 제공될 수 있다. 도 9b에 따르면, 특정 애플리케이션의 유틸리티는 특정 상황의 발생 이전에 0 또는 어떤 다른 상수일 수 있다. 특정 상황의 시간에서, 애플리케이션의 유틸리티는 1의 값 또는, 최고 유틸리티 또는 다른 유틸리티 값을 나타내는 어떤 다른 상수로 피크에 달할 수 있다. 특정 상황의 시간 후에, 유틸리티 플롯(908)은 점차 감소함으로써, 시간이 지남에 따라 감소하는 유틸리티 값을 애플리케이션에 줄 수 있다. 점진적인 감소는, 선형적, 지수적, 또는 유틸리티의 값을 점점 작아지게 하는 임의의 다른 적합한 곡선일 수 있다. 현재 시간과 상황의 시간 사이의 차이가 미리결정된 임계치(916)를 넘을 때, 유틸리티는 0 또는 어떤 다른 일정한 값으로 되돌아갈 수 있다.
도 9c는 애플리케이션에 대한 유틸리티 플롯(910)을 도시하며, 여기서 유틸리티 플롯(910)은 소정 시간 기간 동안의 일정한 값을 포함한다. 일정한 값은 1의 피크 값, 또는 최고 유틸리티를 나타내거나 특정 애플리케이션에 대한 임의의 다른 유틸리티 값을 나타내는 임의의 다른 일정한 값일 수 있다. 도 9c에 따르면, 특정 애플리케이션의 유틸리티는 특정 상황의 발생 이전에 0 또는 어떤 다른 상수일 수 있다. 특정 상황의 시간에, 애플리케이션의 유틸리티는 피크에 달하거나, 소정 시간 기간 동안의 일정한 값으로(예를 들어, 1) 달리 설정될 수 있다. 시간 기간은 특정 애플리케이션에 대한 빈번한 애플리케이션 사용의 기간, 애플리케이션에 관련된 특정 이벤트의 기간, 또는 애플리케이션이 사용자의 관심 대상일 수 있는 임의의 다른 적합한 시간 기간일 수 있다. 시간 기간 또는 특정 상황이 끝나면, 유틸리티는 0, 또는 최고 유틸리티보다 낮은 유틸리티를 나타내는 어떤 다른 일정한 값으로 되돌아갈 수 있다.
도 10은 본 명세서에 기술된 일부 실시예들에 따른, 애플리케이션의 유틸리티를 리셋하기 위한 방법(1000)을 도시한다. 특히, 도 10은 애플리케이션들이 사용자에게 제시되는 시간에 사용자의 애플리케이션들의 선택에 따라 애플리케이션들의 유틸리티들을 적응시키기 위한 방법(1000)을 제공한다. 단계(1002)에서, 예측 엔진(206)은 사용자로부터 애플리케이션 선택을 수신한다. 방법(1000)은, 예측 엔진(206)이 애플리케이션 선택이 최고 유틸리티 애플리케이션에 대해서인지 여부를 결정하는 단계(1004)로 진행한다. 애플리케이션 선택이 최고 유틸리티 애플리케이션에 대해서인 경우, 예측 엔진(206)은 선택된 애플리케이션의 유틸리티를 수정하지 않으며, 예측 엔진(206)이 애플리케이션들의 유틸리티들에 대한 임의의 업데이트들을 저장하는 단계(1012)로 진행한다. 단계(1002)로부터의 애플리케이션 선택이 최고 유틸리티 애플리케이션에 대한 것이 아닌 것으로 단계(1004)에서 예측 엔진(206)에 의해 결정되는 경우, 방법(1000)은 선택적 단계(1006)로 진행할 수 있다. 선택적 단계(1006)에서, 예측 엔진(206)은 최고 유틸리티 애플리케이션에 대한 적격성 타이머를 리셋한다. 선택적 단계(1006) 예측 엔진(206)은, 이전에 최고 유틸리티 애플리케이션으로서 할당된 애플리케이션이, 적격성 타이머가 미리결정된 값에 도달할 때까지 다시 최고 유틸리티 애플리케이션으로서 할당되지 않도록 보장할 수 있다. 예를 들어, 적격성 타이머에 대한 미리결정된 값이 15분 동안이고 최고 유틸리티 애플리케이션이 사용자에게 제안될 때 사용자가 최고 유틸리티 애플리케이션을 선택하지 않는 경우, 적격성 타이머는 방법(1000)에 따라 리셋될 수 있고 이전의 최고 유틸리티 애플리케이션은 15분의 기간 동안 다시 최고 유틸리티 애플리케이션일 자격이 없을 것이다. 적격성 타이머에 대한 미리결정된 값은 사용자에 의해 설정되거나, 임의의 적합한 타이머 값에 대해 모바일 디바이스(102)에 의해 자동으로 설정될 수 있다. 방법(1000)은, 예측 엔진(206)이 최고 유틸리티 애플리케이션의 유틸리티를 감소시키는 단계(1008)로 진행할 수 있다. 이러한 방식으로, 이전의 최고 유틸리티 애플리케이션의 유틸리티는 0의 유틸리티가 주어지거나, 애플리케이션들의 목록 중 다른 애플리케이션과 유틸리티들을 바꾸거나, 또는 최고 유틸리티 값을 나타내지 않는 임의의 다른 적합한 유틸리티 값이 주어질 수 있다. 예를 들어, 승수 또는 백분율(예를 들어, 95%)은, 사용자에 의해 선택되지 않은 이전의 최고 유틸리티 애플리케이션의 유틸리티를 감소시키는 데 사용될 수 있다. 따라서, 최고 유틸리티가 1로 표시되는 경우, 유틸리티는 승수에 의해 감소된 후에 0.95로 감소될 것이다.
방법(1000)은, 예측 엔진(206)이 선택된 애플리케이션의 유틸리티를 증가시키는 단계(1010)를 더 포함할 수 있다. 선택된 애플리케이션은 임의의 적합한 값 또는 최대 유틸리티 값(예를 들어, 1)으로 증가될 수 있다. 선택된 애플리케이션은 또한 일부 실시예들에서 승수 또는 백분율에 의해 증가될 수 있다. 예를 들어, 승수 또는 백분율이 105%인 경우, 이전에 0.95의 유틸리티를 제공받은 애플리케이션은 1의 유틸리티(즉, 0.9975에서 반올림된 1)가 주어질 수 있다. 이러한 방식으로, 애플리케이션의 유틸리티는 시간이 지남에 따라 사용자의 선택들에 적응될 수 있다. 이어서 방법(1000)은 예측 엔진(206)이 애플리케이션들의 유틸리티들에 대한 임의의 업데이트들(예를 들어, 선택된 애플리케이션 및 이전에 최고 유틸리티 애플리케이션이었던 애플리케이션에 대한 유틸리티)을 저장하는 단계(1012)로 진행할 수 있다. 예를 들어, 사용자는 아침에 메일 애플리케이션을 확인하는 습관을 가져서, 잠재적으로 메일 애플리케이션을 아침의 최고 유틸리티 애플리케이션으로 만들었을 수 있다. 사용자가 이전 메일 애플리케이션 대신에 더 새로운 메일 애플리케이션을 사용하기 시작하는 경우, 더 새로운 애플리케이션의 유틸리티는 본 명세서에서 기술된 실시예들에 따라 시간이 지남에 따라 이전 메일 애플리케이션의 유틸리티를 초과할 수 있다. 각각의 메일 애플리케이션들에 대한 유틸리티들의 이러한 변화는, 사용자가 사용할 특정 메일 애플리케이션을 결정할 때 매일 아침 사용자의 시간을 절약한다.
도 11은 본 명세서에 기술된 일부 실시예들에 따른, 적격성 타이머의 리셋을 도시한다. 적격성 타이머는 애플리케이션이 미리결정된 시간 기간 동안 최고 유틸리티 애플리케이션으로 여겨지는 것을 방지하는 데 사용될 수 있다. 또한, 적격성 타이머는 본 명세서에 기술된 엔진들, 서비스들, 애플리케이션들, 또는 관련 시스템들 중 임의의 것에 의해 제어될 수 있다. 도 11의 축(1102)은 가중치 값(1108)을 나타낼 수 있고 축(1104)은 시간을 나타낼 수 있다. 상황(1106)이 발생하는 경우, 가중치 값(1108)은 0의 값, 또는 애플리케이션이 미리결정된 임계 시간(1110) 동안 최고 유틸리티 애플리케이션으로 여겨지는 것을 방지할 임의의 다른 값으로 리셋될 수 있다. 예를 들어, 가중치 값(1108)이 적격성 타이머의 일부인 경우, 가중치 값(1108)은 특정 애플리케이션에 대한 유틸리티 값으로 곱해질 것이다. 가중치 값(1108)이 0, 또는 감소 승수로서 역할을 하는 다른 값으로 리셋되는 경우, 애플리케이션의 유틸리티는 감소될 것이고, 애플리케이션은 적어도 임계 시간(1110)이 경과하고 가중치 값(1108)이 1 또는 임의의 다른 적합한 값으로 되돌아갈 때까지 최고 유틸리티에 대한 자격이 없을 것이다.
도 12는 일부 실시예들에 따른, 본 명세서에 기술된 다양한 컴포넌트들을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스(1200)의 상세도를 도시한다. 특히, 상세도는, 도 1a 및 도 1b에 도시된 모바일 디바이스(102) 또는 프로비저닝 서버(140)에 포함될 수 있는 다양한 컴포넌트들을 도시한다. 도 12에 도시된 바와 같이, 컴퓨팅 디바이스(1200)는 컴퓨팅 디바이스(1200)의 전체 동작을 제어하기 위한 마이크로프로세서 또는 제어기를 나타내는 프로세서(1202)를 포함할 수 있다. 컴퓨팅 디바이스(1200)는 또한 컴퓨팅 디바이스(1200)의 사용자가 컴퓨팅 디바이스(1200)와 상호작용할 수 있게 하는 사용자 입력 디바이스(1208)를 포함할 수 있다. 예를 들어, 사용자 입력 디바이스(1208)는 버튼, 키패드, 다이얼, 터치 스크린, 오디오 입력 인터페이스, 시각적/이미지 캡처 입력 인터페이스, 센서 데이터 형태의 입력 등과 같은 다양한 형태들을 취할 수 있다. 또한 추가로, 컴퓨팅 디바이스(1200)는 사용자에게 정보를 표시하기 위해 프로세서(1202)에 의해 제어될 수 있는 디스플레이(1210)(스크린 디스플레이)를 포함할 수 있다. 데이터 버스(1216)는 적어도 저장 디바이스(1240), 프로세서(1202), 및 제어기(1213) 사이의 데이터 전달을 용이하게 할 수 있다. 제어기(1213)는 장비 제어 버스(1214)를 통해 그리고 상이한 장비와 인터페이스하고 이를 제어하는 데 사용될 수 있다. 컴퓨팅 디바이스(1200)는 또한 데이터 링크(1212)에 연결되는 네트워크/버스 인터페이스(1211)를 포함할 수 있다. 무선 접속의 경우, 네트워크/버스 인터페이스(1211)는 무선 송수신기를 포함할 수 있다. 예를 들어, 모바일 디바이스(102)의 경우, 네트워크/버스 인터페이스(1211)는 복수의 모바일 네트워크 운영자와 연관된 복수의 통신 네트워크에 접속하기 위한 무선 송수신기를 포함할 수 있다.
컴퓨팅 디바이스(1200)는 또한 단일의 디스크 또는 복수의 디스크(예컨대, 하드 드라이브들)를 포함할 수 있는 저장 디바이스(1240)를 포함하고, 저장 디바이스(1240) 내의 하나 이상의 파티션을 관리하는 저장 관리 모듈을 포함한다. 일부 실시예들에서, 저장 디바이스(1240)는 플래시 메모리, 반도체 (솔리드 스테이트) 메모리 등을 포함할 수 있다. 컴퓨팅 디바이스(1200)는 또한 랜덤 액세스 메모리(RAM)(1220) 및 판독 전용 메모리(ROM)(1222)를 포함할 수 있다. ROM(1222)은 실행될 프로그램들, 유틸리티들 또는 프로세스들을 비휘발성 방식으로 저장할 수 있다. RAM(1220)은 휘발성 데이터 저장장치를 제공할 수 있고, 모바일 디바이스(102)의 동작에 관련된 명령어들을 저장한다.
기술된 실시예들의 다양한 양태들, 실시예들, 구현들 또는 특징들은 개별적으로 또는 임의의 조합으로 사용될 수 있다. 기술된 실시예들의 다양한 양태들이 소프트웨어, 하드웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 기술된 실시예들은 또한 컴퓨터 판독가능 매체 상에 컴퓨터 판독가능 코드로서 구현될 수 있다. 컴퓨터 판독가능 매체는, 나중에 컴퓨터 시스템에 의해 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 컴퓨터 판독가능 매체의 예들은 판독 전용 메모리, 랜덤 액세스 메모리, CD-ROM, HDD, DVD, 자기 테이프, 및 광학 데이터 저장 디바이스들을 포함한다. 컴퓨터 판독가능 매체는 또한 컴퓨터 판독가능 코드가 분산 방식으로 저장 및 실행되도록 네트워크로 결합된 컴퓨터 시스템들에 걸쳐 분산될 수 있다.
전술한 설명은, 설명의 목적을 위해, 기술된 실시예들의 충분한 이해를 제공하기 위해 특정 명명법을 사용하였다. 그러나, 특정 상세 사항들이 기술된 실시예들을 실시하는 데 요구되지 않는다는 것이 통상의 기술자에게 명백할 것이다. 따라서, 특정 실시예들에 대한 전술한 설명은 예시 및 설명의 목적을 위해 제시되어 있다. 이들은 망라하고자 하거나 기술된 실시예들을 개시된 정확한 형태들로 제한하려고 의도되지 않는다. 상기 교시 내용에 비추어 많은 수정들 및 변형들이 가능하다는 것이 통상의 기술자에게 명백할 것이다.

Claims (20)

  1. 애플리케이션들을 관리하기 위한 방법으로서,
    전자 디바이스에서:
    상기 전자 디바이스의 사용자 인터페이스에서, 상기 전자 디바이스에 설치된(established) 애플리케이션들의 목록으로부터 도출되는 제1 순서로 구성되는(organized) 제안된 애플리케이션들(suggested applications)의 제1 감소된 목록을 표시하는 단계;
    애플리케이션들의 상기 목록으로부터, 상기 사용자 인터페이스에 디스플레이될 애플리케이션을 제안하라는 요청을 수신하는 단계;
    상기 요청과 관련된 적어도 하나의 상황 특성의 존재를 식별하는 단계;
    상기 적어도 하나의 상황 특성의 존재에 기초하여, 상기 적어도 하나의 상황 특성에 대응하는 적어도 하나의 이전에 획득된 상황 특성을 식별하는 단계;
    상기 전자 디바이스에서 활성화된 애플리케이션들의 상기 목록으로부터 적어도 하나의 애플리케이션을, 상기 적어도 하나의 애플리케이션과 연관된 프로그램을 실행하기 위해 상기 이전에 획득된 상황 특성의 발생 동안 식별하는 단계;
    상기 적어도 하나의 상황 특성의 상기 존재에 따라, 애플리케이션들의 상기 목록에 포함된 적어도 하나의 다른 애플리케이션의 각각의 순위(ranking)에 대해 상기 적어도 하나의 애플리케이션의 순위를 조정하기 위해 상기 적어도 하나의 애플리케이션의 유틸리티 값을 증가시키면서 상기 적어도 하나의 다른 애플리케이션의 각각의 유틸리티 값을 감소시키는 단계;
    상기 제1 순서와 상이한 제2 순서로 구성되는 제안된 애플리케이션들의 제2 감소된 목록을 형성하기 위해 애플리케이션들의 상기 목록을 재구성하는 단계 - 제안된 애플리케이션들의 상기 제2 감소된 목록은 상기 적어도 하나의 애플리케이션의 표현을 포함함 -; 및
    상기 사용자 인터페이스에서, 제안된 애플리케이션들의 상기 제2 감소된 목록을 표시하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 적어도 하나의 상황 특성은 지리적 위치, 무선 네트워크 접속의 가용성, 시각 또는 캘린더 이벤트 중 적어도 하나를 포함하는, 방법.
  3. 제2항에 있어서, 상기 프로그램은 웹 브라우저 애플리케이션이고, 상기 방법은, 상기 무선 네트워크 접속이 이용 가능하다는 결정에 응답하여, 상기 사용자 인터페이스에서 상기 웹 브라우저 애플리케이션을 표시하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 유틸리티 값은 상기 적어도 하나의 애플리케이션의 적어도 사용 빈도 및 상기 적어도 하나의 상황 특성에 기초하는 메트릭(metric)인, 방법.
  5. 제1항에 있어서, 상기 이전에 획득된 상황 특성은 상기 이전에 획득된 상황 특성의 상기 발생 동안 상기 적어도 하나의 애플리케이션을 실행하기 위한 사용자 선택을 수신하는 것과 함께 상기 전자 디바이스에 의해 획득된, 방법.
  6. 제1항에 있어서, 상기 사용자 인터페이스에서 표시되는 상기 적어도 하나의 애플리케이션의 상기 유틸리티 값은 상기 적어도 하나의 다른 애플리케이션의 상기 각각의 유틸리티 값보다 높은, 방법.
  7. 제2항에 있어서, 상기 적어도 하나의 상황 특성은 상기 캘린더 이벤트와 관련되고, 상기 사용자 인터페이스는 상기 캘린더 이벤트의 통지를 제공하는 캘린더 애플리케이션을 표시하는, 방법.
  8. 제7항에 있어서, 상기 캘린더 이벤트가 종료되었다는 결정에 응답하여, 상기 방법은 상기 캘린더 애플리케이션이 상기 사용자 인터페이스에서 표시되는 것을 방지하는 단계를 더 포함하는 방법.
  9. 명령어들을 저장하도록 구성된 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은 전자 디바이스에 포함된 적어도 하나의 프로세서에 의해 실행되는 것에 응답하여 상기 전자 디바이스로 하여금:
    상기 전자 디바이스의 사용자 인터페이스에서, 상기 전자 디바이스에 설치된 애플리케이션들의 목록으로부터 도출되는 제1 순서로 구성되는 제안된 애플리케이션들의 제1 감소된 목록을 표시하고,
    애플리케이션들의 상기 목록으로부터, 상기 사용자 인터페이스에 디스플레이될 애플리케이션을 제안하라는 요청을 수신하고;
    상기 요청과 관련된 적어도 하나의 상황 특성의 존재를 식별하며;
    상기 적어도 하나의 상황 특성의 존재에 기초하여, 상기 적어도 하나의 상황 특성에 대응하는 적어도 하나의 이전에 획득된 상황 특성을 식별하고;
    상기 전자 디바이스에서 활성화된 애플리케이션들의 상기 목록으로부터 적어도 하나의 애플리케이션을, 상기 적어도 하나의 애플리케이션과 연관된 프로그램을 실행하기 위해 상기 이전에 획득된 상황 특성의 발생 동안 식별하며;
    상기 적어도 하나의 상황 특성의 상기 존재에 따라, 애플리케이션들의 상기 목록에 포함된 적어도 하나의 다른 애플리케이션의 각각의 순위에 대해 상기 적어도 하나의 애플리케이션의 순위를 조정하기 위해 상기 적어도 하나의 애플리케이션의 유틸리티 값을 증가시키면서 상기 적어도 하나의 다른 애플리케이션의 각각의 유틸리티 값을 감소시키며;
    상기 제1 순서와 상이한 제2 순서로 구성되는 제안된 애플리케이션들의 제2 감소된 목록을 형성하기 위해 애플리케이션들의 상기 목록을 재구성하고; 및
    상기 사용자 인터페이스에서, 제안된 애플리케이션들의 상기 제2 감소된 목록을 표시하게 하는, 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서, 상기 적어도 하나의 상황 특성은 지리적 위치, 무선 네트워크 접속의 가용성, 시각 또는 캘린더 이벤트 중 적어도 하나를 포함하는, 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체.
  11. 제10항에 있어서,
    상기 프로그램은 웹 브라우저 애플리케이션이고,
    상기 무선 네트워크 접속이 이용가능하다고 결정하는 것에 응답하여, 상기 적어도 하나의 프로세서는 상기 전자 디바이스로 하여금 또한:
    상기 사용자 인터페이스에서 상기 웹 브라우저 애플리케이션을 표시하게 하는, 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제9항에 있어서, 상기 이전에 획득된 상황 특성은 상기 이전에 획득된 상황 특성의 상기 발생 동안 상기 적어도 하나의 애플리케이션을 실행하기 위한 사용자 선택을 수신하는 것과 함께 상기 전자 디바이스에 의해 획득된, 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제9항에 있어서, 상기 적어도 하나의 상황 특성의 상기 존재 동안, 상기 적어도 하나의 애플리케이션의 상기 유틸리티 값은 증가하고, 상기 적어도 하나의 상황 특성의 상기 존재에 후속하여, 상기 유틸리티 값은 감소하는, 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제10항에 있어서, 상기 적어도 하나의 상황 특성은 상기 캘린더 이벤트와 관련되고, 상기 사용자 인터페이스는 상기 캘린더 이벤트의 통지를 제공하는 캘린더 애플리케이션을 표시하는, 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체.
  15. 제14항에 있어서, 상기 캘린더 이벤트가 종료되었다는 결정에 응답하여, 상기 적어도 하나의 프로세서는 또한 상기 전자 디바이스로 하여금 상기 캘린더 애플리케이션이 상기 사용자 인터페이스에서 표시되는 것을 방지하게 하는, 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체.
  16. 전자 디바이스로서,
    적어도 하나의 프로세서; 및
    명령어들을 저장하는 적어도 하나의 메모리
    를 포함하고,
    상기 명령어들은 상기 적어도 하나의 프로세서에 의해 실행되는 것에 응답하여 상기 전자 디바이스로 하여금:
    상기 전자 디바이스의 사용자 인터페이스에서, 상기 전자 디바이스에 설치된 애플리케이션들의 목록으로부터 도출되는 제1 순서로 구성되는 제안된 애플리케이션들의 제1 감소된 목록을 표시하고,
    애플리케이션들의 상기 목록으로부터, 상기 사용자 인터페이스에 디스플레이될 애플리케이션을 제안하라는 요청을 수신하고;
    상기 요청과 관련된 적어도 하나의 상황 특성의 존재를 식별하며;
    상기 적어도 하나의 상황 특성의 존재에 기초하여, 상기 적어도 하나의 상황 특성에 대응하는 적어도 하나의 이전에 획득된 상황 특성을 식별하고;
    상기 전자 디바이스에서 활성화된 애플리케이션들의 상기 목록으로부터 적어도 하나의 애플리케이션을, 상기 적어도 하나의 애플리케이션과 연관된 프로그램을 실행하기 위해 상기 이전에 획득된 상황 특성의 발생 동안 식별하며;
    상기 적어도 하나의 상황 특성의 상기 존재에 따라, 애플리케이션들의 상기 목록에 포함된 적어도 하나의 다른 애플리케이션의 각각의 순위에 대해 상기 적어도 하나의 애플리케이션의 순위를 조정하기 위해 상기 적어도 하나의 애플리케이션의 유틸리티 값을 증가시키면서 상기 적어도 하나의 다른 애플리케이션의 각각의 유틸리티 값을 감소시키고;
    상기 제1 순서와 상이한 제2 순서로 구성되는 제안된 애플리케이션들의 제2 감소된 목록을 형성하기 위해 애플리케이션들의 상기 목록을 재구성하며 - 제안된 애플리케이션들의 상기 제2 감소된 목록은 상기 적어도 하나의 애플리케이션의 표현을 포함함 -; 및
    상기 사용자 인터페이스에서, 제안된 애플리케이션들의 상기 제2 감소된 목록을 표시하게 하는, 전자 디바이스.
  17. 제16항에 있어서, 상기 적어도 하나의 상황 특성은 지리적 위치, 무선 네트워크 접속의 가용성, 시각 또는 캘린더 이벤트 중 적어도 하나를 포함하는, 전자 디바이스.
  18. 제17항에 있어서, 상기 프로그램은 웹 브라우저 애플리케이션이고, 상기 무선 네트워크 접속이 이용 가능하다는 결정에 응답하여, 상기 적어도 하나의 프로세서는 또한 상기 전자 디바이스로 하여금 상기 사용자 인터페이스에서 상기 웹 브라우저 애플리케이션을 표시하게 하는, 전자 디바이스.
  19. 제16항에 있어서, 상기 적어도 하나의 상황 특성의 상기 존재 동안, 상기 적어도 하나의 애플리케이션의 상기 유틸리티 값은 증가하고, 상기 적어도 하나의 상황 특성의 상기 존재에 후속하여, 상기 유틸리티 값은 감소하는, 전자 디바이스.
  20. 제16항에 있어서, 상기 유틸리티 값은 상기 적어도 하나의 애플리케이션의 적어도 사용 빈도 및 상기 적어도 하나의 상황 특성에 기초하는 메트릭인, 전자 디바이스.
KR1020187035858A 2014-05-30 2015-04-23 애플리케이션 제안 특징 KR102085473B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462005812P 2014-05-30 2014-05-30
US62/005,812 2014-05-30
US14/501,000 US9547683B2 (en) 2014-05-30 2014-09-29 Application suggestion features
US14/501,000 2014-09-29
PCT/US2015/027220 WO2015183433A1 (en) 2014-05-30 2015-04-23 Application suggestion features

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033212A Division KR101930612B1 (ko) 2014-05-30 2015-04-23 애플리케이션 제안 특징

Publications (2)

Publication Number Publication Date
KR20180135983A KR20180135983A (ko) 2018-12-21
KR102085473B1 true KR102085473B1 (ko) 2020-03-05

Family

ID=54699507

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167033212A KR101930612B1 (ko) 2014-05-30 2015-04-23 애플리케이션 제안 특징
KR1020187035858A KR102085473B1 (ko) 2014-05-30 2015-04-23 애플리케이션 제안 특징

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167033212A KR101930612B1 (ko) 2014-05-30 2015-04-23 애플리케이션 제안 특징

Country Status (4)

Country Link
US (3) US9547683B2 (ko)
KR (2) KR101930612B1 (ko)
CN (1) CN106415489B (ko)
WO (1) WO2015183433A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5892746B2 (ja) * 2010-09-29 2016-03-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 個別化コンテンツ・レイアウトのための方法、システム、およびプログラム(個別化コンテンツ・レイアウトのためのシステムおよび方法)
US9547683B2 (en) 2014-05-30 2017-01-17 Apple Inc. Application suggestion features
US20160188169A1 (en) * 2014-12-31 2016-06-30 TCL Research America Inc. Least touch mobile device
CN104951340B (zh) * 2015-06-12 2018-07-06 联想(北京)有限公司 一种信息处理方法及装置
US10909371B2 (en) * 2017-01-19 2021-02-02 Samsung Electronics Co., Ltd. System and method for contextual driven intelligence
WO2018135881A1 (en) 2017-01-19 2018-07-26 Samsung Electronics Co., Ltd. Vision intelligence management for electronic devices
KR20190053675A (ko) * 2017-11-10 2019-05-20 삼성전자주식회사 전자 장치 및 그 동작 방법
CN108399529A (zh) * 2018-02-13 2018-08-14 上海爱优威软件开发有限公司 时间的管理方法及系统
US10861348B2 (en) 2018-03-20 2020-12-08 Microsoft Technology Licensing, Llc Cross-application feature linking and educational messaging
CN109683757A (zh) * 2018-12-03 2019-04-26 珠海格力电器股份有限公司 一种应用程序防误触打开方法、系统及智能终端
EP3657325A4 (en) * 2019-02-20 2021-05-26 LG Electronics Inc. FREQUENTLY USED APPLICATION BYPASS PROCESS, AND BYPASS DEVICE USING THIS PROCESS
WO2021244212A1 (en) * 2020-06-01 2021-12-09 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and system for dynamically assigning cpu resources to one or more applications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350735A (ja) * 2005-06-16 2006-12-28 Nippon Signal Co Ltd:The 情報配信システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6121968A (en) * 1998-06-17 2000-09-19 Microsoft Corporation Adaptive menus
US7697557B2 (en) * 2007-12-26 2010-04-13 Alcatel Lucent Predictive caching content distribution network
US8396888B2 (en) * 2009-12-04 2013-03-12 Google Inc. Location-based searching using a search area that corresponds to a geographical location of a computing device
WO2012008628A1 (ko) 2010-07-13 2012-01-19 엘지전자 주식회사 이동단말기 및 그 대기화면 구성방법
US8560021B2 (en) * 2011-08-02 2013-10-15 Cellco Partnership Mobile device integration with WLAN functionality
KR101812657B1 (ko) * 2011-11-22 2018-01-31 삼성전자주식회사 컨텍스트 정보에 기초한 애플리케이션 추천 시스템 및 방법
KR101895536B1 (ko) * 2011-12-29 2018-10-25 삼성전자주식회사 어플리케이션 사용에 따른 어플리케이션 추천 서버 및 단말, 그리고 어플리케이션 추천 방법
US8799635B2 (en) 2012-01-26 2014-08-05 International Business Machines Corporation Intelligent application recommendation feature
WO2014000143A1 (en) * 2012-06-25 2014-01-03 Microsoft Corporation Input method editor application platform
CN103677498A (zh) * 2012-09-11 2014-03-26 华为终端有限公司 图标排序显示的方法和终端设备
US20140108978A1 (en) * 2012-10-15 2014-04-17 At&T Mobility Ii Llc System and Method For Arranging Application Icons Of A User Interface On An Event-Triggered Basis
US9547683B2 (en) 2014-05-30 2017-01-17 Apple Inc. Application suggestion features

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350735A (ja) * 2005-06-16 2006-12-28 Nippon Signal Co Ltd:The 情報配信システム

Also Published As

Publication number Publication date
US20150347488A1 (en) 2015-12-03
US9547683B2 (en) 2017-01-17
KR101930612B1 (ko) 2018-12-18
KR20160149260A (ko) 2016-12-27
US11048681B2 (en) 2021-06-29
CN106415489B (zh) 2020-04-07
US20210390087A1 (en) 2021-12-16
WO2015183433A1 (en) 2015-12-03
KR20180135983A (ko) 2018-12-21
US20170249344A1 (en) 2017-08-31
CN106415489A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
KR102085473B1 (ko) 애플리케이션 제안 특징
EP2954407B1 (en) Managing applications on a client device
KR102385757B1 (ko) 메시지 대화 이력의 신속 내비게이션
KR20190097184A (ko) 반복된 액션에 대한 스마트 어시스트
CN109831532B (zh) 数据分享方法、装置、设备及介质
US10958973B2 (en) Deriving and identifying view preferences of a user consuming streaming content
EP3469495A1 (en) Methods, systems, and media for presenting a user interface customized for a predicted user activity
US20180332447A1 (en) System and method for generating analytics for conversations within applications
US11251987B2 (en) Modification of device settings based on user abilities
US20170242711A1 (en) Remote management of virtual app lifecycle based on context and social network activities
CN107111418B (zh) 具有最小破坏性的图标位移
US11159596B2 (en) Streaming media abandonment mitigation
US20170212651A1 (en) Short cut links in a graphical user interface
US10783210B1 (en) Dynamic generation of web browser links based on cognitive analysis
US20200120189A1 (en) Contextual remote management of virtual app lifecycle
US9821223B2 (en) Game retention value optimization system
EP3005101B1 (en) Coordination of system readiness tasks
US20190104336A1 (en) Cognitive digital video recorder
JP2024502609A (ja) 学習したユーザコンテキストと対話とに基づいたアンビエント情報、ならびに関連するシステムおよびデバイスの提供
EP3200057B1 (en) Short cut links in a graphical user interface
CN111782494A (zh) 应用软件控制方法、装置、计算机设备和存储介质
CN109672901A (zh) 一种视频展现方法和移动终端
US8484646B1 (en) System and method for managing process flows within a computing device based on user behavior
CN116383513A (zh) 一种推荐应用的方法、电子设备及存储介质
Achyuth et al. Recommender system for prepaid mobile recharging using APIs

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)