KR102348693B1 - 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법 - Google Patents

어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR102348693B1
KR102348693B1 KR1020170138716A KR20170138716A KR102348693B1 KR 102348693 B1 KR102348693 B1 KR 102348693B1 KR 1020170138716 A KR1020170138716 A KR 1020170138716A KR 20170138716 A KR20170138716 A KR 20170138716A KR 102348693 B1 KR102348693 B1 KR 102348693B1
Authority
KR
South Korea
Prior art keywords
electronic device
application program
user
processor
volatile memory
Prior art date
Application number
KR1020170138716A
Other languages
English (en)
Other versions
KR20190045765A (ko
Inventor
함동읍
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170138716A priority Critical patent/KR102348693B1/ko
Priority to PCT/KR2018/012627 priority patent/WO2019083271A1/ko
Priority to US16/758,174 priority patent/US11429256B2/en
Publication of KR20190045765A publication Critical patent/KR20190045765A/ko
Application granted granted Critical
Publication of KR102348693B1 publication Critical patent/KR102348693B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1637Details related to the display arrangement, including those related to the mounting of the display in the housing
    • G06F1/1643Details related to the display arrangement, including those related to the mounting of the display in the housing the display being associated to a digitizer, e.g. laptops that can be used as penpads
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0362Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 1D translations or rotations of an operating part of the device, e.g. scroll wheels, sliders, knobs, rollers or belts
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

다양한 실시예들에 따르면, 전자 장치에 있어서, 하우징, 상기 하우징에 연결되고, 사용자의 신체 일부에 탈착 가능하게 장착하도록 구성된 마운팅 구조, 상기 하우징의 일부를 통하여 노출된 터치스크린 디스플레이, 상기 하우징 상에 위치되거나 또는 상기 하우징에 부착된 입력 인터페이스, 상기 터치스크린 디스플레이 및 상기 입력 인터페이스에 작동적으로 연결된 프로세서, 상기 프로세서에 작동적으로 연결된 휘발성 메모리 및 상기 프로세서에 작동적으로 연결된 비휘발성 메모리를 포함하고, 상기 비휘발성 메모리는, 복수의 어플리케이션 프로그램을 저장하도록 구성되고, 실행될 때, 상기 프로세서가, 외부 전자 장치로부터 사용자 연관 이벤트와 상기 어플리케이션 프로그램들 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하여 상기 비휘발성 메모리에 저장하고, 상기 사용자 연관 이벤트를 검출하고, 상기 터치스크린 디스플레이 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 상기 휘발성 메모리에 로드하도록 하는 인스트럭션들을 저장할 수 있다. 또한 다른 실시예들이 가능하다.

Description

어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법{ELECTRONIC DEVICE AND METHOD FOR CONTROLLING APPLICATION PROGRAM}
다양한 실시예들은 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법에 관한 것이다.
스마트폰과 같은 모바일 전자 장치가 일반화되면서, 스마트폰과 연동되어 사용되는 웨어러블 전자 장치(예: 스마트 워치 등)의 보급 또한 급속도로 증가하고 있다. 웨어러블 전자 장치는, 유선 또는 무선 통신을 통하여 스마트폰과 연결되어 스마트폰이 제공하는 다양한 기능 또는 동작을 사용자에게 제공할 수 있다. 이와 같은 편의성 때문에 최근 스마트 워치와 같은 웨어러블 전자 장치의 보급 속도는 점차 증가하는 추세이다.
웨어러블 전자 장치는 다양한 어플리케이션 프로그램(예컨대, '앱(App)'이라고도 한다)들을 실행할 수 있다. 웨어러블 전자 장치는 상기 어플리케이션 프로그램들을 웨어러블 전자 장치상에서 실행시키고 제어하기 위해 스마트폰과 같은 모바일 전자 장치의 플랫폼의 기능을 큰 수정 없이 사용하고 있다.
웨어러블 전자 장치는 웨어러블의 형태, 작은 배터리, 스크린 모양, 모바일 전자 장치에 의존하는 네트워크 성능, 사용 시간은 짧지만 자주 사용하는 사용자 인터페이스 등의 이유로 모바일 전자 장치와 다른 독특한 특성을 가지고 있다. 하지만, 웨어러블 전자 장치는 모바일 전자 장치의 플랫폼의 기능을 변경 없이 사용하고 있다.
다양한 실시예들에 따르면, 웨어러블 전자 장치의 특성을 고려하여 효율적으로 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법을 제공할 수 있다.
다양한 실시예들에 따르면, 웨어러블 전자 장치의 특성을 고려하여 여러 환경하에서 동작 가능한 어플리케이션 프로그램을 실행시키고 제어하는 전자 장치 및 그 제어 방법을 제공할 수 있다.
다양한 실시예들에 따르면, 웨어러블 전자 장치의 특성을 고려하여 다른 전자 장치와 연결 초기화 시점에 어플리케이션 실행을 위해 필요한 데이터를 교환함으로써 성능과 반응성을 향상시킬 수 있도록 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법을 제공할 수 있다.
다양한 실시예들에 따르면, 웨어러블 전자 장치의 특성을 고려하여 어플리케이션 프로그램들의 종료에 대한 우선 순위를 결정함으로써 메모리 확보를 위해 사용자에게 필요한 어플리케이션 프로그램이 종료되는 것을 방지할 수 있도록 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법을 제공할 수 있다.
다양한 실시예에 따르면, 전자 장치에 있어서, 하우징, 상기 하우징에 연결되고 사용자의 신체 일부에 탈착 가능하게 장착하도록 구성된 마운팅 구조, 상기 하우징의 일부를 통하여 노출된 터치스크린 디스플레이, 상기 하우징 상에 위치되거나 또는 상기 하우징에 부착된 입력 인터페이스, 상기 터치스크린 디스플레이 및 상기 입력 인터페이스에 작동적으로 연결된 프로세서, 상기 프로세서에 작동적으로 연결된 휘발성 메모리, 및 상기 프로세서에 작동적으로 연결된 비휘발성 메모리를 포함하고, 상기 비휘발성 메모리는, 복수의 어플리케이션 프로그램을 저장하도록 구성되고, 실행될 때, 상기 프로세서가, 외부 전자 장치로부터 사용자 연관 이벤트와 상기 어플리케이션 프로그램들 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하여 상기 비휘발성 메모리에 저장하고, 상기 사용자 연관 이벤트를 검출하고, 및 상기 터치스크린 디스플레이 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 상기 휘발성 메모리에 로드하도록 하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따르면, 전자 장치가 어플리케이션 프로그램을 제어하는 방법에 있어서, 외부 전자 장치로부터 사용자 연관 이벤트와 복수의 어플리케이션 프로그램 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하는 동작, 상기 사용자 연관 이벤트를 검출하는 동작, 및 상기 전자 장치에 포함된 터치스크린 디스플레이 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 상기 전자 장치에 포함된 휘발성 메모리에 로드하는 동작을 포함할 수 있다.
다양한 실시예에 따르면, 인스트럭션들을 저장하고 있는 저장 매체에 있어서, 상기 인스트럭션들은 적어도 하나의 회로에 의하여 실행될 때에 상기 적어도 하나의 회로로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 외부 전자 장치로부터 사용자 연관 이벤트와 복수의 어플리케이션 프로그램 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하는 동작, 상기 사용자 연관 이벤트를 검출하는 동작, 및 터치스크린 디스플레이 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 휘발성 메모리에 로드하는 동작을 포함할 수 있다.
다양한 실시예들에서는, 웨어러블 전자 장치의 특성을 고려하여 효율적으로 어플리케이션 프로그램을 제어할 수 있다.
다양한 실시예들에서는, 웨어러블 전자 장치의 특성을 고려하여 여러 환경하에서 동작 가능한 어플리케이션 프로그램을 실행시키고 제어할 수 있다.
다양한 실시예들에서는, 웨어러블 전자 장치의 특성을 고려하여 다른 전자 장치와 연결 초기화 시점에 어플리케이션 실행을 위해 필요한 데이터를 교환함으로써 성능과 반응성을 향상시킬 수 있다.
다양한 실시예들에서는, 웨어러블 전자 장치의 특성을 고려하여 어플리케이션 프로그램의 종료에 대한 우선 순위를 결정함으로써 메모리 확보를 위해 사용자에게 필요한 어플리케이션 프로그램이 종료되는 것을 방지할 수 있음으로, 시스템 성능이 하락(sluggish)하는 문제를 방지할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 다양한 실시예들에 따른 프로그램의 블록도이다.
도 3은 다양한 실시예들에 따른 웨어러블 전자 장치를 나타내는 사시도이다.
도 4는 다양한 실시예들에 따른 웨어러블 전자 장치의 블록도이다.
도 5는 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하기 위한 추론 프레임워크의 블록도이다.
도 6은 다양한 실시예들에 따른 웨어러블 전자 장치의 추론 프레임워크가 사용자 관련 이벤트를 검출하는 동작을 설명하기 위한 도면이다.
도 7은 다양한 실시예들에 따른 웨어러블 전자 장치의 추론 프레임워크가 어플리케이션 프로그램의 상태를 판단하는 동작을 설명하기 위한 도면이다.
도 8은 다양한 실시예들에 따른 웨어러블 전자 장치의 추론 프레임워크가 어플리케이션 프로그램을 사전 실행하는 동작을 설명하기 위한 도면이다.
도 9는 다양한 실시예들에 따른 웨어러블 전자 장치와 외부 전자 장치와의 연결을 설명하는 개념도이다.
도 10은 다양한 실시예들에 따른 웨어러블 전자 장치의 추론 프레임워크가 메모리를 관리하는 동작을 설명하기 위한 도면이다.
도 11은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
도 12는 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
도 13은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
도 14는 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
도 15는 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
도 16은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
도 17은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
도 18은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
도 1은, 다양한 실시예들에 따른, 네트워크환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리무선 통신)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리무선통신)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향출력장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 및 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))이 생략되거나 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽처리장치, 이미지시그널프로세서, 센서허브프로세서, 또는 커뮤니케이션프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시장치(160), 센서모듈(176), 또는 통신모듈(190))과 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조프로세서(123)(예: 이미지시그널프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라모듈(180) 또는 통신 모듈(190))의 일부 구성요소로서 구현될 수 있다. 메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향출력장치(155)는 음향신호를 전자장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 외부 전자 장치(예: 전자 장치(102))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus)인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰커넥터)를 포함할 수 있다.
햅틱모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱모듈(179)은, 예를 들면, 모터, 압전소자, 또는 전기자극장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신모듈(190)은 프로세서(120)(예: 어플리케이션프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system)통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network)통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(198)(예: 블루투스, WiFi direct또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일실시예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자장치에서 실행될 수 있다. 일실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시예에 따른 프로그램(140)의 블록도(200)이다. 일실시예에 따르면, 프로그램(140)은 전자 장치(101)의 하나 이상의 리소스들을 제어하기 위한 운영체제(142), 미들 웨어(144), 또는 상기 운영체제(142) 상에서 실행 가능한 어플리케이션(146)을 포함할 수 있다. 운영체제(142)는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램(140)중 적어도 일부 프로그램은, 예를 들면, 제조 시에 전자 장치(101)에 프리로드되거나, 또는 사용자의 사용 환경에서 외부 전자 장치(예: 전자 장치(102 또는 104), 또는 서버(108))로부터 다운로드되거나 갱신 될 수 있다.
운영 체제(142)는 전자 장치(101)의 시스템 리소스(예: 프로세스, 메모리, 또는 전원)를 제어(예: 할당 또는 회수)할 수 있다. 운영 체제(142)는, 추가적으로 또는 대체적으로, 전자 장치(101)의 다른 하드웨어 디바이스, 예를 들면, 입력 장치(150), 음향출력장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 구동하기 위한 하나 이상의 드라이버 프로그램들을 포함할 수 있다.
미들 웨어(144)는 어플리케이션(146)이 전자 장치(101)의 하나 이상의 리소스들이 제공하는 기능 또는 정보를 사용할 수 있도록 다양한 기능들을 어플리케이션(146)으로 제공할 수 있다. 미들 웨어(144)는, 예를 들면, 어플리케이션 매니저(201), 윈도우 매니저(203), 멀티미디어 매니저(205), 리소스 매니저(207), 파워 매니저(209), 데이터베이스 매니저(211), 패키지 매니저(213), 커넥티비티 매니저(215), 노티피케이션 매니저(217), 로케이션 매니저(219), 그래픽 매니저(221), 시큐리티 매니저(223), 통화 매니저(225), 또는 음성 인식 매니저(227)를 포함할 수 있다. 어플리케이션 매니저(201)는, 예를 들면, 어플리케이션(146)의 생명주기를 관리할 수 있다. 윈도우 매니저(203)는, 예를 들면, 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(205)는, 예를 들면, 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(207)는, 예를 들면, 어플리케이션(146)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(209)는, 예를 들면, 배터리의 용량, 온도 또는 전원을 관리하고, 이 중 해당 정보를 이용하여 전자 장치(101)의 동작에 필요한 전력 정보를 결정 또는 제공할 수 있다. 일실시예에 따르면, 파워 매니저(209)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다.
데이터베이스 매니저(211)는, 예를 들면, 어플리케이션(146)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(213)는, 예를 들면, 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다. 커넥티비티 매니저(215)는, 예를 들면, 전자 장치(101)와 외부 전자 장치간의 무선 또는 유선 연결을 관리할 수 있다. 노티피케이션 매니저(217)는, 예를 들면, 발생된 이벤트(예: 통화, 메시지, 또는 알람)를 사용자에게 알리기 위한 기능을 제공할 수 있다. 로케이션 매니저(219)는, 예를 들면, 전자 장치(101)의 위치 정보를 관리할 수 있다. 그래픽 매니저(221)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 시큐리티 매니저(223)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 통화(telephony) 매니저(225)는, 예를 들면, 전자 장치(101)의 음성 통화 또는 영상 통화 기능을 관리할 수 있다. 음성 인식 매니저(227)는, 예를 들면, 사용자의 음성 데이터를 서버(108)로 전송하고, 해당 음성 데이터에 기반하여 전자 장치(101)에서 수행될 기능에 대응하는 명령어(command) 또는 해당 음성 데이터에 기반하여 변환된 문자 데이터를 수신할 수 있다. 일 실시예에 따르면, 미들 웨어(144)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 일실시예에 따르면, 미들 웨어(144)의 적어도 일부는 운영 체제(142)의 일부로 포함되거나, 또는 운영 체제(142)와는 별도의 소프트웨어로 구현될 수 있다.
어플리케이션(146)은, 예를 들면, 홈(251), 다이얼러(253), SMS/MMS(255), IM(instant message)(257), 브라우저(259), 카메라(261), 알람(263), 컨택트(265), 음성 인식(267), 이메일(269), 달력(271), 미디어 플레이어(273), 앨범(275), 와치(277), 헬스(279)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(281)(예: 기압, 습도, 또는 온도 정보) 어플리케이션을 포함할 수 있다. 일실시예에 따르면, 어플리케이션(146)은 전자 장치(101)와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션(미도시)을 더 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치로 지정된 정보(예: 통화, 메시지, 또는 알람)를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 노티피케이션 릴레이 어플리케이션은, 예를 들면, 전자 장치(101)의 다른 어플리케이션(예: 이메일 어플리케이션(269))에서 발생된 이벤트(예: 메일 수신)에 대응하는 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 전자 장치(101)의 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치(101)와 통신하는 외부 전자 장치 또는 그 일부 구성 요소(예: 표시 장치(160) 또는 카메라 모듈(180))의 전원(예: 턴-온 또는 턴-오프)또는 기능(예: 표시 장치(160) 또는 카메라 모듈(180)의 밝기, 해상도, 또는 포커스)을 제어할 수 있다. 장치 관리 어플리케이션은, 추가적으로 또는 대체적으로, 외부 전자 장치에서 동작하는 어플리케이션의 설치, 삭제, 또는 갱신을 지원할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료기기, 카메라, 웨어러블장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당구성요소들을 한정하지 않는다. 어떤(예: 제 1)구성요소가 다른(예: 제 2)구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장메모리(136) 또는 외장메모리(138))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(140))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(101))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
도 3은 다양한 실시예들에 따른 웨어러블 전자 장치를 나타내는 사시도(300)이다.
도 3을 참조하면, 웨어러블 전자 장치(301)(예: 전자 장치(101))는 하우징(310), 상기 하우징(310)의 일부를 통하여 노출된 터치스크린 디스플레이(320)(예: 표시 장치(160)), 상기 하우징(310) 상에 위치된 휠 입력 인터페이스(330), 상기 하우징(310)에 부착된 용두(watch crown) 입력 인터페이스(340) 및 상기 하우징(310)에 연결되고 사용자의 신체 일부에 탈착 가능하게 장착하도록 구성된 마운팅 구조(350)을 포함할 수 있다.
다양한 실시예에 따라, 웨어러블 전자 장치(301)가 시계 형태의 웨어러블 전자 장치인 경우를 예로 들어 설명하지만 이에 한정되지 않으며, 사용자의 신체 일부에 탈착 가능하게 장착될 수 있는 다양한 형태의 웨어러블 전자 장치가 가능할 수 있다.
상기 터치스크린 디스플레이(320)는 터치 입력을 감지하기 위한 터치 패널을 포함할 수 있으며, 사용자 입력(예: 터치 또는 호버링)을 감지할 수 있다.
상기 휠 입력 인터페이스(330)는 상기 하우징(310) 상의 상기 터치스크린 디스플레이(320) 주위에 회전 가능하게 배치되며, 상기 터치스크린 디스플레이(320)를 제어하도록 구성된 입력 인터페이스일 수 있다. 예컨대, 휠 입력 인터페이스(330)의 회전량, 회전 방향 또는 회전 속도에 따라 상기 터치스크린 디스플레이(320)를 통해 출력된 객체의 표시가 제어될 수 있다.
상기 용두 입력 인터페이스(340)는 상기 하우징(310)의 일측에 회전 가능하게 부착되며, 용두 회전 축의 일단에 고정되고, 용두 회전 축을 중심으로 한 회전이 가능하다. 상기 용두 입력 인터페이스(340)는 상기 터치스크린 디스플레이(320)를 제어하도록 구성된 입력 인터페이스일 수 있다. 예컨대, 용두 입력 인터페이스(340)의 회전량, 회전 방향 또는 회전 속도에 따라 상기 터치스크린 디스플레이(320)를 통해 출력된 객체의 표시가 제어될 수 있다.
상기 마운팅 구조(350)는 상기 하우징(310)을 사용자의 손목에 고정하기 위한 밴드(또는 스트랩)의 형태로 구성될 수 있다.
도 4는 다양한 실시예들에 따른 웨어러블 전자 장치의 블록도(400)이다.
도 4를 참조하면, 웨어러블 전자 장치(301)(예: 전자 장치(101))는 프로세서(120), 메모리(130), 입력 인터페이스(150)(예: 휠 입력 인터페이스(330) 또는 용두 입력 인터페이스(340)), 터치스크린 디스플레이(160)(예: 표시 장치(160)), 센서 모듈(176), 배터리(189) 및 통신 인터페이스(190)(예: 통신 모듈(190))를 포함할 수 있다. 웨어러블 전자 장치(301)에 포함된 프로세서(120), 메모리(130), 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176) 및 통신 인터페이스(190)는 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
메모리(130)는 웨어러블 전자 장치(301)에 포함된 구성요소의 동작과 연관된 명령 또는 데이터를 저장할 수 있다. 메모리(130)는 휘발성 메모리(132) 및 비휘발성 메모리(134)를 포함하고, 비휘발성 메모리(134)는, 복수의 어플리케이션 프로그램(예: 어플리케이션(145)) 및 상기 웨어러블 전자 장치(301)가 어플리케이션 프로그램을 제어하기 위한 추론 프레임워크(예: 도 5의 추론 프레임워크(501))를 저장할 수 있다. 또한, 비휘발성 메모리(134)는, 외부 전자 장치(예: 서버(108), 전자 장치(102, 104) 등)로부터 사용자 연관 이벤트와 상기 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신하여 저장할 수 있다. 또한, 휘발성 메모리(132)는, 상기 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 로드할 수 있다. 또한, 메모리(130)는, 실행될 때, 프로세서(120)가 본 문서에 기재된 다양한 동작을 수행하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.
입력 인터페이스(150)는 사용자의 조작에 의해 시계 방향 또는 반 시계 방향으로 회전될 수 있으며, 다양한 형태(예: 베젤, 용두, 휠 스크롤 등)로 구성되어 회전 입력 정보를 감지할 수 있다. 예를 들어, 입력 인터페이스(150)는 휠 입력 인터페이스(예: 도 3의 휠 입력 인터페이스(330)) 또는 용두 입력 인터페이스(예: 도 3의 용두 입력 인터페이스(340))를 포함할 수 있다. 또한, 입력 인터페이스(150)는 사용자 조작에 의한 사용자 연관 이벤트를 검출할 수 있다.
터치스크린 디스플레이(160)는 프로세서(120)로부터 처리된 데이터를 수신하고, 수신된 데이터를 표시할 수 있다. 터치스크린 디스플레이(160)는 어플리케이션 프로그램의 사용자 인터페이스를 표시할 수 있다. 터치스크린 디스플레이(160)는 워치 페이스 화면, 홈 화면, 어플리케이션 프로그램에 연관된 위젯 화면 및 알림과 연관된 알림 화면이 표시될 수 있다. 또한, 터치스크린 디스플레이(160)는 상기 입력 인터페이스(150)를 통한 사용자 조작에 의한 사용자 연관 이벤트에 따라 변경되는 화면이 표시될 수 있다.
터치스크린 디스플레이(160)는 사용자의 터치 입력을 수신할 수 있다. 터치스크린 디스플레이(160)는 터치 센서 및 터치 센서 IC를 포함하는 터치 회로에 의해 물리량의 변화를 감지하고, 물리량(예: 전압, 저항, 또는 커패시턴스 등)의 변화에 기반하여 터치가 이루어진 위치(X, Y)를 산출할 수 있다. 산출된 위치(좌표)는 프로세서(120)에 제공(또는 보고(report))될 수 있다.
센서 모듈(176)은 복수의 센서들을 포함할 수 있으며, 센서 모듈(176)은 복수의 센서들을 통해 웨어러블 전자 장치(301)를 착용한 사용자에 의한 웨어러블 전자 장치(301)의 모션을 감지할 수 있다. 각 센서는 감지 정보를 상기 프로세서(120)로 출력할 수 있고, 프로세서(120)는 감지 정보를 통해 상기 웨어러블 전자 장치(301)의 모션을 검출할 수 있다. 센서 모듈(176)은 웨어러블 전자 장치(301)의 모션에 의한 사용자 연관 이벤트를 검출할 수 있다.
배터리(189)는 프로세서(120)의 제어에 따라 하우징(예: 도 3의 하우징(310)) 내에 포함된 구성 요소들(예: 프로세서(120), 메모리(130), 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176), 배터리(189) 및 통신 인터페이스(190))에 전력을 공급할 수 있다.
통신 인터페이스(190)는 예를 들어, 웨어러블 전자 장치(301)와 외부 전자 장치(예: 서버(108), 전자 장치(102, 104)) 간의 통신을 수행할 수 있다. 예를 들면, 통신 인터페이스(190)는 무선 통신 또는 유선 통신을 통하여 네트워크에 연결되어 외부 전자 장치(예: 도 1의 전자 장치(102), 전자 장치(104) 또는 서버(108))와 통신할 수 있다. 통신 인터페이스(190)는 일정 거리 내에 위치한 외부 전자 장치와의 근거리 네트워크 예를 들어, BT(블루투스), Wi-Fi 네트워크를 지원할 수 있다. 통신 인터페이스(190)는 광역 네트워크(wide area network, WAN)가 지원되지 않을 수 있고, 근거리 네트워크를 통해 연결된 외부 전자 장치에 의존하여 광역 네트워크에 접속할 수 있다. 통신 인터페이스(190)는 제1 네트워크(예: 근거리 네트워크)를 이용하여 제1 외부 전자 장치(예: 모바일 단말)와 연결되고, 연결된 제1 외부 전자 장치와의 동기화를 위한 정보 교환(capability exchange)을 수행할 수 있다. 또한, 통신 인터페이스(190)는 상기 제1 외부 전자 장치와 웹 프록시 기능을 이용하여 상기 제1 외부 전자 장치를 통한 제2 네트워크(예: 광역 네트워크)를 이용하여 제2 외부 전자 장치(예: 웹 서버, 클라우드 서버 등)로부터 어플리케이션 프로그램을 다운로드하거나, 사용자 연관 이벤트와 상기 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신할 수 있다. 또한, 통신 인터페이스(190)는 상기 제1 외부 전자 장치와의 동기화를 수행하는 동안, 상기 제1 외부 전자 장치를 통한 제2 네트워크(예: 광역 네트워크)를 이용하여 제2 외부 전자 장치(예: 웹 서버)로부터 적어도 하나의 어플리케이션 프로그램들과 연관된 데이터를 수신할 수 있다.
프로세서(120)는 웨어러블 전자 장치(301)의 전반적인 동작을 제어할 수 있다. 프로세서(120)는 상기 통신 인터페이스(190)를 제어하여 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신하여 상기 비휘발성 메모리(134)에 저장할 수 있다. 상기 데이터에 포함된 연관 정보는 외부 전자 장치(예: 웹 서버, 클라우드 서버 등)에서 다양한 사용자로부터 수집된 사용자 관련 이벤트와 어플리케이션 프로그램 간의 연관성에 관한 정보일 수 있다. 예를 들어, 외부 전자 장치는 다양한 사용자로부터 어플리케이션 프로그램의 실행 빈도에 관한 정보, 일정 기간(예: 일주일) 동안 어플리케이션 프로그램의 실행 횟수에 관한 정보, 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트에 관한 정보 등을 수집하여 상기 연관 정보를 생성할 수 있다. 외부 전자 장치에 의해 생성된 연관 정보를 일반적인 사용자 패턴의 통계에 기반한 것으로, 각 개인 사용자의 사용자 패턴과는 차이가 있을 수 있다. 상기 연관 정보는 상기 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트에 관한 정보로서, 상기 사용자 연관 이벤트는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)와 연관된 것일 수 있다. 상기 연관 정보는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)를 통해 사용자가 직접 입력한 사용자 입력에 연관된 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램의 실행 빈도를 포함할 수 있다. 예를 들면, 연관 정보는 입력 인터페이스(150)의 회전에 따라 입력된 회전 입력 정보를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 또는, 터치스크린 디스플레이(160)의 터치에 따라 입력된 터치 입력 정보를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 또한, 연관 정보는 웨어러블 전자 장치(301)에서 수집된 정보에 연관된 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램의 실행 빈도를 포함할 수 있다. 예를 들면, 연관 정보는 하루와 연관하여 선택된 시간(예: 아침, 점심, 저녁 등), 요일과 연관하여 선택된 시간(예: 월, 화, 수, ..., 휴일 등), 년도와 연관하여 선택된 시간(예: 2017, 2018, 이벤트 개최 년도 등), 계절과 연관하여 선택된 시간(예: 봄, 여름, 가을, 겨울 등)를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 또는, 연관 정보는 웨어러블 전자 장치(301)에 의해 검출된 모션 정보를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 예를 들면, 연관 정보는 사용자의 운동 모션(예: 달리기, 걷기 등), 사용자의 휴식 모션(예: 앉기, 서기, 잠자기 등), 차량 탑승 모션을 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 또는, 연관 정보는 웨어러블 전자 장치(301)의 상태 정보에 연관된 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 예를 들면, 연관 정보는 알림의 발생(예: 메시지, 전화 등의 수신 알림), 통지의 발생(예: 배터리 부족, 메모리 부족 등의 통지)을 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다.
프로세서(120)는 웨어러블 전자 장치(301)에 포함된 구성 요소들(예: 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176), 및 통신 인터페이스(190))을 이용하여 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트를 검출할 수 있다. 사용자 연관 이벤트는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)와 연관되는 것을 포함하고, 상기 터치스크린 디스플레이(160)에 연관된 사용자 연관 이벤트는 터치스크린 디스플레이 상의 터치 입력 예를 들면, 탭, 더블 탭, 드래그, 슬라이드, 홀드/프레스, 스윕(swipe), 회전, 프레스&드래그, 핀치, 스트레드 등을 포함할 수 있다. 또한, 상기 입력 인터페이스(150)와 연관된 사용자 연관 이벤트는 휠 입력 인터페이스(예: 도 3의 휠 입력 인터페이스(330) 또는 용두 입력 인터페이스(예: 도 3의 용두 입력 인터페이스(340))의 회전 입력 예를 들면, 회전 방향, 회전 속도, 회전량 등을 포함할 수 있다. 또한, 사용자 연관 이벤트는 웨어러블 전자 장치(301)에 내장된 전자적 또는 기계적 시계에서 획득된 시간 정보, 웨어러블 전자 장치(301)의 센서 모듈(176)에 의해 획득된 모션 정보를 포함할 수 있다.
프로세서(120)는 상기 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 적어도 하나의 어플리케이션 프로그램을 상기 휘발성 메모리(132)에 로드할 수 있다. 상기 어플리케이션 프로그램들은 상기 웨어러블 전자 장치(301)에 포함된 어플리케이션 프로그램들을 의미할 수 있다. 예컨대, 상기 어플리케이션 프로그램들은 상기 비휘발성 메모리(134)에 저장될 수 있다. 또한, 상기 터치스크린 디스플레이(160) 상에 사용자 인터페이스를 표시하지 않는 채로, 상기 휘발성 메모리(132)에 어플리케이션 프로그램이 로드되는 것은 해당 어플리케이션 프로그램을 사용자가 선택하여 실행하기 이전에 사전 실행되는 상태를 의미할 수 있다. 또한, 상기 휘발성 메모리(132)에 어플리케이션 프로그램이 로드되는 것은 사용자가 인식되지 않는 상태에서 실행되는 백그라운드 상태를 의미할 수도 있다. 일 실시예에 따른 웨어러블 전자 장치(301)는 사용자로부터 상기 휘발성 메모리(132)에 로드된 어플리케이션 프로그램에 대한 실행을 요청 받을 경우 빠르게 실행할 수 있다. 프로세서(120)는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)를 이용하여 적어도 하나의 어플리케이션 프로그램을 선택하기 위한 사용자 입력이 수신되면, 상기 휘발성 메모리(132)에 로드된 어플리케이션 프로그램의 사용자 인터페이스를 빠르게 표시할 수 있다.
프로세서(120)는 웨어러블 전자 장치(301)에 포함된 구성 요소들(예: 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176), 및 통신 인터페이스(190))을 이용하여 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트를 검출하고, 상기 검출된 사용자 연관 이벤트에 기반하여 상기 비휘발성 메모리(134)에 저장된 연관 정보를 갱신하여 저장할 수 있다. 프로세서(120)는 검출된 사용자 연관 이벤트에 대하여 학습 알고리즘을 적용하여, 학습 결과에 근거하여 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 갱신할 수 있다. 상기 연관 정보는, 사용자 별로 상이하게 갱신될 수 있다.
프로세서(120)는 웨어러블 전자 장치(301)에 포함된 구성 요소들(예: 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176), 및 통신 인터페이스(190))을 이용하여 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트를 검출하고, 상기 검출된 사용자 연관 이벤트에 의해 실행되는 어플리케이션 프로그램에 기반하여 상기 비휘발성 메모리(134)에 저장된 연관 정보를 갱신하여 저장할 수 있다. 프로세서(120)는 검출된 사용자 연관 이벤트에 의해 실행되는 어플리케이션 프로그램에 대하여 학습 알고리즘을 적용하여, 학습 결과에 근거하여 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 갱신할 수 있다. 상기 연관 정보는, 사용자 별로 상이하게 갱신될 수 있다.
프로세서(120)는 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램의 상태(예: 설치, 삭제, 또는 업데이트 등)를 판단하고, 상기 판단된 상태에 기반하여 상기 연관 정보를 갱신할 수 있다.
프로세서(120)는 비휘발성 메모리(134)에 저장되거나 또는 갱신되어 저장된 연관 정보에 기반하여, 상기 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 휘발성 메모리(132)에 로드될 적어도 하나의 어플리케이션 프로그램을 결정할 수 있다. 프로세서(120)는 상기 연관 정보로부터 사용자의 개인화된 어플리케이션 프로그램의 사용 패턴을 판단하고, 판단된 사용 패턴에 따라 상기 휘발성 메모리(132)에 로드될 적어도 하나의 어플리케이션 프로그램을 결정할 수 있다.
프로세서(120)는 통신 인터페이스(190)를 이용하여 외부 전자 장치(예: 서버(108), 전자 장치(102, 104))와 통신을 수행할 수 있다. 예를 들어, 웨어러블 전자 장치(301)에 포함된 통신 인터페이스(190)는 일정 거리 내에 위치한 외부 전자 장치와의 근거리 네트워크 예를 들어, BT(블루투스), Wi-Fi 네트워크를 지원할 수 있다. 프로세서(120)는 제1 네트워크(예: 근거리 네트워크)를 이용하여 제1 외부 전자 장치(예: 모바일 단말)와 연결되고, 연결된 제1 외부 전자 장치와의 동기화를 위한 정보 교환(capability exchange)을 수행할 수 있다. 또한, 프로세서(120)는 통신 인터페이스(190)를 통해 제2 네트워크(예: 광역 네트워크)를 이용하여 제2 외부 전자 장치(예: 웹 서버, 클라우드 서버 등)로부터 어플리케이션 프로그램을 다운로드하거나, 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신할 수 있다.
프로세서(120)는 상기 통신 인터페이스(190)에서 지원되는 제1 네트워크를 이용하여 상기 제1 외부 전자 장치와 동기화를 수행할 수 있고, 상기 제1 외부 전자 장치와 동기화를 수행하는 동안, 상기 휘발성 메모리(132)에 로드된 적어도 하나의 어플리케이션 프로그램들과 연관된 데이터를 상기 제1 외부 전자 장치를 통한 제2 네트워크를 이용하여 제2 외부 전자 장치로부터 수신하여 저장할 수 있다.
프로세서(120)는 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램 중 하나 이상의 어플리케이션 프로그램을 실행할 수 있다. 프로세서(120)는 복수의 어플리케이션 프로그램이 실행될 시, 웨어러블 전자 장치와 연관된 상황(예: 메모리 부족 상황, 온도 상승 상황, 배터리 부족 상황 등)을 판단하고, 상기 판단된 상황이 지정된 조건(예: 메모리의 가용 용량 부족)을 만족하는 경우, 상기 비휘발성 메모리(134)에 저장되거나 또는 갱신되어 저장된 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램 중 적어도 하나의 실행된 어플리케이션 프로그램의 종료 여부를 결정할 수 있다. 예를 들어, 프로세서(120)는 상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램에 대한 우선 순위를 결정하고, 상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 우선 순위에 기반하여, 상기 적어도 하나의 실행된 어플리케이션 프로그램의 종료를 방지 할 수 있다. 상기 우선 순위는 어플리케이션 프로그램의 실행 빈도에 따라 우선적으로 실행을 유지할 어플리케이션 프로그램에 대한 순위에 대한 정보를 의미할 수 있다. 예를 들어, 종료할 적어도 하나의 어플리케이션에 대해 상기 우선 순위에 따른 가중치를 부여하여, 우선 순위가 높은 어플리케이션 프로그램이 종료되는 것을 방지할 수 있다.
도 5는 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하기 위한 추론 프레임워크의 블록도(500)이다.
도 5를 참조하면, 웨어러블 전자 장치(301)(예: 전자 장치(101))는 어플리케이션 프로그램(146)을 제어하기 위한 추론 프레임워크(501)를 포함할 수 있다. 추론 프레임워크(501)는 상기 웨어러블 전자 장치(301)의 비휘발성 메모리(134)에 저장되는 소프트웨어 프로그램으로 구현될 수 있다. 추론 프레임워크(501)는 프로세서(120)가 직접, 또는 상기 프로세서(120)의 제어하에 다른 구성요소들을 이용하여 어플리케이션 프로그램(146)을 제어하는 기능을 수행할 수 있다.
추론 프레임워크(501)는 이벤트 매니저(510), 어플리케이션 컨텍스트 매니저(520)를 포함할 수 있다. 또한, 추론 프레임워크(501)는 어플리케이션 프로그램을 실행 또는 종료하기 위한 어플리케이션 관리 데몬(530), 패키지 파일의 형태로 배포되는 어플리케이션 프로그램의 설치, 삭제 또는 갱신을 관리하기 위한 패키지 매니저(540), 시스템 리소스(예: 프로세스, 메모리, 또는 전원)를 제어하는 시스템 프레임워크(550)(예: 운영 체제(142)), 메모리를 관리하기 위한 메모리 매니저(560)와 기능적으로 연결되어 어플리케이션 프로그램(146)을 제어하는 동작과 연관된 명령 또는 데이터를 통신할 수 있다.
추론 프레임워크(501)의 이벤트 매니저(510)는 상기 입력 인터페이스(150)에 포함된 휠 입력 인터페이스(330) 또는 용두 입력 인터페이스(340)의 회전 입력 예를 들면, 회전 방향, 회전 속도, 회전량 등을 포함하는 휠 이벤트(511), 상기 터치스크린 디스플레이(160) 상의 터치 입력 예를 들면, 탭, 더블 탭, 드래그, 슬라이드, 홀드/프레스, 스윕(swipe), 회전, 프레스&드래그, 핀치, 또는 스트레드 등을 포함하는 터치 이벤트(512), 상기 통신 인터페이스(190)를 이용하여 외부 전자 장치(예: 서버(108), 전자 장치(102, 104))와의 통신 연결에 관한 연결 이벤트(513)를 검출하고, 검출된 휠 이벤트(511), 터치 이벤트(512) 및 연결 이벤트(513)를 상기 어플리케이션 컨텍스트 매니저(520)에 제공할 수 있다.
추론 프레임워크(501)의 어플리케이션 컨텍스트 매니저(520)는 상기 이벤트 매니저(510)로부터 검출된 휠 이벤트(511), 터치 이벤트(512) 및 연결 이벤트(513)를 수신하는 이벤트 수신부(521), 상기 이벤트 수신부(521)로부터 수신된 휠 이벤트(511), 터치 이벤트(512) 및 연결 이벤트(513)에 기반하여 사전 실행될 어플리케이션 프로그램(146)을 결정하는 결정 엔진(523) 및 상기 결정 엔진(523)에 의해 결정된 사전 실행될 어플리케이션 프로그램(146)을 사전 실행하기 위한 사전 런칭 매니저(522)를 포함할 수 있다. 상기 결정 엔진(523)은 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신하고, 수신된 데이터를 이용하여 학습 알고리즘에 적용될 초기 데이터로 이용할 수 있다. 상기 결정 엔진(523)은 상기 이벤트 수신부(521)로부터 수신된 휠 이벤트(511), 터치 이벤트(512) 및 연결 이벤트(513)에 대하여 학습 알고리즘을 적용하여, 학습 결과에 근거하여 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 갱신할 수 있다. 상기 결정 엔진(523)은 갱신되어 저장된 연관 정보에 기반하여, 사전 실행될 어플리케이션 프로그램(146)을 결정할 수 있다. 또한, 상기 사전 런칭 매니저(522)는 상기 결정 엔진(523)에서 결정된 적어도 하나의 어플리케이션 프로그램(146)을 사전 실행하도록 하는 요청을 상기 어플리케이션 관리 데몬(530)에 전달할 수 있다. 상기 어플리케이션 관리 데몬(530)은 사전 실행하도록 요청된 어플리케이션 프로그램(146)의 사용자 인터페이스를 터치스크린 디스플레이(160) 상에 표시하지 않는 채로, 휘발성 메모리(132)에 로드할 수 있다.
도 6은 다양한 실시예들에 따른 웨어러블 전자 장치의 추론 프레임워크가 사용자 관련 이벤트를 검출하는 동작을 설명하기 위한 도면(600)이다.
도 6을 참조하면, 웨어러블 전자 장치(301)(예: 전자 장치(101))의 추론 프레임워크(501)는 휠 입력 인터페이스(330)를 이용하여 어플리케이션 프로그램(146)의 실행과 연관된 사용자 연관 이벤트를 검출할 수 있다.
웨어러블 전자 장치(301)의 터치스크린 디스플레이(160)는 워치 페이스 화면(610)을 표시할 수 있다.
상기 웨어러블 전자 장치(301)는 상기 터치스크린 디스플레이(160)에 표시된 화면을 상기 휠 입력 인터페이스(330)에 의한 회전 입력의 사용자 연관 이벤트에 따라 변경되는 화면으로 표시할 수 있다. 예를 들어, 상기 웨어러블 전자 장치(301)는 상기 휠 입력 인터페이스(330)를 시계 방향으로 회전시키면, 휠 입력 인터페이스(330)의 회전 속도 또는 회전량에 따라 상기 워치 페이스 화면(610)에서 어플리케이션 프로그램에 연관된 위젯 화면(621, 622, 623, 624)으로 변경하여 표시할 수 있다. 다른 예를 들어, 상기 웨어러블 전자 장치(301)는 상기 휠 입력 인터페이스(330)를 반 시계 방향으로 회전시키면, 휠 입력 인터페이스(330)의 회전 속도 또는 회전량에 따라 상기 워치 페이스 화면(610)에서 알림과 연관된 알림 화면(631, 632, 633, 634)으로 변경하여 표시할 수 있다. 상기 추론 프레임워크(501)는 상기 휠 입력 인터페이스(330)에 의한 회전 입력 정보를 포함하는 휠 이벤트를 수신할 수 있다. 또한, 상기 추론 프레임워크(501)는 상기 휠 입력 인터페이스(330)의 시계 방향 회전에 대응하여 표시되는 위젯 화면(621, 622, 623, 624)에 관한 정보를 포함하는 위젯 이벤트를 수신할 수 있다. 또한, 상기 추론 프레임워크(501)는 상기 휠 입력 인터페이스(330)의 반 시계 방향 회전에 대응하여 표시되는 알림 화면(631, 632, 633, 634)에 관한 정보를 포함하는 통지 이벤트를 수신할 수 있다. 상기 추론 프레임워크(501)는 상기 수신된 휠 이벤트, 위젯 이벤트 및 통지 이벤트에 기반하여 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램의 실행 빈도에 관한 정보를 갱신하고, 갱신된 정보에 기반하여 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 갱신할 수 있다. 상기 연관 정보는, 사용자 별로 상이하게 갱신될 수 있다.
도 7은 다양한 실시예들에 따른 웨어러블 전자 장치의 추론 프레임워크가 어플리케이션 프로그램의 상태를 판단하는 동작을 설명하기 위한 도면(700)이다.
도 7을 참조하면, 웨어러블 전자 장치(301)(예: 전자 장치(101))의 추론 프레임워크(501)는 어플리케이션 프로그램의 실행, 종료, 설치, 삭제 또는 업데이트를 관리하는 어플리케이션 프레임워크(710)에 포함된 어플리케이션 관리 데몬(530) 및 패키지 매니저(540)로부터 어플리케이션 프로그램의 상태 정보를 수신할 수 있다. 추론 프레임워크(501)는 상기 어플리케이션 관리 데몬(530)으로부터 어플리케이션 프로그램의 실행(런치) 또는 종료와 관련된 정보를 수신할 수 있다. 또한, 추론 프레임워크(501)는 상기 패키지 매니저(540)로부터 어플리케이션 프로그램의 설치, 삭제 또는 업데이트와 관련된 정보를 수신할 수 있다. 추론 프레임워크(501)는 상기 어플리케이션 관리 데몬(530) 및 상기 패키지 매니저(540)로부터 수신된 정보에 기반하여 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램의 상태를 판단하고, 상기 판단된 상태에 기반하여 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 갱신할 수 있다. 상기 연관 정보는, 사용자 별로 상이하게 갱신될 수 있다.
도 8은 다양한 실시예들에 따른 웨어러블 전자 장치의 추론 프레임워크가 어플리케이션 프로그램을 사전 실행하는 동작을 설명하기 위한 도면(800)이다.
도 8을 참조하면, 웨어러블 전자 장치(301)(예: 전자 장치(101))의 추론 프레임워크(501)는 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 수신하여 비휘발성 메모리(134)에 저장하고, 웨어러블 전자 장치(301)에 포함된 구성 요소들(예: 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176), 및 통신 인터페이스(190))을 이용하여 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트를 검출하고, 상기 검출된 사용자 연관 이벤트 또는 상기 검출된 사용자 연관 이벤트에 의해 실행되는 어플리케이션 프로그램에 기반하여 상기 비휘발성 메모리(134)에 저장된 연관 정보를 갱신하여 저장할 수 있다. 또한, 추론 프레임워크(501)는 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램의 상태(예: 설치, 삭제, 업데이트 등)를 판단하고, 상기 판단된 상태에 기반하여 상기 연관 정보를 갱신하여 저장할 수 있다. 또한, 추론 프레임워크(501)는 비휘발성 메모리(134)에 저장되거나 또는 갱신되어 저장된 연관 정보에 기반하여, 상기 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 휘발성 메모리(132)에 로드될 적어도 하나의 어플리케이션 프로그램(841, 842)을 결정할 수 있다.
추론 프레임워크(501)는 상기 어플리케이션 관리 데몬(530)과 기능적으로 연결되어 상기 결정된 적어도 하나의 어플리케이션 프로그램(841, 842)를 사전 실행하도록 요청할 수 있다. 상기 어플리케이션 관리 데몬(530)는 사전 실행하도록 요청된 상기 적어도 하나의 어플리케이션 프로그램(841, 842)를 상기 터치스크린 디스플레이(160) 상에 사용자 인터페이스를 표시하지 않는 채로, 상기 휘발성 메모리(132)에 로드할 수 있다. 상기 휘발성 메모리(132)에 어플리케이션 프로그램이 로드되는 것은 해당 어플리케이션 프로그램을 사용자가 선택하여 실행하기 이전에 사전 실행되는 상태를 의미할 수 있다. 또한, 상기 휘발성 메모리(132)에 어플리케이션 프로그램이 로드되는 것은 사용자가 인식되지 않는 상태에서 실행되는 백그라운드 상태를 의미할 수도 있다. 일 실시예에 따른 웨어러블 전자 장치(301)는 사용자로부터 상기 어플리케이션 프로그램(841, 842)에 대한 실행을 요청 받을 경우, 상기 휘발성 메모리(132)에 로드된 어플리케이션 프로그램을 빠르게 실행 또는 제공할 수 있다.
도 9는 다양한 실시예들에 따른 웨어러블 전자 장치와 외부 전자 장치와의 연결을 설명하는 개념도(900)이다.
도 9를 참조하면, 웨어러블 전자 장치(301)(예: 전자 장치(101))는 제1 외부 전자 장치(102)와 근거리 통신 연결(198)(예: BT(블루투스) 또는 Wi-Fi)을 형성할 수 있다. 웨어러블 전자 장치(301)는 형성된 통신 연결을 통하여 상기 제1 외부 전자 장치(102)와의 동기화를 위한 정보 교환(capability exchange)을 수행할 수 있다. 또한, 웨어러블 전자 장치(301)는 형성된 통신 연결을 통하여 제1 외부 전자 장치(102)와 웹 프록시 기능을 이용하여 제1 외부 전자 장치(102)를 통한 제2 네트워크(199)(예: 광역 네트워크)를 이용하여 제2 외부 전자 장치(108)(예: 웹 서버, 클라우드 서버 등)로부터 어플리케이션 프로그램을 다운로드하거나, 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신할 수 있다.
일 실시예에 따른, 웨어러블 전자 장치(301)는 상기 제1 외부 전자 장치(102)와 동기화를 수행하는 동안, 상기 휘발성 메모리(132)에 로드된 적어도 하나의 어플리케이션 프로그램들과 연관된 데이터를 상기 제1 외부 전자 장치(102)를 통한 제2 네트워크(199)를 이용하여 제2 외부 전자 장치(108)로부터 수신하여 저장할 수 있다.
도 10은 다양한 실시예들에 따른 웨어러블 전자 장치의 추론 프레임워크가 메모리를 관리하는 동작을 설명하기 위한 도면(1000)이다.
도 10을 참조하면, 웨어러블 전자 장치(301)(예: 전자 장치(101))는 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램 중 하나 이상의 어플리케이션 프로그램을 실행할 수 있다. 웨어러블 전자 장치(301)는 복수의 어플리케이션 프로그램이 실행될 시, 웨어러블 전자 장치와 연관된 상황(예: 메모리 부족 상황, 온도 상승 상황, 배터리 부족 상황 등)을 판단하고, 상기 판단된 상황이 지정된 조건(예: 메모리의 가용 용량 부족)을 만족하는 경우, 상기 비휘발성 메모리(134)에 저장되거나 또는 갱신되어 저장된 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램 중 적어도 하나의 종료 여부를 결정할 수 있다.
웨어러블 전자 장치(301)의 추론 프레임워크(501)는 비휘발성 메모리(134)에 저장되거나 또는 갱신되어 저장된 연관 정보에 기반하여, 하나 이상의 실행된 어플리케이션 프로그램에 대한 우선 순위를 결정하고, 상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 우선 순위에 기반하여, 상기 적어도 하나의 실행된 어플리케이션 프로그램의 종료를 방지 또는 제어 할 수 있다.
추론 프레임워크(501)는 리소스 관리 데몬(1010) 및 메모리 매니저(560)과 기능적으로 연결되어 웨어러블 전자 장치(301)와 연관된 상황(예: 메모리 부족 상황, 온도 상승 상황, 배터리 부족 상황 등)을 판단하고, 상기 판단된 상황이 지정된 조건(예: 메모리의 가용 용량 부족)을 만족하는 경우, 상기 비휘발성 메모리(134)에 저장되거나 또는 갱신되어 저장된 연관 정보에 기반하여, 하나 이상의 실행된 어플리케이션 프로그램에 대한 우선 순위를 결정하고, 결정된 어플리케이션 프로그램에 대한 우선 순위를 리소스 관리 데몬(1010)을 통해 상기 메모리 매니저(560)에 제공할 수 있다. 상기 메모리 매니저(560)는 종료할 적어도 하나의 어플리케이션에 대해 상기 우선 순위에 따른 가중치를 부여하여, 우선 순위가 높은 어플리케이션 프로그램이 종료되는 것을 방지 할 수 있다.
다양한 실시예에 따른 전자 장치(예: 웨어러블 전자 장치(301) 또는 전자 장치(101))는, 하우징(310), 상기 하우징(310)에 연결되고, 사용자의 신체 일부에 탈착 가능하게 장착하도록 구성된 마운팅 구조(350), 상기 하우징(310)의 일부를 통하여 노출된 터치스크린 디스플레이(예: 표시 장치(160) 또는 터치스크린 디스플레이(320)), 상기 하우징(310) 상에 위치되거나 또는 상기 하우징에 부착된 입력 인터페이스(예: 입력 인터페이스(150), 휠 입력 인터페이스(330) 또는 용두 입력 인터페이스(340)), 상기 터치스크린 디스플레이(160) 및 상기 입력 인터페이스(150)에 작동적으로 연결된 프로세서(120), 상기 프로세서(120)에 작동적으로 연결된 휘발성 메모리(132), 및 상기 프로세서(120)에 작동적으로 연결된 비휘발성 메모리(134)를 포함하고, 상기 비휘발성 메모리(134)는, 복수의 어플리케이션 프로그램(146)을 저장하도록 구성되고, 실행될 때, 상기 프로세서(120)가, 외부 전자 장치(예: 전자 장치(102), 전자 장치(104) 또는 서버(108))로부터 사용자 연관 이벤트와 상기 어플리케이션 프로그램들 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하여 상기 비휘발성 메모리(134)에 저장하고, 상기 사용자 연관 이벤트를 검출하고, 및 상기 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 상기 휘발성 메모리(132)에 로드하도록 하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 사용자 연관 이벤트는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)와 연관된 것일 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 입력 인터페이스(150)는 휠 입력 인터페이스(330) 또는 용두(watch crown) 입력 인터페이스(340) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 사용자 연관 이벤트는 선택된 시간(time of a day) 또는 상기 전자 장치에 의해 검출된 모션과 연관된 것일 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 인스트럭션들은, 상기 프로세서(120)로 하여금, 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)를 이용하여 상기 적어도 하나의 어플리케이션 프로그램(146)을 선택하기 위한 사용자 입력을 수신하고, 및 상기 사용자 입력이 수신되면, 상기 터치스크린 디스플레이(160) 상에 상기 사용자 인터페이스를 표시하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 인스트럭션들은, 상기 프로세서(120)로 하여금, 상기 사용자 연관 이벤트를 검출하고, 및 상기 검출된 사용자 연관 이벤트에 기반하여 상기 연관 정보를 갱신하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 인스트럭션들은, 상기 프로세서(120)로 하여금, 상기 사용자 연관 이벤트를 검출하고, 및 상기 검출된 사용자 연관 이벤트에 의해 실행되는 어플리케이션 프로그램(146)에 기반하여 상기 연관 정보를 갱신하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 인스트럭션들은, 상기 프로세서(120)로 하여금, 상기 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램의 상태를 판단하고, 및 상기 판단된 상태에 기반하여 상기 연관 정보를 갱신하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 인스트럭션들은, 상기 프로세서(120)로 하여금, 상기 연관 정보에 기반하여, 상기 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램(146)의 사용자 인터페이스가 표시되지 않는 동안, 상기 휘발성 메모리(132)에 로드될 적어도 하나의 어플리케이션 프로그램(146)을 결정하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 제1 외부 전자 장치(예: 전자 장치(102), 전자 장치(104) 또는 서버(108))와 제1 네트워크(198)를 이용하여 데이터를 통신하는 통신 인터페이스(190)를 더 포함하고, 상기 인스트럭션들은, 상기 프로세서(120)로 하여금, 상기 제1 네트워크(198)를 이용하여 상기 제1 외부 전자 장치(102)와 동기화를 수행하고, 및 상기 제1 외부 전자 장치(102)와 동기화를 수행하는 동안, 상기 휘발성 메모리(132)에 로드된 적어도 하나의 어플리케이션 프로그램들(146)과 연관된 데이터를 상기 제1 외부 전자 장치(102)를 통한 제2 네트워크(199)를 이용하여 제2 외부 전자 장치(예: 전자 장치(104) 또는 서버(108))로부터 수신하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 제1 네트워크(198)는 BT 또는 Wi-Fi 네트워크 중 적어도 하나를 포함하고, 상기 제2 네트워크(199)는 3G 또는 LTE 네트워크 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 인스트럭션들은, 상기 프로세서(120)로 하여금, 상기 복수의 어플리케이션 프로그램(146) 중 하나 이상의 어플리케이션 프로그램을 실행하고, 상기 전자 장치와 연관된 상황을 판단하고, 및 상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램(146) 중 적어도 하나의 실행된 어플리케이션 프로그램의 종료 여부를 결정하도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치(301)에 있어서, 상기 인스트럭션들은, 상기 프로세서(120)로 하여금, 상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램(146)에 대한 우선 순위를 결정하고, 및 상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 우선 순위에 기반하여, 상기 적어도 하나의 실행된 어플리케이션 프로그램의 종료를 방지하도록 설정될 수 있다.
도 11은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도(1100)이다.
다양한 실시예에 따르면, 동작 1110 내지 동작 1130은 웨어러블 전자 장치(301) 또는 프로세서(120)를 통해 실행될 수 있다. 상기 웨어러블 전자 장치(301)는 상기 동작 1110 내지 동작 1130이 실행되도록 하는 인스트럭션들 및 추론 프레임워크(501)를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1110에서, 웨어러블 전자 장치(301)(예: 프로세서(120))는 통신 인터페이스(190)를 제어하여 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신할 수 있다. 웨어러블 전자 장치(301)는 수신된 데이터를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다. 상기 데이터에 포함된 연관 정보는 외부 전자 장치(예: 웹 서버, 클라우드 서버 등)에서 다양한 사용자로부터 수집된 사용자 관련 이벤트와 어플리케이션 프로그램 간의 연관성에 관한 정보일 수 있다. 예를 들어, 외부 전자 장치는 다양한 사용자로부터 어플리케이션 프로그램의 실행 빈도에 관한 정보, 일정 기간(예: 일주일) 동안 어플리케이션 프로그램의 실행 횟수에 관한 정보, 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트에 관한 정보 등을 수집하여 상기 연관 정보를 생성할 수 있다. 외부 전자 장치에 의해 생성된 연관 정보는 일반적인 사용자 패턴의 통계에 기반한 것으로, 각 개인 사용자의 사용자 패턴과는 차이가 있을 수 있다. 상기 연관 정보는 상기 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트에 관한 정보로서, 상기 사용자 연관 이벤트는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)와 연관된 것일 수 있다. 일 실시예에 따르면 상기 연관 정보는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)를 통해 사용자가 직접 입력한 사용자 입력에 연관된 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램의 실행 빈도를 포함할 수 있다. 예를 들면, 연관 정보는 입력 인터페이스(150)의 회전에 따라 입력된 회전 입력 정보를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 다른 예를 들면, 터치스크린 디스플레이(160)의 터치에 따라 입력된 터치 입력 정보를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 일 실시예에 따르면, 연관 정보는 웨어러블 전자 장치(301)에서 수집된 정보에 연관된 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램의 실행 빈도를 포함할 수 있다. 예를 들면, 연관 정보는 하루와 연관하여 선택된 시간(예: 아침, 점심, 저녁 등), 요일과 연관하여 선택된 시간(예: 월, 화, 수, ..., 휴일 등), 년도와 연관하여 선택된 시간(예: 2017, 2018, 이벤트 개최 년도 등), 계절과 연관하여 선택된 시간(예: 봄, 여름, 가을, 겨울 등)를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 일 실시예에 따르면, 연관 정보는 웨어러블 전자 장치(301)에 의해 검출된 모션 정보를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 예를 들면, 연관 정보는 사용자의 운동 모션(예: 달리기, 걷기 등), 사용자의 휴식 모션(예: 앉기, 서기, 잠자기 등), 차량 탑승 모션을 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 일 실시예에 따르면, 연관 정보는 웨어러블 전자 장치(301)의 상태 정보에 연관된 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다. 예를 들면, 연관 정보는 알림의 발생(예: 메시지, 전화 등의 수신 알림), 통지의 발생(예: 배터리 부족, 메모리 부족 등의 통지)을 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램과의 연관성을 포함할 수 있다.
동작 1120에서, 웨어러블 전자 장치(301)는 웨어러블 전자 장치(301)에 포함된 구성 요소들(예: 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176), 및 통신 인터페이스(190))을 이용하여 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트를 검출할 수 있다. 사용자 연관 이벤트는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)와 연관되는 것을 포함하고, 상기 터치스크린 디스플레이(160)에 연관된 사용자 연관 이벤트는 터치스크린 디스플레이(160) 상의 터치 입력 예를 들면, 탭, 더블 탭, 드래그, 슬라이드, 홀드/프레스, 스윕(swipe), 회전, 프레스&드래그, 핀치, 또는 스트레드 등을 포함할 수 있다. 또한, 상기 입력 인터페이스(150)와 연관된 사용자 연관 이벤트는 휠 입력 인터페이스(예: 도 3의 휠 입력 인터페이스(330) 또는 용두 입력 인터페이스(예: 도 3의 용두 입력 인터페이스(340))의 회전 입력 예를 들면, 회전 방향, 회전 속도, 회전량 등을 포함할 수 있다. 또한, 사용자 연관 이벤트는 웨어러블 전자 장치(301)에 내장된 전자적 또는 기계적 시계에서 획득된 시간 정보, 웨어러블 전자 장치(301)의 센서 모듈(176)에 의해 획득된 모션 정보를 포함할 수 있다.
동작 1130에서, 웨어러블 전자 장치(301)는 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 적어도 하나의 어플리케이션 프로그램을 상기 휘발성 메모리(132)에 로드할 수 있다. 상기 어플리케이션 프로그램들은 상기 웨어러블 전자 장치(301)에 포함된 어플리케이션 프로그램들을 의미할 수 있다. 예컨대, 상기 어플리케이션 프로그램들은 상기 비휘발성 메모리(134)에 저장될 수 있다. 또한, 상기 터치스크린 디스플레이(160) 상에 사용자 인터페이스를 표시하지 않는 채로, 상기 휘발성 메모리(132)에 어플리케이션 프로그램이 로드되는 것은 해당 어플리케이션 프로그램을 사용자가 선택하여 실행하기 이전에 사전 실행되는 상태를 의미할 수 있다. 또한, 상기 휘발성 메모리(132)에 어플리케이션 프로그램이 로드되는 것은 사용자가 인식되지 않는 상태에서 실행되는 백그라운드 상태를 의미할 수도 있다. 일 실시예에 따른 웨어러블 전자 장치(301)는 사용자로부터 상기 휘발성 메모리(132)에 로드된 어플리케이션에 대한 실행 요청을 받을 경우 프로그램을 빠르게 실행할 수 있다.
도 12는 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도(1200)이다.
다양한 실시예에 따르면, 동작 1210 내지 동작 1240은 웨어러블 전자 장치(301) 또는 프로세서(120)를 통해 실행될 수 있다. 상기 웨어러블 전자 장치(301)는 상기 동작 1210 내지 동작 1240이 실행되도록 하는 인스트럭션들 및 추론 프레임워크(501)를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1210에서, 웨어러블 전자 장치(301)(예: 프로세서(120))는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)를 이용하여 적어도 하나의 어플리케이션 프로그램을 선택하기 위한 사용자 입력이 수신할 수 있다.
동작 1220에서, 웨어러블 전자 장치(301)는 사용자 입력에 대응하는 어플리케이션 프로그램이 휘발성 메모리(132)에 로드된 어플리케이션 프로그램인지를 확인할 수 있다. 웨어러블 전자 장치(301)는 사용자 입력에 대응하는 어플리케이션 프로그램이 휘발성 메모리(132)에 로드되지 않은 것으로 판단되면, 동작 1230에서, 웨어러블 전자 장치(301)는 상기 사용자 입력에 대응하는 어플리케이션 프로그램을 상기 휘발성 메모리(132)에 로드하여 해당 어플리케이션 프로그램을 실행할 수 있다.
동작 1220에서, 웨어러블 전자 장치(301)는 상기 사용자 입력에 대응하는 어플리케이션 프로그램이 휘발성 메모리(132)에 로드된 것이 확인되면, 동작 1240에서, 웨어러블 전자 장치(301)는 상기 휘발성 메모리(132)에 로드된 어플리케이션 프로그램의 사용자 인터페이스를 터치스크린 디스플레이(160) 상에 곧바로 표시할 수 있다.
도 13은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도(1300)이다.
다양한 실시예에 따르면, 동작 1310 내지 동작 1340은 웨어러블 전자 장치(301) 또는 프로세서(120)를 통해 실행될 수 있다. 상기 웨어러블 전자 장치(301)는 상기 동작 1310 내지 동작 1340이 실행되도록 하는 인스트럭션들 및 추론 프레임워크(501)를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1310에서, 웨어러블 전자 장치(301)(예: 프로세서(120))는 통신 인터페이스(190)를 제어하여 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신할 수 있다.
동작 1320에서, 웨어러블 전자 장치(301)는 수신된 데이터에 포함된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1330에서, 웨어러블 전자 장치(301)는 웨어러블 전자 장치(301)에 포함된 구성 요소들(예: 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176), 및 통신 인터페이스(190))을 이용하여 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트를 검출할 수 있다.
동작 1340에서, 웨어러블 전자 장치(301)는 상기 검출된 사용자 연관 이벤트에 기반하여 상기 비휘발성 메모리(134)에 저장된 연관 정보를 갱신할 수 있다. 웨어러블 전자 장치(301)는 갱신된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다. 예를 들어, 웨어러블 전자 장치(301)는 검출된 사용자 연관 이벤트에 대하여 학습 알고리즘을 적용하여, 학습 결과에 근거하여 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 갱신할 수 있다. 상기 연관 정보는, 사용자 별로 상이하게 갱신될 수 있다. 일 실시예에 따르면, 웨어러블 전자 장치(301)는 학습 결과에 근거하여 갱신된 연관 정보를 주기적 또는 갱신 시 외부 전자 장치(예: 서버, 클라우드 서버 등)에 제공할 수 있다.
도 14는 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도(1400)이다.
다양한 실시예에 따르면, 동작 1410 내지 동작 1450은 웨어러블 전자 장치(301) 또는 프로세서(120)를 통해 실행될 수 있다. 상기 웨어러블 전자 장치(301)는 상기 동작 1410 내지 동작 1450이 실행되도록 하는 인스트럭션들 및 추론 프레임워크(501)를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1410에서, 웨어러블 전자 장치(301)(예: 프로세서(120))는 통신 인터페이스(190)를 제어하여 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신할 수 있다.
동작 1420에서, 웨어러블 전자 장치(301)는 수신된 데이터에 포함된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1430에서, 웨어러블 전자 장치(301)는 웨어러블 전자 장치(301)에 포함된 구성 요소들(예: 입력 인터페이스(150), 터치스크린 디스플레이(160), 센서 모듈(176), 및 통신 인터페이스(190))을 이용하여 어플리케이션 프로그램의 실행과 연관된 사용자 연관 이벤트를 검출할 수 있다.
동작 1440에서, 웨어러블 전자 장치(301)는 상기 검출된 사용자 연관 이벤트에 의해 어플리케이션 프로그램을 실행할 수 있다. 웨어러블 전자 장치(301)는 입력 인터페이스(150)의 회전에 따라 입력된 회전 입력 정보 또는 터치스크린 디스플레이(160)의 터치에 따라 입력된 터치 입력 정보를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램을 확인할 수 있다. 또는, 웨어러블 전자 장치(301)는 선택된 시간을 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램을 확인할 수 있다. 또는, 웨어러블 전자 장치(301)는 웨어러블 전자 장치(301)에 의해 검출된 모션 정보를 포함하는 사용자 연관 이벤트에 대응하여 실행되는 어플리케이션 프로그램을 확인할 수 있다. 또는, 웨어러블 전자 장치(301)는 웨어러블 전자 장치(301)의 상태 정보에 연관된 사용자 연관 이벤트(예: 알림 또는 통지의 발생)에 대응하여 실행되는 어플리케이션 프로그램을 확인할 수 있다.
동작 1450에서, 웨어러블 전자 장치(301)는 상기 검출된 사용자 연관 이벤트에 의해 실행되는 어플리케이션 프로그램에 기반하여 상기 비휘발성 메모리(134)에 저장된 연관 정보를 갱신할 수 있다. 예를 들어, 웨어러블 전자 장치(301)는 상기 검출된 사용자 연관 이벤트에 의해 실행된 어플리케이션 프로그램을 확인하고, 상기 검출된 사용자 연관 이벤트와 실행된 어플리케이션 프로그램을 연관시킨 연관 정보가 기 저장된 연관 정보와 상이할 경우, 기 저장된 연관 정보를 새로 확인된 연관 정보로 갱신할 수 있다. 웨어러블 전자 장치(301)는 갱신된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다. 예를 들어, 웨어러블 전자 장치(301)는 검출된 사용자 연관 이벤트에 의해 실행되는 어플리케이션 프로그램에 대하여 학습 알고리즘을 적용하여, 학습 결과에 근거하여 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 갱신할 수 있다. 상기 연관 정보는, 사용자 별로 상이하게 갱신될 수 있다. 또한, 웨어러블 전자 장치(301)는 학습 결과에 근거하여 갱신된 연관 정보를 주기적 또는 갱신 시 외부 전자 장치(예: 서버, 클라우드 서버 등)에 제공할 수 있다.
도 15는 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도(1500)이다.
다양한 실시예에 따르면, 동작 1510 내지 동작 1540은 웨어러블 전자 장치(301) 또는 프로세서(120)를 통해 실행될 수 있다. 상기 웨어러블 전자 장치(301)는 상기 동작 1510 내지 동작 1540이 실행되도록 하는 인스트럭션들 및 추론 프레임워크(501)를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1510에서, 웨어러블 전자 장치(301)(예: 프로세서(120))는 통신 인터페이스(190)를 제어하여 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신할 수 있다.
동작 1520에서, 웨어러블 전자 장치(301)는 수신된 데이터에 포함된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1530에서, 웨어러블 전자 장치(301)는 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램의 상태(예: 설치, 삭제, 업데이트 등)를 판단할 수 있다. 예를 들어, 추론 프레임워크(501)는 어플리케이션 관리 데몬(530)을 통해 어플리케이션 프로그램의 실행(런치) 또는 종료와 관련된 정보를 수신하고, 패키지 매니저(540)를 통해 어플리케이션 프로그램의 설치, 삭제 또는 업데이트와 관련된 정보를 수신할 수 있다. 웨어러블 전자 장치(301)는 확인된 정보에 기반하여 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램의 상태를 판단할 수 있다.
동작 1540에서, 웨어러블 전자 장치(301)는 상기 판단된 상태에 기반하여 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 갱신할 수 있다. 웨어러블 전자 장치(301)는 갱신된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다. 상기 연관 정보는, 사용자 별로 상이하게 갱신될 수 있다.
도 16은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도(1600)이다.
다양한 실시예에 따르면, 동작 1610 내지 동작 1640은 웨어러블 전자 장치(301) 또는 프로세서(120)를 통해 실행될 수 있다. 상기 웨어러블 전자 장치(301)는 상기 동작 1610 내지 동작 1640이 실행되도록 하는 인스트럭션들 및 추론 프레임워크(501)를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1610에서, 웨어러블 전자 장치(301)(예: 프로세서(120))는 통신 인터페이스(190)를 제어하여 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신할 수 있다.
동작 1620에서, 웨어러블 전자 장치(301)는 수신된 데이터에 포함된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1630에서, 웨어러블 전자 장치(301)는 비휘발성 메모리(134)에 저장되거나 또는 갱신되어 저장된 연관 정보에 기반하여, 상기 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 휘발성 메모리(132)에 로드될 적어도 하나의 어플리케이션 프로그램을 결정할 수 있다. 예를 들어, 웨어러블 전자 장치(301)는 상기 연관 정보로부터 사용자의 개인화된 어플리케이션 프로그램의 사용 패턴을 판단하고, 판단된 사용 패턴에 따라 상기 휘발성 메모리(132)에 로드될 적어도 하나의 어플리케이션 프로그램을 결정할 수 있다.
동작 1640에서, 웨어러블 전자 장치(301)는 결정된 적어도 하나의 어플리케이션 프로그램을 상기 휘발성 메모리(132)에 로드할 수 있다.
도 17은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도이다.
다양한 실시예에 따르면, 동작 1710 내지 동작 1780은 웨어러블 전자 장치(301) 또는 프로세서(120)를 통해 실행될 수 있다. 상기 웨어러블 전자 장치(301)는 상기 동작 1710 내지 동작 1780이 실행되도록 하는 인스트럭션들 및 추론 프레임워크(501)를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1710에서, 웨어러블 전자 장치(301)(예: 프로세서(120))는 통신 인터페이스(190)를 제어하여 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신할 수 있다.
동작 1720에서, 웨어러블 전자 장치(301)는 수신된 데이터에 포함된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1730에서, 웨어러블 전자 장치(301)는 통신 인터페이스(190)를 이용하여 제1 외부 전자 장치(예: 모바일 단말)와 제1 네트워크(예: 근거리 네트워크)를 통한 통신 연결을 형성할 수 있다. 웨어러블 전자 장치(301)는 제1 네트워크를 이용하여 상기 제1 외부 전자 장치와 동기화를 수행할 수 있다. 웨어러블 전자 장치(301)는 상기 제1 외부 전자 장치와의 동기화를 위한 정보 교환(capability exchange)을 수행할 수 있다.
동작 1740에서, 웨어러블 전자 장치(301)는 상기 제1 외부 전자 장치(102)와 동기화를 수행하는 동안, 상기 휘발성 메모리(132)에 로드된 적어도 하나의 어플리케이션 프로그램들과 연관된 데이터를 상기 제1 외부 전자 장치(102)를 통한 제2 네트워크(예: 광역 네트워크)를 이용하여 제2 외부 전자 장치로부터 수신하여 저장할 수 있다. 상기 어플리케이션 프로그램들과 연관된 데이터는 어플리케이션 프로그램에 의해 제공되는 정보를 포함할 수 있다. 예를 들어, 상기 어플리케이션 프로그램이 날씨 정보를 제공하는 경우, 상기 연관된 데이터는 상기 제2 외부 전자 장치(예: 날씨 정보 제공 서버)로부터 제공되는 날씨 정보를 포함할 수 있다. 또는, 상기 어플리케이션 프로그램들과 연관된 데이터는 어플리케이션 프로그램의 업데이트를 위한 정보를 포함할 수 있다.
동작 1750에서, 웨어러블 전자 장치(301)는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)를 이용하여 적어도 하나의 어플리케이션 프로그램을 선택하기 위한 사용자 입력이 수신할 수 있다.
동작 1760에서, 웨어러블 전자 장치(301)는 사용자 입력에 대응하는 어플리케이션 프로그램이 휘발성 메모리(132)에 로드된 어플리케이션 프로그램인지를 확인할 수 있다. 웨어러블 전자 장치(301)는 사용자 입력에 대응하는 어플리케이션 프로그램이 휘발성 메모리(132)에 로드되지 않은 것으로 판단되면, 동작 1770에서, 웨어러블 전자 장치(301)는 상기 제1 외부 전자 장치(102)를 통한 제2 네트워크(예: 광역 네트워크)를 이용하여 제2 외부 전자 장치로부터 어플리케이션 프로그램과 연관된 데이터를 수신하여 저장할 수 있다.
동작 1760에서, 웨어러블 전자 장치(301)는 상기 사용자 입력에 대응하는 어플리케이션 프로그램이 휘발성 메모리(132)에 로드된 것으로 판단되면, 동작 1780에서, 웨어러블 전자 장치(301)는 상기 휘발성 메모리(132)에 로드된 어플리케이션 프로그램의 사용자 인터페이스를 터치스크린 디스플레이(160) 상에 곧바로 표시할 수 있다.
도 18은 다양한 실시예들에 따른 웨어러블 전자 장치가 어플리케이션 프로그램을 제어하는 방법을 나타내는 흐름도(1800)이다.
다양한 실시예에 따르면, 동작 1810 내지 동작 1860은 웨어러블 전자 장치(301) 또는 프로세서(120)를 통해 실행될 수 있다. 상기 웨어러블 전자 장치(301)는 상기 동작 1810 내지 동작 1860이 실행되도록 하는 인스트럭션들 및 추론 프레임워크(501)를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1810에서, 웨어러블 전자 장치(301)(예: 프로세서(120))는 통신 인터페이스(190)를 제어하여 외부 전자 장치(예: 서버, 모바일 단말 등)로부터 사용자 연관 이벤트와 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보(예: 추론 학습 데이터)를 포함하는 데이터를 수신할 수 있다.
동작 1820에서, 웨어러블 전자 장치(301)는 수신된 데이터에 포함된 연관 정보를 메모리(130)의 비휘발성 메모리(134)에 저장할 수 있다.
동작 1830에서, 웨어러블 전자 장치(301)는 웨어러블 전자 장치와 연관된 상황(예: 메모리 부족 상황, 온도 상승 상황, 배터리 부족 상황 등)을 판단할 수 있다. 예를 들어, 웨어러블 전자 장치(301)는 복수의 어플리케이션 프로그램이 실행될 시, 웨어러블 전자 장치와 연관된 상황(예: 메모리 부족 상황, 온도 상승 상황, 배터리 부족 상황 등)을 판단할 수 있다.
동작 1840에서, 웨어러블 전자 장치(301)는 상기 판단된 상황에서 어플리케이션 프로그램의 제어가 필요한지를 판단할 수 있다. 예를 들어, 상기 판단된 상황이 메모리의 가용 용량이 부족한 상황이거나, 웨어러블 전자 장치(301)의 온도가 상승한 상황이거나, 배터리가 부족한 상황인 경우, 또는 실행중인 어플리케이션 프로그램 중 적어도 하나 이상의 어플리케이션 프로그램을 종료하는 제어가 필요할 수 있다. 동작 1840에서, 웨어러블 전자 장치(301)는 상기 판단된 상황에 의해 어플리케이션 프로그램을 종료하는 제어가 필요한 경우, 동작 1850에서, 웨어러블 전자 장치(301)는 백그라운드에서 실행되는 어플리케이션 프로그램들을 검색할 수 있다.
동작 1860에서, 웨어러블 전자 장치(301)는 상기 비휘발성 메모리(134)에 저장되거나 또는 갱신되어 저장된 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램 중 적어도 하나의 실행된 어플리케이션 프로그램의 종료 여부를 결정할 수 있다. 예를 들어, 웨어러블 전자 장치(301)는 상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램에 대한 우선 순위를 결정하고, 상기 우선 순위에 기반하여, 상기 적어도 하나의 실행된 어플리케이션 프로그램의 종료를 방지하도록 할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법은, 외부 전자 장치(예: 전자 장치(102), 전자 장치(104) 또는 서버(108))로부터 사용자 연관 이벤트와 복수의 어플리케이션 프로그램 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하는 동작(예: 1110), 상기 사용자 연관 이벤트를 검출하는 동작(예: 1120), 및 상기 전자 장치(예: 웨어러블 전자 장치(301) 또는 전자 장치(101))에 포함된 터치스크린 디스플레이(예: 표시 장치(160) 또는 터치스크린 디스플레이(320)) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램(146)을 상기 전자 장치(301)에 포함된 휘발성 메모리(132)에 로드하는 동작(예: 1130)을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 사용자 연관 이벤트는 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(예: 입력 인터페이스(150), 휠 입력 인터페이스(330) 또는 용두 입력 인터페이스(340))와 연관된 것일 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 입력 인터페이스(150)는 휠 입력 인터페이스(330) 또는 용두(watch crown) 입력 인터페이스(340) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 사용자 연관 이벤트는 선택된 시간(time of a day) 또는 상기 전자 장치에 의해 검출된 모션과 연관된 것일 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 터치스크린 디스플레이(160) 또는 상기 입력 인터페이스(150)를 이용하여 상기 적어도 하나의 어플리케이션 프로그램을 선택하기 위한 사용자 입력을 수신하는 동작(예: 1210), 및 상기 사용자 입력이 수신되면, 상기 터치스크린 디스플레이 상에 상기 사용자 인터페이스를 표시하는 동작(예: 1240)을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 사용자 연관 이벤트를 검출하는 동작(예: 1330, 1430), 및 상기 검출된 사용자 연관 이벤트 또는 상기 검출된 사용자 연관 이벤트에 의해 실행되는 어플리케이션 프로그램에 기반하여 상기 연관 정보를 갱신하는 동작(예: 1340, 1450)을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 비휘발성 메모리(134)에 저장된 복수의 어플리케이션 프로그램의 상태를 판단하는 동작(예: 1530), 및 상기 판단된 상태에 기반하여 상기 연관 정보를 갱신하는 동작(예: 1540)을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 연관 정보에 기반하여, 상기 터치스크린 디스플레이(160) 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 휘발성 메모리(132)에 로드될 적어도 하나의 어플리케이션 프로그램을 결정하는 동작(예: 1630)을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 제1 네트워크(198)를 이용하여 제1 외부 전자 장치(예: 전자 장치(102), 전자 장치(104) 또는 서버(108))와 동기화를 수행하는 동작(예: 1730), 및 상기 제1 외부 전자 장치(102)와 동기화를 수행하는 동안, 상기 휘발성 메모리(132)에 로드된 적어도 하나의 어플리케이션 프로그램들과 연관된 데이터를 상기 제1 외부 전자 장치(102)를 통한 제2 네트워크(199)를 이용하여 제2 외부 전자 장치(예: 전자 장치(104) 또는 서버(108))로부터 수신하는 동작(예: 1740)을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 제1 네트워크(198)는 BT 또는 Wi-Fi 네트워크 중 적어도 하나를 포함하고, 상기 제2 네트워크(199)는 3G 또는 LTE 네트워크 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 복수의 어플리케이션 프로그램 중 하나 이상의 어플리케이션 프로그램을 실행하는 동작, 상기 전자 장치와 연관된 상황을 판단하는 동작(예: 1830), 및 상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램 중 적어도 하나의 실행된 어플리케이션 프로그램의 종료 여부를 결정하는 동작(예: 1860)을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로그램을 제어하는 방법에 있어서, 상기 어플리케이션 프로그램의 종료 여부를 결정하는 동작은, 상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램에 대한 우선 순위를 결정하는 동작, 및 상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 우선 순위에 기반하여, 상기 적어도 하나의 실행된 어플리케이션 프로그램의 종료를 방지하도록 하는 동작을 포함할 수 있다.
다양한 실시예에 따라 전자 장치를 제어하기 위한 인스트럭션들을 저장하고 있는 저장 매체에 있어서, 상기 인스트럭션들은 적어도 하나의 회로에 의하여 실행될 때에 상기 적어도 하나의 회로로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 외부 전자 장치로부터 사용자 연관 이벤트와 복수의 어플리케이션 프로그램의 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하는 동작, 상기 사용자 연관 이벤트를 검출하는 동작, 및 터치스크린 디스플레이 상에 상기 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 휘발성 메모리에 로드하는 동작을 포함할 수 있다.
101: 웨어러블 전자 장치, 120: 프로세서, 130: 메모리, 150: 입력 인터페이스, 160: 터치스크린 디스플레이, 176: 센서 모듈, 189: 배터리, 190: 통신 인터페이스

Claims (20)

  1. 전자 장치에 있어서,
    하우징;
    상기 하우징에 연결되고, 사용자의 신체 일부에 탈착 가능하게 장착하도록 구성된 마운팅 구조;
    상기 하우징의 일부를 통하여 노출된 터치스크린 디스플레이;
    상기 하우징 상에 위치되거나 또는 상기 하우징에 부착된 입력 인터페이스;
    상기 터치스크린 디스플레이 및 상기 입력 인터페이스에 작동적으로 연결된 프로세서;
    상기 프로세서에 작동적으로 연결된 휘발성 메모리; 및
    상기 프로세서에 작동적으로 연결된 비휘발성 메모리를 포함하고,
    상기 비휘발성 메모리는, 복수의 어플리케이션 프로그램들을 저장하도록 구성되고, 실행될 때, 상기 프로세서가,
    제1 외부 전자 장치로부터 사용자 연관 이벤트와 상기 복수의 어플리케이션 프로그램들 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하여 상기 비휘발성 메모리에 저장하고;
    상기 사용자 연관 이벤트를 검출하고; 및
    상기 터치스크린 디스플레이 상에 상기 적어도 하나의 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 상기 휘발성 메모리에 로드하도록 하는 인스트럭션들을 저장하되,
    상기 제1 외부 전자 장치와 제1 네트워크를 이용하여 데이터를 통신하는 통신 인터페이스를 더 포함하고,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 제1 네트워크를 이용하여 상기 제1 외부 전자 장치와 동기화를 수행하고,
    상기 제1 외부 전자 장치와 동기화를 수행하는 동안, 상기 휘발성 메모리에 로드된 적어도 하나의 어플리케이션 프로그램들과 연관된 데이터를 상기 제1 외부 전자 장치를 통한 제2 네트워크를 이용하여 제2 외부 전자 장치로부터 수신하도록 설정된 전자 장치.
  2. 제1항에 있어서,
    상기 사용자 연관 이벤트는 상기 터치스크린 디스플레이 또는 상기 입력 인터페이스와 연관된 것인 전자 장치.
  3. 제2항에 있어서,
    상기 입력 인터페이스는 휠 입력 인터페이스 또는 용두(watch crown) 입력 인터페이스 중 적어도 하나를 포함하는 전자 장치.
  4. 제1항에 있어서,
    상기 사용자 연관 이벤트는 선택된 시간(time of a day) 또는 상기 전자 장치에 의해 검출된 모션과 연관된 것인 전자 장치.
  5. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 터치스크린 디스플레이 또는 상기 입력 인터페이스를 이용하여 상기 적어도 하나의 어플리케이션 프로그램을 선택하기 위한 사용자 입력을 수신하고; 및
    상기 사용자 입력이 수신되면, 상기 터치스크린 디스플레이 상에 상기 사용자 인터페이스를 표시하도록 설정된 전자 장치.
  6. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 사용자 연관 이벤트를 검출하고; 및
    상기 검출된 사용자 연관 이벤트에 기반하여 상기 연관 정보를 갱신하도록 설정된 전자 장치.
  7. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 사용자 연관 이벤트를 검출하고; 및
    상기 검출된 사용자 연관 이벤트에 의해 실행되는 상기 적어도 하나의 어플리케이션 프로그램에 기반하여 상기 연관 정보를 갱신하도록 설정된 전자 장치.
  8. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 비휘발성 메모리에 저장된 상기 복수의 어플리케이션 프로그램들의 상태를 판단하고; 및
    상기 판단된 상태에 기반하여 상기 연관 정보를 갱신하도록 설정된 전자 장치.
  9. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 연관 정보에 기반하여, 상기 터치스크린 디스플레이 상에 상기 적어도 하나의 어플리케이션 프로그램의 상기 사용자 인터페이스가 표시되지 않는 동안, 상기 휘발성 메모리에 로드될 상기 적어도 하나의 어플리케이션 프로그램을 결정하도록 설정된 전자 장치.
  10. 삭제
  11. 제1항에 있어서,
    상기 제1 네트워크는 BT 또는 Wi-Fi 네트워크 중 적어도 하나를 포함하고,
    상기 제2 네트워크는 3G 또는 LTE 네트워크 중 적어도 하나를 포함하는 전자 장치.
  12. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 복수의 어플리케이션 프로그램들 중 하나 이상의 어플리케이션 프로그램을 실행하고;
    상기 전자 장치와 연관된 상황을 판단하고; 및
    상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램 중 적어도 하나의 실행된 어플리케이션 프로그램의 종료 여부를 결정하도록 설정된 전자 장치.
  13. 제12항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램에 대한 우선 순위를 결정하고; 및
    상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 우선 순위에 기반하여, 상기 적어도 하나의 실행된 어플리케이션 프로그램의 종료를 방지하도록 설정된 전자 장치.
  14. 전자 장치가 어플리케이션 프로그램을 제어하는 방법에 있어서,
    제1 외부 전자 장치로부터 사용자 연관 이벤트와 복수의 어플리케이션 프로그램들 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하는 동작;
    상기 사용자 연관 이벤트를 검출하는 동작;
    상기 전자 장치에 포함된 터치스크린 디스플레이 상에 상기 적어도 하나의 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 상기 전자 장치에 포함된 휘발성 메모리에 로드하는 동작;
    제1 네트워크를 이용하여 상기 제1 외부 전자 장치와 동기화를 수행하는 동작; 및
    상기 제1 외부 전자 장치와 동기화를 수행하는 동안, 상기 휘발성 메모리에 로드된 상기 적어도 하나의 어플리케이션 프로그램과 연관된 데이터를 상기 제1 외부 전자 장치를 통한 제2 네트워크를 이용하여 제2 외부 전자 장치로부터 수신하는 동작을 포함하는 방법.
  15. 제14항에 있어서,
    상기 사용자 연관 이벤트를 검출하는 동작; 및
    상기 검출된 사용자 연관 이벤트 또는 상기 검출된 사용자 연관 이벤트에 의해 실행되는 상기 적어도 하나의 어플리케이션 프로그램에 기반하여 상기 연관 정보를 갱신하는 동작을 더 포함하는 방법.
  16. 제14항에 있어서,
    상기 연관 정보에 기반하여, 상기 터치스크린 디스플레이 상에 상기 적어도 하나의 어플리케이션 프로그램의 상기 사용자 인터페이스가 표시되지 않는 동안, 상기 휘발성 메모리에 로드될 상기 적어도 하나의 어플리케이션 프로그램을 결정하는 동작을 더 포함하는 방법.
  17. 삭제
  18. 제14항에 있어서,
    상기 복수의 어플리케이션 프로그램들 중 하나 이상의 어플리케이션 프로그램을 실행하는 동작;
    상기 전자 장치와 연관된 상황을 판단하는 동작; 및
    상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램 중 적어도 하나의 실행된 어플리케이션 프로그램의 종료 여부를 결정하는 동작을 더 포함하는 방법.
  19. 제18항에 있어서,
    상기 적어도 하나의 실행된 어플리케이션 프로그램의 종료 여부를 결정하는 동작은,
    상기 연관 정보에 기반하여, 상기 하나 이상의 실행된 어플리케이션 프로그램에 대한 우선 순위를 결정하는 동작; 및
    상기 판단된 상황이 지정된 조건을 만족하는 경우, 상기 우선 순위에 기반하여, 상기 적어도 하나의 실행된 어플리케이션 프로그램의 종료를 방지하도록 하는 동작을 더 포함하는 방법.
  20. 인스트럭션들을 저장하고 있는 컴퓨터 판독가능 저장 매체에 있어서, 상기 인스트럭션들은 적어도 하나의 회로에 의하여 실행될 때에 상기 적어도 하나의 회로로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은,
    제1 외부 전자 장치로부터 사용자 연관 이벤트와 복수의 어플리케이션 프로그램들 중 적어도 하나의 어플리케이션 프로그램 간의 연관 정보를 포함하는 데이터를 수신하는 동작;
    상기 사용자 연관 이벤트를 검출하는 동작;
    터치스크린 디스플레이 상에 상기 적어도 하나의 어플리케이션 프로그램의 사용자 인터페이스가 표시되지 않는 동안, 상기 적어도 하나의 어플리케이션 프로그램을 휘발성 메모리에 로드하는 동작;
    제1 네트워크를 이용하여 상기 제1 외부 전자 장치와 동기화를 수행하는 동작; 및
    상기 제1 외부 전자 장치와 동기화를 수행하는 동안, 상기 휘발성 메모리에 로드된 상기 적어도 하나의 어플리케이션 프로그램과 연관된 데이터를 상기 제1 외부 전자 장치를 통한 제2 네트워크를 이용하여 제2 외부 전자 장치로부터 수신하는 동작을 포함하는 인스트럭션들을 저장하고 있는 컴퓨터 판독가능 저장매체

KR1020170138716A 2017-10-24 2017-10-24 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법 KR102348693B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170138716A KR102348693B1 (ko) 2017-10-24 2017-10-24 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법
PCT/KR2018/012627 WO2019083271A1 (ko) 2017-10-24 2018-10-24 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법
US16/758,174 US11429256B2 (en) 2017-10-24 2018-10-24 Electronic device for controlling application program and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170138716A KR102348693B1 (ko) 2017-10-24 2017-10-24 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20190045765A KR20190045765A (ko) 2019-05-03
KR102348693B1 true KR102348693B1 (ko) 2022-01-10

Family

ID=66246954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170138716A KR102348693B1 (ko) 2017-10-24 2017-10-24 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법

Country Status (3)

Country Link
US (1) US11429256B2 (ko)
KR (1) KR102348693B1 (ko)
WO (1) WO2019083271A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634447B (zh) 2013-08-09 2022-04-19 苹果公司 用于电子设备的触觉开关
US10599101B2 (en) 2014-09-02 2020-03-24 Apple Inc. Wearable electronic device
US10061399B2 (en) 2016-07-15 2018-08-28 Apple Inc. Capacitive gap sensor ring for an input device
US11360440B2 (en) 2018-06-25 2022-06-14 Apple Inc. Crown for an electronic watch
US11561515B2 (en) 2018-08-02 2023-01-24 Apple Inc. Crown for an electronic watch
CN209625187U (zh) 2018-08-30 2019-11-12 苹果公司 电子手表和电子设备
JP7082071B2 (ja) * 2019-01-30 2022-06-07 株式会社日立製作所 情報連携システム及び情報連携方法
US11194299B1 (en) 2019-02-12 2021-12-07 Apple Inc. Variable frictional feedback device for a digital crown of an electronic watch
US11550268B2 (en) 2020-06-02 2023-01-10 Apple Inc. Switch module for electronic crown assembly
KR102638912B1 (ko) * 2023-08-22 2024-02-21 주식회사 앱포스터 Nfc 태깅을 이용한 워치페이스 제공 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402280B1 (ko) * 2012-12-27 2014-06-02 가톨릭대학교 산학협력단 이동 단말기의 메모리 관리장치 및 그 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830589B2 (en) 2002-10-01 2017-11-28 Zhou Tian Xing Systems and methods for mobile application, wearable application, transactional messaging, calling, digital multimedia capture, payment transactions, and one touch payment, one tap payment, and one touch service
US20120324481A1 (en) * 2011-06-16 2012-12-20 Samsung Electronics Co. Ltd. Adaptive termination and pre-launching policy for improving application startup time
US9800429B2 (en) * 2013-03-15 2017-10-24 Smartbotics Inc. Adaptive home and commercial automation devices, methods and systems based on the proximity of controlling elements
US9256484B2 (en) * 2013-06-09 2016-02-09 Apple Inc. Dynamic adjustment of mobile device based on user activity
JP2015114970A (ja) * 2013-12-13 2015-06-22 ソニー株式会社 情報処理装置および情報処理方法
US20150253351A1 (en) * 2014-03-07 2015-09-10 Qualcomm Incorporated Detecting Imminent Use of a Device
US10356189B2 (en) * 2014-11-20 2019-07-16 Suunto Oy System and method for creating ad-hoc events from sensed sport-specific data
KR102332934B1 (ko) 2014-12-10 2021-11-30 삼성전자주식회사 다른 전자 장치와 연결되는 전자 장치 및 그 제어 방법
KR20160075079A (ko) * 2014-12-19 2016-06-29 삼성전자주식회사 다른 전자 장치를 제어하는 전자 장치 및 제어 방법
US20170287106A1 (en) * 2015-05-05 2017-10-05 Mediatek Inc. Graphics system and method for generating a blended image using content hints
KR102443069B1 (ko) 2015-08-12 2022-09-14 삼성전자주식회사 어플리케이션을 실행하기 위한 장치 및 방법
US10382927B2 (en) 2015-08-20 2019-08-13 Samsung Electronics Co., Ltd. Method of text input for wearable devices
US20170085677A1 (en) * 2015-09-18 2017-03-23 Quixey, Inc. Recommending Applications
KR20170045780A (ko) * 2015-10-19 2017-04-28 엘지전자 주식회사 이동단말기
US9928168B2 (en) * 2016-01-11 2018-03-27 Qualcomm Incorporated Non-volatile random access system memory with DRAM program caching
US10725761B2 (en) * 2016-06-10 2020-07-28 Apple Inc. Providing updated application data for previewing applications on a display
JP7073640B2 (ja) * 2017-06-23 2022-05-24 カシオ計算機株式会社 電子機器、感情情報取得システム、プログラム及び感情情報取得方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402280B1 (ko) * 2012-12-27 2014-06-02 가톨릭대학교 산학협력단 이동 단말기의 메모리 관리장치 및 그 방법

Also Published As

Publication number Publication date
KR20190045765A (ko) 2019-05-03
US11429256B2 (en) 2022-08-30
WO2019083271A1 (ko) 2019-05-02
US20200310609A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
KR102348693B1 (ko) 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법
CN109074158B (zh) 电子设备及其启动应用的方法
KR102521734B1 (ko) 복수의 어플리케이션들을 실행하는 웨어러블 장치와 이의 동작 방법
KR102395832B1 (ko) 운동 정보 제공 방법 및 이를 지원하는 전자 장치
CN106257428B (zh) 用于提供关于无线充电状态的通知的设备和方法
CN109429102B (zh) 用于显示应用的电子装置及服务器
US10296210B2 (en) Electronic device and operating method thereof
KR102536266B1 (ko) 메모리 누수 검출 방법 및 그 전자 장치
CN111935379A (zh) 电子装置
KR20180106231A (ko) 오디오 출력을 제어하기 위한 전자 장치 및 그의 동작 방법
US10962785B2 (en) Electronic device, mobile electronic device, and display device, which are controlled on basis of user gaze and input
KR102350497B1 (ko) 모션 센서로부터 획득된 데이터를 이용하여 기압 센서의 데이터를 결정하는 방법 및 이를 구현한 전자 장치
KR20160027757A (ko) 전자 장치 내의 발열을 관리하기 위한 방법 및 이를 위한 전자 장치
US11216070B2 (en) Electronic device and method for controlling actuator by utilizing same
CN111051152A (zh) 提供智能密钥服务的方法及其电子设备
KR20180091207A (ko) 터치 입력 처리 방법 및 이를 지원하는 전자 장치
EP3396508B1 (en) Method of applying graphic effect and electronic device performing same
KR20170054072A (ko) 액세서리 장치를 감지하는 전자장치 및 그의 동작 방법
US11231782B2 (en) Electronic device for providing time information and operation method of electronic device
KR20210037320A (ko) 어플리케이션 실행 방법 및 장치
CN108124054B (zh) 基于握持传感器的感测信号显示用户界面的设备
KR102490673B1 (ko) 어플리케이션에 대한 부가 정보 제공 방법 및 이를 지원하는 전자 장치
US11599321B2 (en) Electronic device and operating method therefor
US10379625B2 (en) Method for displaying screen in electronic device and electronic device thereof
US10796398B2 (en) Electronic device for displaying image and method for controlling the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant