KR102039084B1 - 사용자 기능 운용 방법 및 이를 지원하는 전자 장치 - Google Patents

사용자 기능 운용 방법 및 이를 지원하는 전자 장치 Download PDF

Info

Publication number
KR102039084B1
KR102039084B1 KR1020130019441A KR20130019441A KR102039084B1 KR 102039084 B1 KR102039084 B1 KR 102039084B1 KR 1020130019441 A KR1020130019441 A KR 1020130019441A KR 20130019441 A KR20130019441 A KR 20130019441A KR 102039084 B1 KR102039084 B1 KR 102039084B1
Authority
KR
South Korea
Prior art keywords
widget
information
memory
user function
execution
Prior art date
Application number
KR1020130019441A
Other languages
English (en)
Other versions
KR20140071510A (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 US14/081,152 priority Critical patent/US10088986B2/en
Priority to EP13193172.7A priority patent/EP2733606A3/en
Priority to CN201380059878.6A priority patent/CN104798037B/zh
Priority to PCT/KR2013/010431 priority patent/WO2014077637A1/en
Publication of KR20140071510A publication Critical patent/KR20140071510A/ko
Application granted granted Critical
Publication of KR102039084B1 publication Critical patent/KR102039084B1/ko

Links

Images

Classifications

    • 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

본 발명은 사용자 기능 운용에 관한 것으로, 특히 선택 이벤트 또는 일정 실행 주기에 따라 실행되는 사용자 기능 수행을 위한 프로그램 데이터를 메모리에 로딩하고 타이머를 구동하는 실행 과정, 상기 사용자 기능 실행에 따라 수집된 정보를 출력하는 과정, 상기 타이머 만료 시 상기 로딩된 프로그램 데이터를 상기 메모리에서 제거하되 상기 사용자 기능 실행에 따른 정보 출력을 유지하는 과정을 포함하는 것을 특징으로 하는 사용자 기능 운용 방법과 이를 지원하는 전자 장치의 구성을 개시한다.

Description

사용자 기능 운용 방법 및 이를 지원하는 전자 장치{Operating Method of User Function and Electronic Device supporting the same}
본 발명은 사용자 기능 운용에 관한 것으로, 특히 단말기에서의 사용자 기능을 효과적으로 수행할 수 있도록 지원하는 사용자 기능 운용 방법 및 이를 지원하는 전자 장치에 관한 것이다.
최근 각종 기능을 가진 모바일 전자장치 또는 전자기기들이 빠른 속도로 개발되고 있다. 모바일 전자 기기들에 있어서, 다양한 사용자 기능의 운용은 매우 중요한 부분이다. 이에 따라 많은 사용자 기능이 모바일 전자 기기에 탑재되고 있다.
본 발명은 전자 장치에서 사용자 기능을 보다 효율적으로 운용할 수 있도록 하는 사용자 기능 운용 방법 및 이를 지원하는 전자 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명은 위젯 실행 주기가 도래하거나 상기 위젯 실행을 위한 입력 이벤트를 수신하는 위젯 뷰어 어플리케이션, 상기 위젯 실행을 위한 프로세스 로딩 및 프로세스 상에 상기 위젯을 로딩하고 실행시키는 위젯 서비스 프로바이더, 상기 위젯 뷰어 어플리케이션 및 상기 위젯 서비스 프로바이더 사이에 배치되어 상기 위젯 실행 제어 및 상기 위젯 기능 수행에 따른 위젯 관련 정보 출력을 제어하는 위젯 컨트롤러 프로세스를 실행 모듈로 포함하는 사용자 기능 운용을 지원하는 전자 장치의 구성을 개시한다.
본 발명은 또한, 선택 이벤트 또는 일정 실행 주기에 따라 실행되는 사용자 기능 수행을 위한 프로그램 데이터가 로딩되는 제1 메모리, 상기 프로그램 데이터의 메모리 로딩 시 구동되는 타이머, 상기 사용자 기능 실행에 따라 수집된 정보를 출력하는 표시부, 상기 표시부에 출력할 상기 정보가 저장되는 제2 메모리, 상기 타이머 만료 시 상기 로딩된 프로그램 데이터를 상기 제1 메모리에서 제거하되 상기 사용자 기능 실행에 따른 정보 출력을 유지하도록 제어하는 제어부를 포함하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치의 구성을 개시한다.
본 발명은 또한, 선택 이벤트 또는 일정 실행 주기에 따라 실행되는 사용자 기능 수행을 위한 프로그램 데이터를 메모리에 로딩하고 타이머를 구동하는 실행 과정, 상기 사용자 기능 실행에 따라 수집된 정보를 출력하는 과정, 상기 타이머 만료 시 상기 로딩된 프로그램 데이터를 상기 메모리에서 제거하되 상기 사용자 기능 실행에 따른 정보 출력을 유지하는 과정을 포함하는 것을 특징으로 하는 사용자 기능 운용 방법의 구성을 개시한다.
이상에서 살펴본 바와 같이 본 발명의 사용자 기능 운용 방법 및 이를 지원하는 전자 장치에 따르면, 본 발명은 단말기의 저전력 기반의 사용자 기능 운용을 지원한다.
또한 본 발명은 단말기의 사용자 기능 운용에 따른 부하를 저감하여 단말기 운용을 보다 효율적으로 수행할 수 있다.
도 1은 본 발명의 실시 예에 따른 사용자 기능 운용을 지원하는 전자 장치의 구성을 개략적으로 나타낸 도면.
도 2는 도 1의 구성 중 제어부 구성을 보다 상세히 나타낸 도면.
도 3은 본 발명의 실시 예에 따른 사용자 기능 운용 방법을 설명하기 위한 도면.
도 4는 본 발명의 실시 예에 따른 사용자 기능 운용 방법 중 프로세스 운용을 보다 상세히 설명하기 위한 도면.
도 5는 본 발명의 실시 예에 따른 사용자 기능 운용 방법 중 프로세스 비활성화를 설명하기 위한 도면.
도 6은 본 발명의 사용자 기능 운용 중 위젯 추가 과정을 설명하기 위한 신호 흐름도.
도 7은 본 발명의 실시 예에 따른 사용자 기능 운용 중 위젯 크기 조정 방법을 설명하기 위한 도면.
도 8은 본 발명의 사용자 기능 운용 방법 중 위젯 추가 뷰 제공을 설명하기 위한 도면.
도 9는 본 발명의 사용자 기능 운용 방법 중 데이터 표시 방식을 이미지 파일로 처리하는 방법을 설명하기 위한 도면.
도 10은 본 발명의 실시 예에 따른 사용자 기능 운용 방법 중 버퍼 기반의 표시 방식을 설명하기 위한 도면.
도 11은 본 발명의 실시 예에 따른 사용자 기능 운용 방법 중 텍스트 기반의 표시 방식을 설명하기 위한 도면.
도 12는 본 발명의 컨텐츠 렌더링 방식 중 메모리 버퍼 기반의 표시 방식을 설명하기 위한 도면.
도 13은 본 발명의 컨텐츠 렌더링 방식 중 이미지 파일 기반의 표시 방식을 설명하기 위한 도면.
도 14는 본 발명의 컨텐츠 렌더링 방식 중 텍스트 기반의 표시 방식을 설명하기 위한 도면.
도 15는 본 발명의 사용자 기능 운용에 따른 프로세스 운용을 모니터링한 결과를 나타낸 도면.
도 16A 내지 도 16D는 본 발명의 사용자 기능 운용에 따른 위젯 정보 출력 영역의 다양한 형태를 설명하기 위한 도면.
도 17A 내지 도 17C는 본 발명의 사용자 기능 운용 중 위젯 생성 및 적용의 일예를 설명하기 위한 도면.
도 18 내지 도 20은 본 발명의 사용자 기능 운용 중 프로세스 및 위젯의 라이프 사이클 관리를 설명하기 위한 도면.
이하, 본 발명의 실시 예를 첨부된 도면에 의거하여 상세히 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 또한, 실질적으로 동일한 구성과 기능을 가진 구성 요소들에 대해서는 상세한 설명을 생략하도록 한다.
마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 따라서 본 발명은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되어지지 않는다.
도 1은 본 발명의 실시 예에 따른 사용자 기능 운용을 지원하는 전자 장치(예컨대 단말기, 이하 "단말기"를 예시하여 설명)의 일예를 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 단말기(100)는 통신부(110), 입력부(120), 제어부(160), 표시부(140), 저장부(150)를 포함하며, 제어부(160) 운용을 위한 제1 메모리(161) 및 제2 메모리(162)를 포함할 수 있다. 여기서 제1 메모리(161) 및 제2 메모리(162)는 저장부(150)의 일부로 구성될 수도 있다. 또는 제1 메모리(161)는 표시부(140)의 일부 구성으로서 배치되고, 제2 메모리(162)는 제어부(160)의 일부 구성으로 배치될 수 있다. 예컨대 제1 메모리(161)는 표시부(140)의 표시 버퍼가 될 수 있으며, 제2 메모리(162)는 제어부(160)의 사용자 기능 운용을 위한 RAM 메모리가 될 수 있다. 이러한 제1 메모리(161) 및 제2 메모리(162)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 하나로 마련될 수 있다. 바람직하게는 비휘발성 메모리 예컨대 플래쉬 메모리로 구현될 수 있다. 그러나 본 발명이 메모리의 종류나 타입에 한정되는 것은 아니다.
이하 설명에서 사용자 기능 지원을 위한 프로그램 데이터 또는 응용 프로그램 루틴들에 대하여 "위젯"의 명칭을 부여하여 설명하기로 한다. 본 발명에서 "위젯"은 제1 메모리(161)에 주기적으로 또는 사용자 요청에 따라 업로드(Upload)하면서 설정된 패키지 정보(Package Information)에 따라 단말기(100)의 정보 또는 단말기(100)의 통신 기능을 기반으로 외부 정보를 수집하여 정보를 갱신하는 루틴들로 구성될 수 있다. 즉 본 발명에서 "위젯"은 제1 메모리(161)에 계속하여(continuously) 업로드하지 않고 제어부(160) 제어에 따라 또는 사용자 요청에 따라 제1 메모리(161)에 업로드하여 정보 수집 및 출력을 지원하는 적어도 하나의 응용 프로그램 루틴이 될 수 있다. 응용 프로그램 루틴은 제1 메모리(161) 측면에서 일정 데이터에 해당할 수 있다.
본 발명에서 단말기(100)는 적어도 하나의 위젯에 대하여 상술한 제1 메모리(161)의 선택적으로 업로드와 기능 지원을 수행하도록 구현된다. 단말기(100)의 저장부(150)는 본 발명에서 설명하는 위젯뿐만 아니라 전통적으로 제작 구현된 즉, 제1 메모리(161)에 반영구적으로 업로드하는 위젯 또한 저장될 수 있을 것이다. 이하 설명에서는 제1 메모리(161)에 선택적으로 업로드하여 정보를 수집하고 제공하는 응용 프로그램 루틴을 "위젯"으로서 명명하여 설명하기로 한다.
통신부(110)는 단말기(100)의 통신 기능을 지원하기 위한 구성이다. 통신부(110)는 단말기(100)가 지원하는 사용자 기능 중 외부 장치와의 연결이 필요한 기능이 수행되는 경우 통신 채널 형성을 지원한다. 이에 따라 통신부(110)는 특정 종류나 개수로 한정되는 구성은 아니다. 즉 통신부(110)는 단말기(100)가 이동통신 기능을 지원하는 경우 적어도 하나의 통신 방식을 지원하는 적어도 하나의 통신 모듈로 구성될 수 있다. 또한 통신부(110)는 단말기(100)가 근거리 무선 통신 기능을 지원하는 경우 근거리 무선 통신 채널을 형성할 수 있는 적어도 하나의 통신 모듈을 포함할 수 있다. 본 발명의 통신부(110)는 저장부(150)에 저장된 위젯(151) 중 통신 기능 운용이 필요한 위젯의 운용 요청에 따라 동작할 수 있다. 즉 위젯(151)이 활성화된 후 특정 웹 사이트의 특정 위치의 정보 수집 요청이 발생하면, 통신부(110)는 해당 웹 사이트와의 접속을 위한 통신 채널을 형성한다. 그리고 통신부(110)는 해당 위치의 정보를 수집하여 제어부(160)에 제공할 수 있다. 또한 통신부(110)는 위젯(151) 활성화에 따라 근거리 무선 통신 모듈을 활성화하고 주변 스캔 과정을 수행할 수 있다. 그리고 통신부(110)는 위젯(151)의 스케줄링된 정보에 따라 스캔에 따라 자동으로 지정된 특정 외부 장치와 통신 채널을 형성할 수 있다.그리고 통신부(110)는 위젯(151)의 스케줄링된 정보에 따라 외부 장치로 정보를 제공하거나 또는 외부 장치로부터 정보를 수신하여 제어부(160)에 제공할 수 있다.
입력부(120)는 단말기(100) 조작에 필요한 다양한 입력 신호를 생성하는 구성이다. 입력부(120)는 홈 키, 사이드 키, 키패드 등으로 구현될 수 있으며, 단말기(100)의 표시부(140)가 입력 기능을 지원하는 경우 터치스크린 형태 또는 터치 패널 형태로 구현될 수 있다. 또는 입력부(120)는 스타일러스 펜이나 전자기 유도 펜 및 이를 지원하는 패널 등으로 구현될 수도 있다. 입력부(120)는 단말기(100)의 턴-온 및 턴-오프 제어를 위한 입력 신호, 특정 위젯(151)을 실행 목록에 추가하기 위한 입력 신호, 실행 목록에 포함된 특정 위젯(151)을 중지시키기 위한 입력 신호 등을 생성할 수 있다. 또한 특정 위젯(151)의 설치 또는 설치 제거를 위한 입력 신호를 생성할 수 있다.
표시부(140)는 단말기(100) 운용에 필요한 다양한 화면을 표시할 수 있다. 예를 들어 표시부(140)는 대기 화면, 메뉴 화면 등을 출력할 수 있다. 또한 표시부(140)는 적어도 하나의 위젯(151)이 적용된 위젯 화면이 출력될 수 있다. 위젯(151)이 적용된 위젯 화면의 경우 표시부(140)는 적어도 하나의 메뉴 아이콘 등을 설정에 따라 추가 출력할 수도 있다. 특히 본 발명의 위젯(151)이 적용된 화면은 위젯(151)에 대응하는 정보 출력 영역을 포함한다. 이 정보 출력 영역은 위젯(151) 운용에 따라 수집된 정보가 출력된다. 예컨대 날씨 위젯(151) 실행에 따라 날씨 정보 출력 영역이 표시될 수 있다. 날씨 정보 출력 영역이 표시되기 위하여 날씨 정보는 제2 메모리(162) 일정 영역에 쓰인다. 또한 증권 위젯(151) 실행에 따라 증권 정보 출력 영역이 표시될 수 있다. 증권 정보 출력 영역이 표시되기 위하여 증권 정보는 제2 메모리(162)의 일정 영역에 쓰인다. 표시부(140)는 제2 메모리(162)에 쓰인 정보들을 이용하여 화면을 구성할 수 있다. 이때 제2 메모리(162)에 쓰인 정보들은 해당 위젯(151)의 실행 종료를 위한 이벤트가 발생되기 전까지 쓰인 상태를 유지할 수 있다. 즉 제2 메모리(162)에 쓰인 위젯(151)과 관련된 정보들은 위젯(151)이 제1 메모리(161)에 업로드하거나 또는 업로드하지 않거나에 관계없이 실행 목록으로 등록된 경우 제2 메모리(162) 상에 업로드할 수 있다. 표시부(140)는 위젯 기능 실행을 위한 이벤트 수신을 위한 터치 기능을 지원할 수 있다. 이를 위해 표시부(140)는 터치 패널(143) 및 표시 패널(141)을 포함할 수 있다. 표시부(140) 관련 운용에 대하여 후술하는 화면 예시도들을 참조하여 보다 상세히 설명하기로 한다.
저장부(150)는 단말기(100) 운용과 관련된 다양한 정보를 저장하는 구성이다. 예컨대 저장부(150)는 단말기(100) 운용을 위한 적어도 하나의 운용 체제를 저장할 수 있다. 또한 저장부(150)는 단말기(100)의 다양한 사용자 기능 운용을 위한 응용 프로그램을 저장할 수 있다. 특히 저장부(150)는 단말기(100)의 사용자 기능 운용을 위한 적어도 하나의 위젯(151)을 저장할 수 있다.
위젯(151)은 사용자 기능 지원을 위한 다양한 응용 프로그램 루틴들로 구성된다. 이러한 위젯(151)은 제1 메모리(161)에 업로드되고, 제어부(160)에 의해 제공된 특정 프로세서들에 의하여 운용될 수 있다. 위젯(151)은 설계에 따라 다양한 사용자 기능을 지원하도록 제작될 수 있다. 예컨대 위젯(151)은 날씨 정보를 실시간으로 제공할 수 있도록 날씨 위젯으로 제작될 수 있다. 날씨 위젯은 실시간 날씨 정보 제공을 위하여 날씨 정보를 제공하는 특정 웹 서버 장치에 접속하기 위한 루틴, 해당 웹 서버 장치에서 지정된 특정 날짜와 특정 지역의 날씨 정보를 수집하는 루틴을 포함할 수 있다. 한편 날씨 위젯은 다양한 종류로 제작될 수도 있다. 예컨대 날씨 위젯은 사용자 설정에 따라 일일 날씨 위젯, 주간 날씨 위젯, 지역 날씨 위젯 등으로 구현되거나 변경될 수 있다. 또한 위젯(151)은 실시간 뉴스 정보 제공을 위한 뉴스 위젯으로 제작될 수 있다. 뉴스 위젯 또한 제작자의 의도에 따라 특정 카테고리에 대한 뉴스를 제공하는 위젯, 다수의 카테고리에 속한 뉴스를 제공하는 위젯 등으로 구현될 수 있다. 한편 상술한 설명에서 위젯(151)의 종류를 날씨 또는 뉴스 등으로 설명하였으나 본 발명이 이에 한정되는 것은 아니다. 즉 본 발명의 위젯(151)은 단말기(100)가 제공 가능한 다양한 사용자 기능과 관련된 종류의 정보를 수집하고 출력할 수 있는 프로그램 루틴들로 구성될 수 있다. 예컨대 위젯(151)은 지하철 등의 대중 교통 관련 정보를 제공하는 위젯, 음악 재생을 지원하는 위젯, 수학 계산 지원을 위한 위젯, 단말기 메모리 관리 및 작업 관리 지원을 위한 위젯, 단말기 배터리 관리 지원을 위한 위젯 등 다양한 정보 제공을 위한 위젯을 포함할 수 있다.
본 발명의 위젯(151)은 제1 메모리(161)에 업로드되어 위젯 관련 정보를 수집하는 운용 루틴들을 포함한다. 그리고 제2 메모리(162)에 저장되는 운용 루틴들에 의해 수집된 위젯 관련 정보 또한 해당 위젯(151)의 구성에 포함될 수 있다. 제2 메모리(162)에 저장되는 위젯 관련 정보는 표시부(140)에 출력되기 위하여 제공되는 정보이다. 한편 위젯(151)이 제1 메모리(161)에서 제거되는 경우 저장부(150)에 저장된 위젯(151)은 직전까지 수행된 위젯 관련 정보를 포함하여 저장될 수 있다. 이에 따라 위젯(151)은 저장부(150)에 저장된 프로그램 루틴들과 함께 위젯(151) 실행에 의하여 수집된 위젯 관련 정보까지 포함하는 구성으로 이해될 수 있을 것이다. 다만 단말기(100)에 설치된 이후 실행되지 않은 경우 별도의 위젯 관련 정보를 포함하지 않을 수 있을 것이다. 따라서 위젯(151)은 운용 루틴을 기본으로 포함하되, 선택적으로 위젯 관련 정보를 포함할 수도 있는 구성이 될 수 있다. 위젯 관련 정보는 해당 위젯의 설계에 따라 위젯 실행 중에 수집된 모든 정보를 포함할 수 있다. 또는 위젯 관련 정보는 해당 위젯의 설계에 따라 위젯 실행 중에 가장 최근에 수집된 정보만을 포함할 수도 있다.
제1 메모리(161)는 제어부(160)의 사용자 기능 운용을 위해 사용되는 메모리가 될 수 있다. 이러한 제1 메모리(161)는 RAM, ROM 등의 메모리, 플래쉬 메모리 등으로 구성될 수 있다. 제1 메모리(161)에는 운영 체제, 사용자 기능 실행을 위한 다양한 응용 프로그램 등이 업로드될 수 있다. 특히 제1 메모리(161)는 제어부(160) 제어에 따라 본 발명의 사용자 기능 운용 지원을 위하여 위젯(151)에 해당하는 응용 프로그램 루틴들이 업로드될 수 있다. 이때 제1 메모리(161)에는 해당 응용 프로그램 루틴들의 실행을 위하여 적어도 하나의 프로세스가 업로드될 수 있다. 여기서 프로세스는 프로그램 데이터로서, 응용 프로그램 루틴들을 실행하는 프로그램 언어 또는 API 등으로 구성될 수 있다. 예컨대 프로세스는 자바, HTML, C/C++ 언어들로 구성될 수 있다. 또한 프로세스는 플랫폼 위젯 프로세스를 포함할 수 있다.
제2 메모리(162)는 표시부(140)에 출력할 정보들이 저장될 수 있다. 예컨대 제2 메모리(162)는 표시부(140)의 화면 구성 요소들에 대한 정보 및 위젯 관련 정보들이 저장될 수 있다. 위젯 관련 정보들은 해당 위젯의 스케줄 정보 또는 사용자 입력에 따라 갱신될 수 있다. 이에 따라 제2 메모리(162)에 저장된 위젯 관련 정보는 위젯의 기능 실행을 위한 이벤트 발생 시 수집된 정보로서 갱신될 수 있다. 제2 메모리(162)에 위젯 관련 정보가 갱신되면 표시부(140)는 제어부(160) 제어에 따라 갱신된 위젯 관련 정보를 출력한다. 한편 위젯 관련 정보 갱신이 없는 경우 표시부(140)는 제2 메모리(162)에 저장된 이전 위젯 관련 정보의 출력을 유지한다. 위젯 관련 정보의 출력 유지는 해당 위젯이 실행 종료되거나, 해당 위젯 실행을 위한 프로세스가 종료되거나, 해당 위젯의 설치가 제거되는 경우 해제될 수 있다. 또한 위젯 관련 정보의 출력 유지는 단말기(100)가 종료되는 경우 해제될 수 있다. 즉 상술한 종료 등의 이벤트들에 의하여 제2 메모리(162)에 저장된 위젯 관련 정보는 제2 메모리(162)에서 제거될 수 있다. 또는 제2 메모리(162)가 플래쉬 메모리 등의 비휘발성 메모리로 구성된 경우 단말기(100) 종료 등의 상황에서 위젯 관련 정보는 제2 메모리(162)에 유지된 상태를 가질 수 있다. 해당 위젯의 실행 종료를 위한 입력 이벤트 발생 또는 기능 삭제가 요청되는 경우에는 제2 메모리(162)가 비휘발성 메모리이어도 위젯 관련 정보는 제2 메모리(162)에서 제거될 수 있다.
한편, 상술한 단말기(100)는 사용자 기능 지원을 위하여 추가적인 구성을 더 포함할 수 있다. 예컨대 단말기(100)는 오디오 신호의 출력 및 수집을 위한 스피커와 마이크를 포함한 오디오 처리부, 영상 수집을 지원하는 영상 수집 센서, 단말기의 모션 동작 센싱을 위한 가속도 센서나 근접 센서 등의 센서 유닛 등을 더 포함할 수 있다.
제어부(160)는 본 발명의 사용자 기능 운용을 수행하기 위한 다양한 신호 처리와, 데이터 처리 및 구성들의 제어와 전원 제어 등을 지원하는 구성이다. 예컨대 제어부(160)는 사용자 설정에 따라 또는 기 설정된 스케줄 정보에 따라 실행할 위젯 목록을 관리한다. 그리고 제어부(160)는 단말기(100)에 전원이 공급되는 상태에서 해당 위젯 목록들을 확인하여 실행 여부를 결정한다. 이를 위하여 위젯 목록은 등록된 위젯(151)과 관련된 특성 정보 즉 위젯 실행 주기나 시점, 위젯의 종류, 위젯의 정보 출력 방식, 위젯 운용을 위한 네트웍 이용이나 기타 단말기(100) 구성 활용을 정의한 정보 등을 포함할 수 있다.
제어부(160)는 위젯 목록들을 확인하고 실행할 위젯이 있는 경우 해당 위젯 실행을 위한 프로세스 업로드, 프로세스 상에 위젯(151)에 해당하는 응용 프로그램 루틴들의 업로드를 제어한다. 그리고 제어부(160)는 업로드된 루틴들을 실행하여 위젯 관련 정보를 수집한다. 수집된 위젯 관련 정보는 해당 위젯에 정의된 정보 출력 방식에 따라 표시부(140)에 출력된다. 특히 본 발명의 제어부(160)는 위젯 목록에 등록된 위젯들에 대하여 라이프 사이클(life cycle)을 할당하고 이를 기준으로 해당 위젯(151)의 제1 메모리(161) 업로드 시점을 결정할 수 있다. 이에 따라 제어부(160)는 단말기(100)의 사용자 기능 지원을 위한 제1 메모리(161)를 보다 효율적으로 운용할 수 있도록 지원한다. 상기 제어부(160)에 대한 프로그램 모듈로 구성되는 계층 구조에 대하여 도 2를 참조하여 보다 상세히 설명하기로 한다.
도 2는 본 발명의 실시 예에 따른 사용자 기능 운용 지원을 위한 제어부(160)의 프로그램 모듈 계층 구조를 나타낸 도면이다.
도 2를 참조하면, 본 발명의 제어부(160)는 위젯 서비스 프로바이더(10)(Widget Service Provider), 제1 통신 인터페이스(20), 위젯 컨트롤러 프로세스(30)(Widget Controller Process), 제2 통신 인터페이스(40), 위젯 뷰어 어플리케이션(50)(Widget Viewer Application)을 포함한다.
위젯 서비스 프로바이더(10)는 위젯(151) 운용을 위한 적어도 하나의 프로세스들과 위젯(151) 운용을 위한 응용 프로그램 루틴들이 배치(Loading)되는 계층이다. 프로세스는 위젯(151)에 해당하는 루틴들이 배치되는 구성이다. 이러한 프로세스는 도시된 바와 같이 크게 플러그-인 타입(11)과 프로세스 타입(15, 17)을 포함한다.
플러그-인 타입(11) 및 프로세스 타입(15, 17)을 포함하는 프로세스는 실질적으로 프로그램 언어들에 의하여 실행된다. 예컨대 플러그-인 타입(11)은 C/C++ 프로그램 언어가 제공되어 프로세스가 수행될 수 있다. 프로세스 타입(15, 17)의 경우 실행하게 될 위젯의 종류에 따라 다양한 프로세스들이 제공될 수 있다. 이에 따라 프로그램 언어 또한 해당 프로세스들의 실행에 맞는 언어가 제공된다. 예컨대 플랫폼 위젯 프로세스(15)는 C++ 프로그램 언어로 구성된 플랫폼 위젯(16) 프로그램 언어가 제공된다. 웹 위젯 프로세스(17)는 HTML 프로그램 언어로 구성된 웹 위젯(18) 프로그램 언어가 제공된다. 단말기(100)는 상술한 다양한 프로세스들에 대응하는 루틴들과 각 프로그램 언어들을 운영 체제에서 제공하거나, 별도의 API나 라이브러리 형태로 제공할 수 있다.
플러그-인 타입(11)은 플러그-인 타입(11)의 프로세스를 기반으로 수행되도록 제작된 위젯(151)이 실행 목록에 포함된 경우 제공될 수 있다. 플러그-인 타입(11)은 하나의 프로세스에 하나의 위젯뿐만 아니라 도시된 바와 같이 언어 어댑터(13)(Language adaptor) 및 힙 모니터(14)(Heap Monitor)와 같은 다수개의 위젯이 배치(Loading)될 수 있도록 형성되는 타입이 될 수 있다. 여기서 플러그-인 타입(11)은 하나의 프로세스가 제공되는 것으로 나타내었으나 위젯 서비스 프로바이더(10)는 실행해야 할 위젯(151)의 개수에 따라 추가로 플러그-인 타입(11)을 생성할 수 있다. 이때 위젯 서비스 프로바이더(10)는 플러그-인 타입(11)의 클론을 생성하고, 생성된 클론의 플러그-인 타입(11)에 위젯(151)을 배치(Loading)한다. 예컨대 위젯 서비스 프로바이더(10)는 4개의 위젯(151)에 대응하는 루틴들을 플러그-인 타입(11)에 배치하고 추가로 새로운 위젯(151)을 플러그-인 타입(11)에 배치하여야 하는 경우 플러그-인 타입(11)의 클론을 생성한다. 그리고 위젯 서비스 프로바이더(10)는 새로운 클론에 새로운 위젯(151)을 배치할 수 있다.
프로세스 타입(15, 17)은 플러그-인 타입(11)을 제외한 타입의 위젯(151) 실행 시 프로세스가 배치된다. 프로세스 타입(15, 17)은 하나의 프로세스에 하나의 위젯이 배치되는 타입이 될 수 있다.
위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30)로부터의 위젯(151) 실행 요청에 따라 특정 프로세스를 호출하고, 호출된 프로세스 상에 해당 위젯(151)을 배치한다. 이때 위젯 서비스 프로바이더(10)는 미리 정의된 위젯(151)의 타입에 따라 해당 위젯(151)들을 플러그-인 타입(11)에 배치할지 또는 프로세스 타입(15, 17)으로 구성할지를 결정할 수 있다. 그리고 위젯 서비스 프로바이더(10)는 위젯(151)에 정의된 정보에 따라 위젯(151)들을 실행하여 위젯 관련 정보를 수집한다. 위젯 서비스 프로바이더(10)는 수집된 위젯 관련 정보를 위젯 컨트롤러 프로세스(30)에 전달하거나 위젯 뷰어 어플리케이션(50)에 직접 전달할 수 있다.
제1 통신 인터페이스(20)는 위젯 컨트롤러 프로세스(30)와 위젯 서비스 프로바이더(10) 사이에 배치된다. 제1 통신 인터페이스(20)는 위젯 컨트롤러 프로세스(30)의 요청 메시지 또는 요청 패킷을 위젯 서비스 프로바이더(10)에 전달한다. 그리고 제1 통신 인터페이스(20)는 위젯 서비스 프로바이더(10)의 업무 처리 결과나 버퍼 할당 정보 요청 등을 위젯 컨트롤러 프로세스(30)에 제공한다. 이를 위하여 제1 통신 인터페이스(20)는 위젯 서비스 프로바이더(10) 지원을 위한 프로바이더 인터페이스(22)와 위젯 컨트롤러 프로세스(30)와 신호 전달을 위한 제1 통신 코어(21)를 포함한다.
위젯 컨트롤러 프로세스(30)는 위젯 서비스 프로바이더(10)와 위젯 뷰어 어플리케이션(50) 사이에 배치된다. 위젯 컨트롤러 프로세스(30)는 위젯 서비스 프로바이더(10)가 제공하는 이벤트에 따라 위젯 서비스 프로바이더(10)의 프로세스 호출 및 위젯(151) 호출을 제어한다. 그리고 위젯 컨트롤러 프로세스(30)는 위젯 서비스 프로바이더(10)의 위젯(151) 실행에 따른 위젯 관련 정보의 전달을 지원할 수 있다. 위젯 컨트롤러 프로세스(30)는 각 위젯의 라이프 사이클 또는 입력 이벤트 발생을 확인하고 위젯 서비스 프로바이더(10)의 업로드 기간을 제어한다. 위젯 컨트롤러 프로세스(30)는 프로바이더 컨트롤러(31), 위젯 인스턴스 매니저(33), 위젯 패키지 정보 매니저(35), 컨텍스트 이벤트 모니터(37), 렌더링 컨트롤러(39)를 포함한다.
프로바이더 컨트롤러(31)는 위젯 서비스 프로바이더(10)의 프로세스 호출과 위젯(151)들의 호출을 제어할 수 있다. 프로바이더 컨트롤러(31)는 위젯 서비스 프로바이더(10)에 호출된 프로세스의 라이프 사이클을 제어할 수 있다. 즉 프로바이더 컨트롤러(31)는 제2 메모리(162)에 프로세스에 해당하는 데이터들을 쓰거나, 쓰인 데이터를 제2 메모리(162)에서 제거하는 역할을 수행한다. 그리고 프로바이더 컨트롤러(31)는 제2 메모리(162)에 쓰인 데이터들의 실행과 실행에 따른 결과 처리를 제어한다. 실행에 따른 결과 처리를 위하여 프로바이더 컨트롤러(31)는 결과 처리 정보를 위젯 인스턴스 매니저(33)에 전달할 수 있다. 또한 프로바이더 컨트롤러(31)는 위젯 서비스 프로바이더(10) 제어를 위한 요청 메시지 또는 요청 패킷을 위젯 인스턴스 매니저(33)로부터 전달받을 수 있다.
위젯 인스턴스 매니저(33)는 위젯 뷰어 어플리케이션(50) 계층에서 수행되는 다양한 위젯 기능의 제어를 수행하는 구성이다. 예컨대 위젯 인스턴스 매니저(33)는 위젯 뷰어 어플리케이션(50)에서 수행될 위젯(151)의 추가, 위젯 실행 목록 확인을 통한 위젯(151) 실행 제어, 위젯 실행에 따른 위젯 관련 정보의 출력 제어, 위젯 실행 목록에서 특정 위젯(151)의 실행 삭제, 위젯 기능 제거를 위한 제어, 위젯 설치 및 설치 제거를 위한 제어 등을 수행한다. 위젯 인스턴스 매니저(33)는 특정 위젯 기능 실행을 위하여 위젯(151)들이 특정 프로세스 상에 배치되도록 프로바이더 컨트롤러(31)에 요청할 수 있다. 그리고 위젯 인스턴스 매니저(33)는 특정 프로세스 상에 배치된 위젯(151)의 라이프 사이클을 관리할 수 있다.
위젯 인스턴스 매니저(33)는 위젯 기능 실행을 위하여 위젯 패키지 정보 매니저(35)를 통하여 위젯(151)을 정의한 정보를 확인한다. 예컨대 위젯 인스턴스 매니저(33)는 위젯 패키지 정보 매니저(35)로부터 특정 위젯 기능 실행 주기, 위젯(151)의 라이프 사이클, 위젯 기능 수행 시 활성화해야 할 단말기(100) 구성 등에 대한 정보를 전달받는다. 그리고 위젯 인스턴스 매니저(33)는 해당 정보들을 기반으로 위젯 기능을 실행하도록 제어하거나 위젯(151)들을 위젯 서비스 프로바이더(10)에서 제거하도록 제어할 수 있다. 이에 대한 상세한 설명은 후술하는 위젯 기능 수행과 관련된 설명에서 보다 상세히 설명하기로 한다.
위젯 패키지 정보 매니저(35)는 위젯(151)에 정의된 정보를 확인한다. 그리고 위젯 패키지 정보 매니저(35)는 위젯(151)에 정의된 정보를 위젯 인스턴스 매니저(33)에 제공한다. 위젯(151)에 정의된 정보는 앞서 설명한 바와 같은 다양한 정보를 포함할 수 있다. 위젯(151)의 라이프 사이클은 위젯(151)이 위젯 서비스 프로바이더(10) 상에 업로드되는 기간에 해당할 수 있다. 이 라이프 사이클은 해당 위젯(151)이 위젯 기능을 수행하는 경우 리셋될 수 있다. 예컨대 사용자가 특정 위젯 기능을 실행하도록 요청하는 경우 라이프 사이클은 초기화될 수 있다.
위젯 기능 실행 주기는 위젯 관련 정보를 수집하는 주기이다. 위젯 기능 실행 주기는 라이프 사이클과 동일한 값이 될 수 있다. 또는 위젯 기능 실행 주기는 라이프 사이클보다 짧은 주기가 될 수도 있다. 예컨대 위젯(151)의 라이프 사이클이 30초로 정의되더라도 위젯 기능 실행 주기는 10초 단위가 될 수 있다. 또한 위젯 기능 실행 주기는 복합적으로 구성될 수 있다. 예컨대 위젯 기능 실행 주기는 라이프 사이클이 유효한 기간 동안에만 일정 주기로 정의될 수 있다. 한편 위젯 기능 실행 주기는 라이프 사이클보다 길게 정의될 수도 있다. 예컨대 위젯 기능 실행 주기는 1시간 단위로 정의될 수 있으며, 라이프 사이클은 30초로 설정될 수 있다. 결과적으로 위젯 기능이 실행된 이후 30초 이내에 별도 이벤트 발생이 없으면 위젯(151)은 위젯 서비스 프로바이더(10)에서 제거된다. 그리고 1시간 이후 위젯(151)들이 위젯 서비스 프로바이더(10)에 업로드 되고 해당 위젯 기능이 재수행될 수 있다. 위젯(151)들의 제거 또는 프로세스 제거에 대해서 후술하는 도면을 참조하여 보다 상세히 설명하기로 한다.
컨텍스트 이벤트 모니터(37)는 위젯 기능 실행에 따라 위젯 정보 출력 영역에 출력할 정보를 모니터링하는 구성이다. 예컨대 컨텍스트 이벤트 모니터(37)는 수집된 위젯 관련 정보 중 최근 정보를 컨텍스트로 저장하도록 지원할 수 있다. 그리고 컨텍스트 이벤트 모니터(37)는 특정 위젯 기능이 종료되었다가 다시 활성화되는 경우 가장 최근에 저장된 위젯 관련 정보를 위젯 정보 출력 영역에 출력하도록 지원한다. 한편 컨텍스트 이벤트 모니터(37)는 최근 정보가 없는 경우 위젯(151)에서 디폴트로 정의한 정보를 위젯 정보 출력 영역에 출력하도록 지원할 수 있다.
렌더링 컨트롤러(39)는 위젯 관련 정보의 출력을 지원한다. 이를 위해 렌더링 컨트롤러(39)는 위젯 관련 정보 출력을 위한 메모리 버퍼를 할당한다. 메모리 버퍼는 위젯 뷰어 어플리케이션(50) 및 위젯 서비스 프로바이더(10)의 공동 접근이 가능하도록 정의될 수 있다. 이에 따라 위젯 서비스 프로바이더(10)가 수집된 위젯 관련 정보를 메모리 버퍼에 기입하면, 위젯 뷰어 어플리케이션(50)이 메모리 버퍼를 읽어서 위젯 관련 정보를 표시부(140)에 출력하도록 지원할 수 있다.
제2 통신 인터페이스(40)는 위젯 컨트롤러 프로세스(30)와 위젯 뷰어 어플리케이션(50) 사이에 배치된다. 제2 통신 인터페이스(40)는 위젯 뷰어 어플리케이션(50)과 통신하기 위한 뷰어 인터페이스(41) 및 제2 통신 코어(42)를 포함한다. 이러한 제2 통신 인터페이스(40)는 위젯 컨트롤러 프로세스(30)로부터의 요청을 위젯 뷰어 어플리케이션(50)에 제공하고, 위젯 뷰어 어플리케이션(50)의 요청을 위젯 컨트롤러 프로세스(30)에 전달하는 역할을 수행한다.
위젯 뷰어 어플리케이션(50)은 다양한 위젯 기능 실행에 따른 정보의 출력을 지원하는 구성이다. 예컨대 위젯 뷰어 어플리케이션(50)은 위젯 컨트롤러 프로세스가 위젯 관련 정보 출력을 위한 버퍼를 할당하고 위젯 서비스 프로바이더(10)가 해당 버퍼에 위젯 관련 정보를 기입하면, 이를 가져다 표시부(140)에 출력하도록 지원한다. 또는 위젯 뷰어 어플리케이션(50)은 위젯 서비스 프로바이더(10)로부터 직접 위젯 관련 정보를 전달받고 이를 표시부(140)에 출력하도록 지원한다. 위젯 뷰어 어플리케이션(50)의 위젯 관련 정보 처리 방식은 위젯(151)에 사전 기입된 정보에 의하여 결정되며, 위젯 컨트롤러 프로세스(30)에 포함된 위젯 패키지 정보 매니저(35)에 의해 제공될 수 있다. 그리고 위젯 뷰어 어플리케이션(50)은 실행 목록에 포함된 위젯 기능들의 사용자 선택에 대한 입력 이벤트를 수집하고 이를 위젯 컨트롤러 프로세스(30)에 전달한다.
위젯 뷰어 어플리케이션(50)은 실행해야 할 위젯(151)의 종류에 따라 플러그-인 타입 위젯 뷰어(51), 웹 위젯 뷰어(52), 플랫폼 위젯 뷰어(54) 등을 포함할 수 있다. 플러그-인 타입 위젯 뷰어(51)는 플러그-인 타입으로 제작된 위젯들의 위젯 관련 정보 출력을 위한 구성이다. 웹 위젯 뷰어(52)는 웹 위젯 프로세스(17)를 기반으로 실행되는 위젯의 관련 정보 출력을 지원하는 구성이다. 웹 위젯 뷰어(52) 지원을 위하여 위젯 뷰어 어플리케이션(50)은 웹 서비스 인터페이스(53)를 더 포함할 수 있다. 플랫폼 위젯 뷰어(54)는 플랫폼 위젯 프로세스(15) 기반으로 실행되는 위젯의 관련 정보 출력을 지원한다. 플랫폼 위젯 뷰어(54) 지원을 위해 위젯 뷰어 어플리케이션(50)은 플랫폼 서비스 인터페이스(55)를 포함할 수 있다.
도 3은 본 발명의 실시 예에 따른 사용자 기능 운용 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명의 사용자 기능 운용 방법은 301 단계에서 단말기(100)의 제어부(160)가 위젯 기능 실행을 위한 이벤트 수신이 발생하는지 확인한다. 즉 제어부(160)는 제1 메모리(161)에 선택적으로 로딩되는 사용자 기능 지원을 위한 프로세스의 호출 또는 해당 프로세스 상에 배치해야 할 위젯(151)들의 호출을 위한 이벤트가 수신되는지 확인한다. 위젯 기능 실행을 위한 이벤트 수신이 없는 경우 제어부(160)는 303 단계로 분기하여 대기 화면을 표시부(140)에 출력하거나 메뉴 화면을 표시부(140)에 출력하는 등의 기능을 수행할 수 있다. 또는 제어부(160)는 기 설정된 스케줄 정보에 따라 특정 어플리케이션을 실행하고 이를 지원할 수 있다.
한편 제어부(160)는 301 단계에서 제1 메모리(161)에 선택적 로딩이 필요한 데이터 기입을 요청하는 특정 이벤트 즉 위젯 실행을 위한 이벤트가 발생하는 경우, 305 단계로 분기하여 위젯 기능 실행을 지원한다. 위젯 실행을 위한 이벤트는 사전 정의된 위젯 실행 목록을 통하여 발생할 수 있다. 단말기(100)는 사전 정의된 위젯 기능들에 대한 실행 목록을 생성하고, 이를 기반으로 위젯 기능 실행을 지원한다. 또한 위젯 실행을 위한 이벤트는 표시부(140)에 출력 중인 위젯 정보 출력 영역을 터치하여 특정 위젯의 기능을 실행하도록 요청하는 입력 이벤트 또는 특정 위젯 기능 실행을 위한 입력 신호에 해당하는 입력 이벤트를 포함한다.
제어부(160)는 305 단계에서 위젯 기능 실행을 지원하기 위하여 프로세스를 제1 메모리(161)에 배치하고 프로세스 상에 특정 위젯(151)들을 배치한다. 제어부(160)는 위젯 기능 실행을 위한 프로세스가 이미 배치되어 있는 경우 특정 위젯(151)들의 배치를 제어한다. 예컨대 제어부(160)는 플러그-인 타입(11) 프로세스가 이미 배치된 경우 플러그-인 타입으로 제작된 위젯(151)을 해당 플러그-인 타입(11)의 프로세스 상에 배치하도록 제어할 수 있다. 이때 제어부(160)는 해당 플러그-인 타입(11)에 사전 정의된 위젯(151)들의 개수 또는 위젯(151)들의 일정 크기가 채워진 경우 새로운 플러그-인 타입(11)의 프로세스 클론을 생성한다. 그리고 제어부(160)는 클론 형태의 플러그-인 타입(11) 프로세스에 위젯(151)들을 배치할 수 있다. 또한 제어부(160)는 위젯 기능 지원을 위하여 뷰어를 위젯 뷰어 어플리케이션(50) 계층에 배치한다. 그리고 제어부(160)는 위젯 뷰어 어플리케이션(50)에 배치된 뷰어를 이용하여 해당 위젯 기능 실행에 따른 위젯 관련 정보의 출력을 지원한다.
다음으로 제어부(160)는 307 단계에서 타이머를 구동한다. 여기서 제어부(160)는 단말기(100)에 디폴트로 마련된 특정 타이머를 위젯 기능 실행 제어를 위해 이용할 수 있다. 또는 단말기(100)는 본 발명의 사용자 기능 운용을 위해 별도의 타이머를 배치하고, 제어부(160)는 해당 타이머를 운용할 수 있다. 타이머는 특정 위젯의 라이프 사이클을 관리하기 위한 구성이다. 타이머는 각각의 위젯들의 라이프 사이클 관리하기 위하여 각 위젯별로 하나씩 배치될 수 있다.
제어부(160)는 309 단계에서 타이머 만료 전에 위젯 기능 실행을 위한 이벤트가 수신되는지 확인한다. 그리고 제어부(160)는 위젯 기능 실행을 위한 이벤트가 발생하는 경우 305 단계로 분기하여 위젯 기능 실행에 따른 위젯 관련 정보 수집 및 출력을 지원한다. 그리고 제어부(160)는 이하 과정을 반복하여 수행할 수 있다. 이러한 기능 실행은 타이머가 만료되거나 또는 단말기(100)의 종료가 발생하기 이전까지 반복될 수 있다.
309 단계에서 타이머가 만료되기까지 별도의 위젯 기능 실행을 위한 이벤트 생성이 없는 경우, 제어부(160)는 311 단계로 분기하여 프로세스 또는 위젯(151) 제거(delete)를 수행한다. 이때 제어부(160)는 위젯 관련 정보는 출력 유지할 수 있다. 먼저 제어부(160)는 특정 위젯 기능 실행을 위해 제공된 루틴들 즉 위젯(151)을 제1 메모리(161)에서 제거한다. 이때 제어부(160)는 해당 위젯(151)이 해당 프로세스에 마지막으로 로딩된 데이터인 경우 프로세스를 함께 제1 메모리(161)에서 종료(terminate)할 수 있다. 그리고 제어부(160)는 제거를 요청 받은 위젯(151)이 해당 프로세스에 마지막으로 로딩된 데이터가 아닌 경우 위젯(151)만 제1 메모리(161)에서 제거할 수 있다. 예컨대 제어부(160)는 플러그-인 타입(11)의 프로세스에 다수개의 위젯(151)들이 배치된 상태에서 특정 위젯(151)의 타이머가 만료되면, 타이머 만료된 위젯(151)만을 해당 플러그-인 타입(11)의 프로세스에서 제거할 수 있다. 제어부(160)는 위젯(151)의 제거(delete) 또는 위젯(151)이 배치된 프로세스의 종료(terminate)와는 독립적으로 위젯 관련 정보의 출력은 유지한다. 즉 제어부(160)는 제2 메모리(162)에 위젯 관련 정보를 기입하고, 이를 기반으로 위젯 관련 정보의 출력을 유지할 수 있다. 제어부(160)는 위젯 실행 종료를 위한 이벤트가 발생하는 경우 제1 메모리(161)에서 해당 위젯(151)들의 제거와 함께 제2 메모리(162)에서 위젯 관련 정보 삭제를 수행하도록 지원할 수 있다.
다음으로 제어부(160)는 313 단계에서 단말기(100) 종료를 위한 이벤트 발생이 있는지 확인한다. 단말기(100) 종료 이벤트 발생이 없으면 제어부(160)는 301 단계로 복귀하여 이하 단계의 재수행을 지원할 수 있다. 상기 단말기(100) 종료를 위한 이벤트는 단말기(100) 슬립 상태로 천이한 이후 깨우기(wake-up) 이벤트 발생으로 대체될 수도 있다. 즉 제어부(160)는 단말기(100)가 슬립 상태로 천이한 이후 단말기(100)를 깨우기 위한 홈키 입력 또는 전원키 입력 또는 사전 정의된 특정 입력 이벤트 발생이 있는 경우 301 단계로 분기하여 이하 과정을 재수행하도록 지원할 수 있다.
도 4는 본 발명의 실시 예에 따른 사용자 기능 운용 방법 중 프로세스 운용을 보다 상세히 설명하기 위한 도면이다.
도 4를 참조하면, 401 단계에서 위젯 뷰어 어플리케이션(50)은 위젯 실행과 관련한 이벤트를 수신한다. 그러면 위젯 뷰어 어플리케이션(50)은 403 단계에서 위젯 컨트롤러 프로세스(30)에 위젯 기능 실행을 요청한다. 위젯 컨트롤러 프로세스(30)는 405 단계에서 해당 위젯 기능 실행을 지원하는 위젯 서비스 프로바이더(10)를 검색한다. 그리고 위젯 컨트롤러 프로세스(30)는 407 단계에서 위젯 기능 실행을 위한 프로세스 존재 여부를 확인한다. 여기서 위젯 컨트롤러 프로세스(30)는 해당 프로세스가 있는 경우 409 단계로 분기하여 해당 프로세스가 실행 중인지 확인한다. 그리고 위젯 컨트롤러 프로세스(30)는 프로세스가 실행 중인 경우 411 단계로 분기하여 추가할 위젯(151)에 의하여 프로세스의 오버로드(Overloaded)가 발생하는지 확인한다. 프로세스 오버로드가 없는 경우 위젯 컨트롤러 프로세스(30)는 위젯(151)들을 해당 프로세스에 배치하도록 위젯 서비스 프로바이더(10)에 요청하는 한편 413 단계에서 타이머 만료 시한을 연장한다. 상술한 설명에서 411 단계는 실행할 위젯(151)이 플러그-인 타입(11)인 경우에 수행될 수 있다. 따라서 하나의 프로세스에 하나의 위젯(151)이 배치되는 프로세스 타입(15, 17)은 409 단계에서 프로세스 실행 중인 경우 413 단계로 분기하여 타이머 만료 시한 연장을 수행할 수 있다.
한편 407 단계에서 프로세스가 존재하지 않거나, 409 단계에서 프로세스가 실행 중이지 않은 경우 그리고 411 단계에서 프로세스의 오버로드가 발생한 경우 위젯 컨트롤러 프로세스(30)는 415 단계로 분기하여 해당 위젯(151)을 배치할 새 프로세스를 할당하고 제1 메모리(161)에 로딩되도록 위젯 서비스 프로바이더(10)에 요청한다. 이후 위젯 컨트롤러 프로세스(30)는 417 단계에서 새로 기능을 실행하는 위젯(151)의 라이프 사이클 관리를 위한 타이머 등록을 수행한다. 그리고 위젯 컨트롤러 프로세스(30)는 419 단계에서 이벤트 처리를 제어할 수 있다. 417 단계 및 419 단계는 순서가 바뀌거나 동시에 수행될 수 있다. 419 단계에서 위젯 서비스 프로바이더(10)에 의해 할당된 프로세스 및 해당 프로세스에 배치된 위젯(151)이 실행되면 위젯 관련 정보가 수집된다. 위젯 서비스 프로바이더(10)는 421 단계에서 이벤트 처리에 따른 결과를 위젯 컨트롤러 프로세스(30) 또는 위젯 뷰어 어플리케이션(50), 또는 위젯 컨트롤러 프로세스(30)가 할당한 메모리 버퍼에 전송한다.
도 5는 본 발명의 실시 예에 따른 사용자 기능 운용 방법 중 프로세스 비활성화를 설명하기 위한 도면이다.
도 5를 참조하면, 위젯 컨트롤러 프로세스(30)는 501 단계에서 타이머 만료에 따른 이벤트를 수신한다. 타이머는 특정 위젯 기능 실행 시에 구동될 수 있다. 이 타이머는 위젯 컨트롤러 프로세스(30)의 위젯 인스턴스 매니저(33)에 의해 관리될 수 있다.
타이머가 만료되면, 위젯 컨트롤러 프로세스(30)는 만료된 타이머에 해당하는 위젯(151)을 제1 메모리(161)에서 제거하거나, 만료된 타이머에 해당하는 프로세스를 제1 메모리(161)에서 제거한다. 이를 위하여 위젯 컨트롤러 프로세스(30)는 위젯(151)에 대응하는 타이머뿐만 아니라 프로세스 라이프 사이클 관리를 위한 타이머를 운용할 수도 있다. 프로세스 타입(15, 17)의 위젯(151)은 프로세스와 위젯(151)의 라이프 사이클이 동일하게 설정될 수 있다. 그러나 플러그-인 타입(11)의 위젯은 해당 프로세스와 위젯(151)의 라이프 사이클이 다르게 설정될 수 있다. 플러그-인 타입(11)의 프로세스를 위한 타이머는 배치된 위젯(151) 중 가장 라이프 사이클 긴 타이머와 동기화될 수 있다.
한편 위젯 컨트롤러 프로세스(30)에 의하여 제1 메모리(161)에서 위젯(151)들의 제거 또는 프로세스의 제거가 수행되는 동안 위젯 뷰어 어플리케이션(50)은 해당 위젯(151)에 관련된 위젯 관련 정보 출력을 유지하도록 제어한다.
도 6은 본 발명의 사용자 기능 운용 중 위젯 추가 과정을 설명하기 위한 신호 흐름도이다.
도 6을 참조하면, 위젯 뷰어 어플리케이션(50)은 입력부(120) 또는 입력 기능의 표시부(140)로부터 위젯 기능 실행을 위한 이벤트를 수신할 수 있다. 예컨대 사용자는 실행 목록에 등록되지 않은 특정 위젯 기능 목록을 위젯 화면들 또는 메뉴 화면들 또는 기타 설정 화면 등을 통해 확인할 수 있다. 그리고 사용자는 실행이 필요한 위젯 기능 항목을 선택할 수 있다. 여기서 위젯 기능 항목은 아이콘 등으로 제공될 수도 있다. 위젯 뷰어 어플리케이션(50)은 특정 위젯 기능 실행을 위한 입력 이벤트가 수신되면 601 단계에서 위젯 추가(AddWidget()) 메시지를 위젯 컨트롤러 프로세스(30)에 전달한다. 그러면 위젯 컨트롤러 프로세스(30)는 603 단계에서 위젯 추가 요청이 유효한 요청인지를 확인한다. 이를 위하여 위젯 컨트롤러 프로세스(30)는 위젯 기능 목록에 포함된 위젯 추가의 유효성 확인을 위하여 해당 기능(ValidateRequestor())을 호출하고 이를 실행할 수 있다. 유효성 확인 과정에서 위젯 컨트롤러 프로세스(30)는 유효성이 비정상으로 검사되는 경우 해당 위젯 추가 요청을 무시할 수 있다. 그리고 위젯 컨트롤러 프로세스(30)는 비정상 위젯 추가 요청에 대한 알람 메시지 출력을 지원할 수 있다.
위젯 컨트롤러 프로세스(30)는 위젯 추가에 대한 유효성 확인이 정상적으로 수행되면 605 단계에서 해당 위젯 추가를 위한 위젯 서비스 프로바이더(10) 검색(SearchServiceProvider())을 수행한다. 그리고 위젯 컨트롤러 프로세스(30)는 검색된 위젯 서비스 프로바이더(10)에서 위젯 추가를 위한 요청(CreateWidget())을 607 단계에서 수행할 수 있다. 위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30)로부터 위젯 추가 요청을 수신하면, 해당 위젯 추가 요청에 따라 프로세스를 배치하고, 프로세스 상에 위젯(151)을 로딩할 수 있다. 여기서 위젯 서비스 프로바이더(10)는 위젯(151)의 특성을 확인하여 플러그-인 타입인지 또는 프로세스 타입인지 확인하고 그에 대응하는 프로세스 배치를 수행할 수 있다. 그리고 위젯 서비스 프로바이더(10)는 플러그-인 타입인 경우 기존 배치된 플러그-인 타입 프로세스가 있는지 확인하고, 해당 플러그-인 타입 프로세스에 위젯(151)을 로딩하도록 제어할 수 있다.
위젯 서비스 프로바이더(10)는 위젯(151) 로딩이 완료되면 해당 위젯(151)의 각 실행 루틴들을 수행하고 위젯 관련 정보를 수집한다. 그리고 위젯 서비스 프로바이더(10)는 609 단계에서 위젯 관련 정보 및 위젯(151) 로딩 정보 등 위젯 추가 요청에 따른 결과(ResultCallback())를 위젯 컨트롤러 프로세스(30)에 제공한다. 그러면 위젯 컨트롤러 프로세스(30)는 위젯 추가 요청에 따른 결과(ResultCallback())를 611 단계에서 위젯 뷰어 어플리케이션(50)에 제공할 수 있다. 위젯 뷰어 어플리케이션(50)은 수신된 정보에서 위젯 관련 정보를 추출하고 이를 표시부(140)에 출력하도록 지원한다.
도 7은 본 발명의 실시 예에 따른 사용자 기능 운용 중 위젯 크기 조정 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 위젯 뷰어 어플리케이션(50)은 701 단계에서 입력 수단으로부터 위젯 크기 변경을 위한 입력 이벤트를 수신(ResizeWidget())할 수 있다. 여기서 사용자는 표시부(140)에 출력 중인 특정 위젯의 크기 조정을 위한 선택을 수행할 수 있다. 그리고 사용자는 위젯의 크기 조정을 위한 입력 이벤트를 생성하도록 단말기(100) 조작을 수행할 수 있다. 예컨대 사용자는 표시부(140)에 표시된 특정 위젯을 롱프레스로 선택하여 위젯 크기 모드로 진입하고, 드래그를 통하여 위젯 크기 조정을 위한 입력 이벤트 생성을 위한 조작을 수행할 수 있다.
701 단계에서 위젯 크기 변경 입력 이벤트가 수신되면, 위젯 뷰어 어플리케이션(50)은 703 단계에서 요청된 위젯 크기 변경이 유효한지 확인(IsValidSize())한다. 즉 위젯 뷰어 어플리케이션(50)은 수신된 입력 이벤트가 사전 정의된 일정 크기 이내에 해당하는 입력 이벤트인지 확인한다. 그리고 위젯 뷰어 어플리케이션(50)은 입력 이벤트가 유효한 경우 705 단계에서 위젯 크기 변경 요청(ResizeRequest())을 위젯 컨트롤러 프로세스(30)에 전달한다. 여기서 위젯 뷰어 어플리케이션(50)은 입력 이벤트가 유효하지 않은 경우 위젯 크기 변경을 수행하지 않고 해당 입력 이벤트를 무시할 수 있다. 추가로 위젯 뷰어 어플리케이션(50)은 입력 이벤트의 무효성에 대한 알람을 진동이나 오디오 신호 또는 표시 메시지로 출력할 수 있다.
위젯 컨트롤러 프로세스(30)는 위젯 뷰어 어플리케이션(50)으로부터 위젯 크기 변경 요청을 수신하면, 해당 요청이 유효한 요청인지 707 단계에서 확인(ValidateRequestor())한다. 즉 위젯 컨트롤러 프로세스(30)는 위젯 뷰어 어플리케이션(50)이 위젯 실행 목록에 포함된 항목인지 확인하여 해당 요청의 유효성을 확인할 수 있다. 요청의 유효성이 비정상인 경우 예컨대 위젯 실행 목록에 없는 위젯으로부터의 요청인 경우 위젯 컨트롤러 프로세스(30)는 이를 무시하도록 제어할 수 있다. 한편 요청의 유효성이 정상인 경우 위젯 컨트롤러 프로세스(30)는 위젯 크기 변경 지시(ResizeWidget())를 709 단계에서 위젯 서비스 프로바이더(10)에 제공한다. 위젯 서비스 프로바이더(10)는 위젯 크기 변경 지시를 확인하여 어떠한 위젯에 대한 지시인지 확인한다. 그리고 위젯 서비스 프로바이더(10)는 해당 위젯(151)의 크기 변경을 위한 루틴 실행을 제어한다. 위젯 크기 변경이 수행되면 위젯 서비스 프로바이더(10)는 위젯 크기 변경 결과(ResultCallback())를 711 단계에서 위젯 컨트롤러 프로세스(30)에 전달한다. 위젯 컨트롤러 프로세스(30)는 713 단계에서 위젯 크기 변경 결과(ResultCallback())를 위젯 뷰어 어플리케이션(50)에 제공할 수 있다.
상술한 과정을 수행하면서 위젯 표시 방식이 버퍼 운용 방식인 경우 위젯 컨트롤러 프로세스(30)는 위젯 크기 변경 요청에 따라 메모리 버퍼를 변경 요청에 따른 위젯 크기에 맞도록 정의한다. 그리고 위젯 컨트롤러 프로세스(30)는 위젯 서비스 프로바이더(10)가 변경 지시에 따라 위젯 크기를 변경하면 해당 위젯 관련 정보를 메모리 버퍼에 기입하도록 메모리 버퍼의 주소 정보를 위젯 서비스 프로바이더(10)에 제공할 수 있다. 그러면 위젯 서비스 프로바이더(10)는 크기가 변경된 위젯 이미지를 해당 메모리 버퍼에 기입하고, 완료되면 이를 위젯 컨트롤러 프로세스(30)에 전달할 수 있다. 위젯 컨트롤러 프로세스(30)는 메모리 버퍼에 대한 주소 정보와 위젯 크기 변경 완료를 위젯 뷰어 어플리케이션(50)에 알릴 수 있다. 그러면 위젯 뷰어 어플리케이션(50)은 크기 변경된 위젯 이미지를 메모리 버퍼로부터 읽어서 표시부(140)에 출력하도록 지원한다. 한편 위젯 표시 방식이 이미지 파일 방식이거나 텍스트 방식인 경우 위젯 컨트롤러 프로세스(30)의 지원 없이 위젯 서비스 프로바이더(10)가 직접 작성한 데이터를 위젯 뷰어 어플리케이션(50)이 표시부(140)에 출력하도록 제공될 수 있다. 이에 대한 상세한 설명은 후술하는 도면을 통하여 설명하기로 한다.
도 8은 본 발명의 사용자 기능 운용 방법 중 위젯 추가 뷰 제공을 설명하기 위한 도면이다.
도 8을 참조하면, 위젯 뷰어 어플리케이션(50)은 801 단계에서 위젯 추가 뷰를 요청하는 입력 이벤트를 수신(OpenAddtionalView())할 수 있다. 이를 위하여 단말기(100)는 특정 위젯 기능이 제공되는 동안 위젯 추가 뷰를 요청할 수 있는 메뉴 항목이나 핫 키 등을 제공하거나 해당 요청에 매핑된 특정 제스처 이벤트를 지원할 수 있다. 위젯 뷰어 어플리케이션(50)은 위젯 추가 뷰에 대한 요청이 발생하면 803 단계에서 위젯 추가 뷰 요청에 대응하여 적용해야 할 위젯 추가 뷰가 어떠한 종류인지를 확인(CheckAdditionalViewSupported())한다. 그리고 위젯 뷰어 어플리케이션(50)은 805 단계에서 위젯 추가 뷰 요청을 수행(RequestOpenAddView())한다.
위젯 컨트롤러 프로세스(30)는 위젯 추가 뷰 요청을 수신하면 807 단계에서 버퍼 정보 확인(PrepareBufferInfo())을 수행한다. 예컨대 위젯 패키지 정보 매니저(35)로부터 해당 위젯(151)의 특성 정보를 확인하고, 이를 통해 위젯 추가 뷰를 위해 추가로 제공해야 할 버퍼 정보를 확인할 수 있다. 버퍼 확인이 완료되면, 위젯 컨트롤러 프로세스(30)는 809 단계에서 위젯 서비스 프로바이더(10)에게 위젯 추가 뷰 생성(CreateAddView())을 요청한다.
위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30)로부터의 요청에 따라 위젯 추가 뷰에 대한 실행 루틴들을 확인하고 위젯 추가 뷰를 기입할 준비를 수행한다. 그리고 위젯 서비스 프로바이더(10)는 준비가 완료되면 811 단계에서 위젯 컨트롤러 프로세스(30)에게 위젯 추가 뷰에 대한 데이터를 기입할 버퍼 정보를 요청(RequestRenderBuffer())한다. 그러면 위젯 컨트롤러 프로세스(30)는 813 단계에서 버퍼 정보를 위젯 서비스 프로바이더(10)에게 제공한다. 위젯 서비스 프로바이더(10)는 817 단계에서 획득된 버퍼 정보를 기반으로 위젯 추가 뷰 데이터를 기입(Rendering())한다.
데이터 쓰기가 완료되면 위젯 서비스 프로바이더(10)는 819 단계에서 버퍼 업데이트가 완료(BufferUpdated())되었음을 위젯 컨트롤러 프로세스(30)에게 전달한다. 위젯 컨트롤러 프로세스(30)는 버퍼 쓰기 완료를 수신하면 이를 위젯 뷰어 어플리케이션(50)에 버퍼 업데이트 완료(BufferUpdated())를 전달한다. 위젯 뷰어 어플리케이션(50)은 버퍼 업데이트 완료에 포함된 버퍼의 주소 정보를 확인하고, 해당 버퍼에 기입된 위젯 추가 뷰 데이터를 읽어서 표시부(140)에 출력하도록 제어할 수 있다.
도 9는 본 발명의 사용자 기능 운용 방법 중 데이터 표시 방식을 이미지 파일로 처리하는 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 위젯 뷰어 어플리케이션(50)은 표시부(140)에 출력된 위젯 정보 출력 영역을 선택하는 입력 이벤트 예컨대 클릭 이벤트(ClickedEvent())를 수신할 수 있다. 위젯 뷰어 어플리케이션(50)은 수신된 클릭 이벤트(ClickedEvent())를 901 단계에서 위젯 컨트롤러 프로세스(30)에 전달한다. 이때 위젯 뷰어 어플리케이션(50)은 클릭된 위젯의 종류 정보와 선택 위치 정보 등을 위젯 컨트롤러 프로세스(30)에 제공할 수 있다.
위젯 컨트롤러 프로세스(30)는 903 단계에서 클릭 이벤트(ClickedEvent())를 위젯 서비스 프로바이더(10)에 제공한다. 이때 위젯 컨트롤러 프로세스(30)는 클릭된 위젯의 종류 정보를 기반으로 해당 프로세스 또는 위젯(151)에 클릭 이벤트를 제공한다. 위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30)로부터 위젯 클릭 이벤트(ClickedEvent())를 수신하면 905 단계에서 해당 위젯 실행을 수행한다. 즉 위젯 서비스 프로바이더(10)는 위젯(151)에 정의된 루틴들을 기반으로 단말기(100)의 특정 정보 또는 외부 네트웍 연결을 통한 위젯 관련 정보(UpdateContent())를 수집한다. 또한 위젯 서비스 프로바이더(10)는 위젯 정보 출력 영역 선택에 따른 이미지 효과를 적용할 수 있다. 그리고 위젯 서비스 프로바이더(10)는 수집된 정보 및 이미지 효과가 적용된 이미지 파일을 생성한다. 즉 위젯 정보 출력 영역을 갱신한 이미지 파일을 생성한다. 위젯 서비스 프로바이더(10)는 이미지 파일을 일정 메모리 버퍼에 저장할 수 있다. 이때 위젯 서비스 프로바이더(10)는 아미지 파일을 비휘발성 플래쉬 메모리 또는 휘발성 메모리 등에 기입할 수 있다.
이미지 파일 생성이 완료되면 위젯 서비스 프로바이더(10)는 907 단계에서 정보 수집 완료 및 이미지 효과 적용에 따른 이미지 파일 생성 완료에 해당하는 정보 갱신 이벤트(ContentUpdatedEvent())를 위젯 컨트롤러 프로세스(30)에 전달한다. 그리고 위젯 컨트롤러 프로세스(30)는 909 단계에서 정보 갱신 이벤트(ContentUpdatedEvent())를 위젯 뷰어 어플리케이션(50)에 전달한다. 위젯 뷰어 어플리케이션(50)은 정보 갱신 이벤트 수신에 따라 위젯 서비스 프로바이더(10)가 작성한 이미지 파일을 읽어서 이를 표시부(140)에 출력할 수 있다.
도 10은 본 발명의 실시 예에 따른 사용자 기능 운용 방법 중 버퍼 기반의 표시 방식을 설명하기 위한 도면이다.
도 10을 참조하면, 사용자가 표시부(140)의 특정 위치에 출력된 위젯 정보 출력 영역을 터치하는 동작을 수행할 수 있다. 그러면 위젯 뷰어 어플리케이션(50)은 1001 단계에서 해당 동작에 따른 터치 이벤트(TouchEvent())를 수집할 수 있다. 여기서 터치 이벤트(TouchEvent())는 위젯 정보 출력 영역을 터치 다운한 이벤트, 터치 다운 이후 드래그하는 드래그 이벤트, 드래그 이후 터치를 해제하는 터치 해제 이벤트 등을 포함할 수 있다.
위젯 컨트롤러 프로세스(30)는 위젯 뷰어 어플리케이션(50)으로부터 터치 이벤트(TouchEvent())를 수신하면 이를 1003 단계에서 위젯 서비스 프로바이더(10)에게 제공할 수 있다. 이때 위젯 컨트롤러 프로세스(30)는 해당 터치 이벤트에 의해 지시된 위젯(151)의 종류, 터치 이벤트의 이동 궤적, 터치 해제 이벤트 발생 지점 등의 정보를 함께 제공한다.
위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30)로부터 터치 이벤트(TouchEvent())를 수신하면 1005 단계에서 해당 이벤트에 따른 처리(EventProcessing())를 수행한다. 예컨대 위젯 서비스 프로바이더(10)는 터치 이벤트에 따른 위젯 정보 출력 영역의 이미지 효과 변경을 수행할 수 있다. 예로서 위젯 정보 출력 영역을 하이라이트 표시하거나 이미지를 반전하는 효과를 적용하는 처리를 수행할 수 있다. 또한 위젯 서비스 프로바이더(10)는 위젯 기능 수행에 따른 위젯 관련 정보 수집을 1007 단계에서 수행할 수 있다.
이벤트 처리 및 이미지 효과 적용이 완료되면 위젯 서비스 프로바이더(10)는 특정 메모리 버퍼 영역에 해당 데이터를 직접 기입할 수 있다. 이를 위하여 위젯 서비스 프로바이더(10)는 해당 이벤트 처리에 따른 데이터를 기입 가능한 메모리 버퍼를 확보하고, 확보된 메모리 버퍼에 데이터 기입을 수행한다. 그리고 위젯 서비스 프로바이더(10)는 데이터 기입 완료 후 1009 단계에서 데이터 기입 완료에 대한 정보 및 메모리 버퍼의 주소 정보를 포함하는 컨텐츠 갱신 이벤트 정보(ContentUpdatedEvent())를 위젯 컨트롤러 프로세스(30)에 제공할 수 있다.
위젯 컨트롤러 프로세스(30)는 1011 단계에서 해당 컨텐츠 갱신 이벤트 정보(ContentUpdatedEvent())를 위젯 뷰어 어플리케이션(50)에 제공한다. 위젯 뷰어 어플리케이션(50)은 컨텐츠 갱신 이벤트 정보로부터 갱신한 위젯 정보 출력 영역을 확인하며 또한 메모리 버퍼의 주소 정보를 확인한다. 그리고 위젯 뷰어 어플리케이션(50)은 메모리 버퍼에 기입된 데이터를 읽어서 위젯 정보 출력 영역을 갱신할 수 있다.
도 11은 본 발명의 실시 예에 따른 사용자 기능 운용 방법 중 텍스트 기반의 표시 방식을 설명하기 위한 도면이다.
도 11을 참조하면, 사용자가 표시부(140)의 특정 위젯 정보 출력 영역을 선택하기 위한 터치 동작을 수행하면, 위젯 뷰어 어플리케이션(50)은 특정 위젯 정보 출력 영역 선택에 따른 터치 이벤트(TouchEvent())를 1101 단계에서 수집할 수 있다. 그러면 위젯 뷰어 어플리케이션(50)은 1103 단계에서 수신된 터치 이벤트(TouchEvent())에 따른 이미지 표시 효과를 처리(EventProcessing())할 수 있다. 예컨대 위젯 뷰어 어플리케이션(50)은 위젯 정보 출력 영역 선택에 해당하는 하이라이트 표시 또는 이미지 반전 표시, 음영 표시 등을 적용할 수 있다. 이를 위하여 위젯 뷰어 어플리케이션(50)은 위젯 정보 출력 영역 선택에 따른 이미지 처리 루틴들을 사전 저장할 수 있다. 그리고 해당 이미지 효과 적용을 위한 렌더링 기능을 수행하도록 설계될 수 있다.
한편 위젯 뷰어 어플리케이션(50)은 1105 단계에서 처리된 이벤트(ProcessedEvent())를 위젯 컨트롤러 프로세스(30)에 제공한다. 위젯 컨트롤러 프로세스(30)는 1107 단계에서 처리된 이벤트(ProcessedEvent())를 위젯 서비스 프로바이더(10)에 제공한다. 이때 위젯 컨트롤러 프로세스(30)는 처리된 이벤트에 해당하는 위젯 종류를 확인하고 그에 대응하는 프로세스 및 위젯(151)을 확인한다. 그리고 위젯 컨트롤러 프로세스(30)는 처리된 이벤트를 해당 프로세스 및 위젯(151)에 제공되도록 제어할 수 있다.
위젯 서비스 프로바이더(10)는 처리된 이벤트(ProcessedEvent())를 수신하면, 1109 단계에서 해당 이벤트에 따른 위젯 관련 정보 수집을 수행한다. 예컨대 위젯 서비스 프로바이더(10)는 특정 웹 페이지 접속 수행 및 특정 뉴스 정보나 날씨 정보 등을 수집하도록 지원할 수 있다. 위젯 관련 정보 수집이 완료되면 위젯 서비스 프로바이더(10)는 1111 단계에서 갱신된 컨텐츠 데이터(UpdatedContentData())를 위젯 컨트롤러 프로세스(30)에 제공한다. 위젯 컨트롤러 프로세스(30)는 1113 단계에서 갱신된 컨텐츠 데이터(UpdatedContentData())를 위젯 뷰어 어플리케이션(50)에 제공한다.
위젯 뷰어 어플리케이션(50)은 1115 단계에서 갱신된 컨텐츠 데이터(UpdatedContentData())에 따른 위젯 정보 출력 영역 갱신(UpdateContent())을 수행한다. 이때 위젯 서비스 프로바이더(10)가 위젯 컨트롤러 프로세스(30)에 제공하며, 위젯 컨트롤러 프로세스(30)가 위젯 뷰어 어플리케이션(50)에 제공하는 갱신된 컨텐츠 데이터(UpdatedContentData())는 갱신할 텍스트 정보만을 포함한다. 이에 따라, 위젯 뷰어 어플리케이션(50)이 자신이 사전에 정의하고 있는 위젯 정보 출력 영역 표시 방식에 상기 텍스트 정보를 적용하여 표시부(140) 출력을 지원할 수 있다. 이를 위해 위젯 뷰어 어플리케이션(50)은 위젯 정보 출력 영역에 대한 다양한 이미지 정보를 사전에 운용할 수 있도록 설계되고, 전달된 텍스트 정보를 해당 영역에 기입하여 출력할 수 있다.
도 12 내지 도 14는 본 발명의 위젯 정보 출력 영역의 표시 방식을 지원하는 제어부 동작을 설명하기 위한 도면이다. 특히 도 12는 본 발명의 컨텐츠 렌더링 방식 중 메모리 버퍼 기반의 표시 방식을 설명하기 위한 도면이다.
도 12를 참조하면, 특정 위젯 정보 출력 영역에서 터치 이벤트가 발생하거나, 특정 위젯 정보 출력 영역을 선택하는 입력 이벤트가 발생하면 위젯 뷰어 어플리케이션(50)은 해당 입력 이벤트를 위젯 컨트롤러 프로세스(30)에 전달한다. 이때 위젯 뷰어 어플리케이션(50)은 입력 이벤트에 의해 지정된 위젯의 식별 정보를 제공할 수 있다.
위젯 컨트롤러 프로세스(30)는 위젯 뷰어 어플리케이션(50)으로부터 위젯 식별 정보를 수신하면 이를 기반으로 해당 위젯 특성 정보(Manifest file)를 확인한다. 그리고 위젯 컨트롤러 프로세스(30)는 위젯 특성 정보에 기입된 해당 위젯의 표시 방식을 확인한다. 여기서 표시 방식이 메모리 버퍼 기반 표시 방식인 경우 위젯 컨트롤러 프로세스(30)는 렌더링 컨트롤러(39)를 이용하여 메모리 버퍼를 확보하는 한편, 프로바이더 컨트롤러(31) 및 위젯 인스턴스 매니저(33)를 이용하여 수집된 정보(Rendering Buffer Information)를 위젯 서비스 프로바이더(10)의 해당 프로세스 및 위젯(151)에 전달한다.
위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30)의 요청에 따라 해당 위젯(151)을 실행하여 위젯 관련 정보 및 이미지 효과 적용을 준비한다. 그리고 위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30)가 확보한 메모리 버퍼에 위젯 관련 정보 및 이미지 효과를 기입한다. 그리고 위젯 서비스 프로바이더(10)는 메모리 버퍼 기입 완료(Rendering buffer updated event)를 위젯 컨트롤러 프로세스(30)에 전달한다. 위젯 컨트롤러 프로세스(30)는 메모리 버퍼 기입 완료에 따른 렌더링 버퍼 정보(Rendered Buffer)를 뷰어 인터페이스(41)를 통해 위젯 뷰어 어플리케이션(50)에 전달한다.
이에 따라, 위젯 뷰어 어플리케이션(50)은 메모리 버퍼에 기입된 위젯 관련 정보 및 이미지 효과를 표시부(140)에 출력한다. 이때 위젯 뷰어 어플리케이션(50)은 위젯 관련 정보 및 이미지 효과를 홈 스크린 화면, 락 스크린 화면, 메뉴 화면, 위젯 화면 등 해당 입력 이벤트가 발생한 화면에 출력하도록 지원한다.
한편 위젯 컨트롤러 프로세스(30)는 특정 위젯 선택을 위한 입력 이벤트에 따라 위젯 특성 정보를 확인한 후 링크된 별도의 기능 실행이 정의된 경우 해당 기능 실행 및 그에 따른 컨텐츠 표시를 수행하도록 지원할 수 있다.
도 13은 본 발명의 컨텐츠 렌더링 방식 중 이미지 파일 기반의 표시 방식을 설명하기 위한 도면이다.
도 13을 참조하면, 위젯 컨트롤러 프로세스(30)는 단말기(100) 동작에 따라 또는 기 설정된 스케줄 정보에 따라 위젯 관련 정보 갱신을 위한 이벤트를 수신하거나 위젯 정보 출력 영역의 이미지 효과 변경을 위한 이벤트를 수신할 수 있다. 그러면 위젯 컨트롤러 프로세스(30)는 위젯 특성 정보(Manifest file)를 확인하여 해당 위젯의 특성을 확인한다. 이때 위젯 컨트롤러 프로세스(30)해당 위젯이 이미지 파일 기반의 표시 방식을 적용하도록 정의된 경우, 이에 대한 정보를 위젯 서비스 프로바이더(10)에게 전달한다. 특히 위젯 컨트롤러 프로세스(30)는 해당 위젯과 관련된 프로세스 및 위젯(151)에 정보 갱신 요청과 함께 이미지 파일 표시 방식을 알릴 수 있다.
위젯 서비스 프로바이더(10)는 정보 갱신 요청 및 이미지 파일 표시 방식에 대한 정보를 수신하면, 해당 위젯(151)을 실행하여 위젯 관련 정보를 수집한다. 이와 함께 위젯 서비스 프로바이더(10)는 위젯 정보 출력 영역 선택에 따른 이미지 효과 적용을 수행한다. 이때 위젯 서비스 프로바이더(10)는 위젯 정보 출력 영역에 대한 이미지 효과 적용을 수행하여 그에 대응하는 이미지 파일을 생성할 수 있다. 그리고 이미지 효과가 적용된 이미지 파일을 뷰어 인터페이스(41)를 통하여 위젯 뷰어 어플리케이션(50)에 전달한다. 그리고 위젯 서비스 프로바이더(10)는 수집된 위젯 관련 정보가 적용된 이미지 파일을 생성한다. 위젯 서비스 프로바이더(10)는 정보가 적용된 이미지 파일을 뷰어 인터페이스(41)를 통하여 위젯 뷰어 어플리케이션(50)에 제공할 수 있다. 여기서 상기 위젯 서비스 프로바이더(10)는 이미지 효과 적용 및 위젯 관련 정보의 동시 적용에 따른 이미지 파일을 생성하고 이를 제공할 수도 있다.
도 14는 본 발명의 컨텐츠 렌더링 방식 중 텍스트 기반의 표시 방식을 설명하기 위한 도면이다.
도 14를 참조하면, 앞서 도 12 및 도 13에서 설명한 바와 같이 위젯 컨트롤러 프로세스(30)는 위젯 특성 정보(Manifest file)를 확인한다. 그리고 위젯 컨트롤러 프로세스(30)는 해당 위젯 특성 정보(Manifest file)에서 위젯 표시 방식이 텍스트 기반 표시 방식임을 확인한다. 위젯 컨트롤러 프로세스(30)는 위젯 관련 정보 수집 또는 이미지 효과 적용 등을 위한 정보 갱신 요청과 함께 텍스트 기반 표시 방식임을 정의한 정보를 위젯 서비스 프로바이더(10)에 제공한다.
위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30)로부터 정보 갱신 요청을 수신하면 해당 갱신 요청에 따라 위젯 정보 출력 영역의 이미지 효과 적용에 대해 정의된 제1 텍스트 정보(Description Data 1)를 작성한다. 그리고 위젯 서비스 프로바이더(10)는 작성된 제1 텍스트 정보(Description Data 1)를 라이브 박스 라이브러리(56)(Live box Library)를 통하여 위젯 뷰어 어플리케이션(50)에 전달할 수 있다. 위젯 뷰어 어플리케이션(50)은 수신된 제1 텍스트 정보(Description Data 1) 및 라이브 박스 라이브러리(56)를 기반으로 특정 위젯 정보 출력 영역의 이미지 효과를 변경할 수 있다. 라이브 박스 라이브러리(56)는 제1 텍스트 정보(Description Data 1)에 기입된 텍스트 내용에 따라 위젯 정보 출력 영역을 어떻게 변경할지를 사전 정의한 정보들을 라이브러리로 제공하는 구성이 될 수 있다. 이에 따라 위젯 뷰어 어플리케이션(50)은 라이브 박스 라이브러리(56)에서 정의된 이미지 관련 정보들과 제1 텍스트 정보(Description Data 1)를 매핑하고 그에 따른 이미지 관련 정보들을 위젯 정보 출력 영역에 표시하도록 제어할 수 있다.
한편 위젯 서비스 프로바이더(10)는 위젯 관련 정보를 수집한다. 그리고 위젯 서비스 프로바이더(10)는 수집된 위젯 관련 정보에 의하여 위젯 정보 출력 영역에서 변경하여야 할 정보들을 제2 텍스트 정보(Description Data 2)로 정의한다. 그리고 위젯 서비스 프로바이더(10)는 제2 텍스트 정보(Description Data 2)를 라이브 박스 라이브러리(56)를 통해 위젯 뷰어 어플리케이션(50)에 전달한다. 위젯 뷰어 어플리케이션(50)은 제2 텍스트 정보(Description Data 2)에 정의된 정보 및 라이브 박스 라이브러리(56)를 활용하여 위젯 정보 출력 영역의 텍스트를 변경하거나 추가적인 이미지 변경 및 기타 영역을 변경할 수 있다.
예컨대 위젯 뷰어 어플리케이션(50)은 복수의 지역에 대한 날씨 정보를 위젯 정보 출력 영역에 출력한 상태에서, 위젯 서비스 프로바이더(10)로부터 하나의 날씨 정보에 해당하는 텍스트 정보를 수신할 수 있다. 그러면 위젯 뷰어 어플리케이션(50)은 해당 텍스트 정보에 따라 위젯 정보 출력 영역에 하나의 날씨 정보만을 출력하도록 지원할 수 있다. 이때 위젯 뷰어 어플리케이션(50)은 하나의 날씨 정보를 해당 위젯 정보 출력 영역의 크기에 적합하도록 사전 정의된 방식에 따라 확장하거나 축소하여 표시할 수 있다.
추가로 본 발명의 단말기(100)는 컨텐츠 렌더링 방식 중 스크립트 기반 컨텐츠 갱신 도 지원할 수 있다. 스크립트 기반 컨텐츠 갱신 방식은 위젯 컨트롤러 프로세스(30)가 컨텐츠 영역을 생성하고, 위젯 컨트롤러 프로세스(30)에 추가로 마련된 스크립트 엔진을 이용하여 컨텐츠 영역에 해당 컨텐츠를 기입한다. 그리고 위젯 컨트롤러 프로세스(30)는 위젯 서비스 프로바이더(10)로부터 전달 받는 컨텐츠 데이터를 채워 넣은 후, 위젯 뷰어 어플리케이션(50)에 제공한다. 스크립트 기반 컨텐츠 갱신 방식이 적용되는 경우 위젯 패키지 정보 매니저(35)는 컨텐츠 영역에 대한 레이아웃(Layout)을 구성하기 위한 스크립트 파일을 제공한다. 위젯 컨트롤러 프로세스(30)는 해당 스크립트를 로딩한 후 컨텐츠가 구성될 때 레이아웃을 구성할 수 있다. 이 레이아웃 영역의 제어를 위해 위젯 서비스 프로바이더(10)에서 동작 중인 위젯(151)은 디스크립션 파일(Description File)을 생성하여 위젯 컨트롤러 프로세스(30)에게 제공하며, 위젯 컨트롤러 프로세스(30)는 이 디스크립션 파일을 파싱하여 컨텐츠를 갱신하고, 갱신 이벤트를 위젯 뷰어 어플리케이션(50)에 제공하여 화면 갱신을 유도할 수 있다.
도 15는 본 발명의 사용자 기능 운용에 따른 프로세스 운용을 모니터링한 결과를 나타낸 도면이다.
도 15를 참조하면, 단말기(100)는 PID가 각각 2857 및 3602로 식별되는 위젯(151)들을 실행할 수 있다. 여기서 단말기(100)는 각 위젯(151)들의 라이프 사이클 관리를 위하여 TTL(time to live)을 관리한다. TTL은 각 위젯(151)의 위젯 특성 정보(Manifest file)에서 사전 정의된다. PID가 2857인 위젯의 경우 TTL이 0.0000인 값으로 별도의 라이프 사이클이 없는 위젯이 될 수 있다. 즉 2857 위젯은 라이프 사이클이 적용되지 않고 항상 제1 메모리(161)에 업로드되어 기능을 수행하는 위젯이 될 수 있다.
한편 3602 위젯은 TTL이 22 sec로 정의될 수 있으며, 위젯 초기 실행 이후 TTL이 감소한다. 결과적으로 도 15에서 하단에서와 같이 TTL이 0.0000으로 타이머 만료가 발생하면 단말기(100)의 제어부(160)는 해당 위젯(151)을 제1 메모리(161)에서 제거할 수 있다. 이때 해당 위젯(151)은 실행이 일시적으로 중지된다. 제어부(160)는 위젯(151)의 실행 종료를 위하여 PID 값으로 ??1을 할당할 수 있다. 또는 제어부(160)는 TTL을 기반으로 임시 종료된 위젯을 나타내기 위한 특정 값을 할당할 수 있다. TTL 만료에 따라 3602 위젯의 상태(State)는 "Resumed" 상태에서 "terminated" 상태로 변경된다. 상술한 바와 같이 본 발명의 단말기(100)는 제1 메모리(161)에서 지속적으로 업로드된 특정 사용자 기능에 대하여 실제 구동 시점에서 제1 메모리(161)에 업로드되어 기능 실행에 따른 정보를 수집할 수 있도록 지원한다. 이에 따라 제1 메모리(161)에 업로드되는 루틴들을 최소화할 수 있어 제1 메모리(161) 관리에 소요되는 전력을 최적화할 수 있다. 또한 제1 메모리(161) 영역을 실제 운용이 필요한 루틴들이 업로드되도록 함으로써 적절한 메모리 영역 활용을 지원할 수 있다.
도 16A 내지 도 16D는 본 발명의 사용자 기능 운용에 따른 위젯 정보 출력 영역의 다양한 형태를 설명하기 위한 도면이다. 이하 설명에서는 사용자 기능을 위젯 기능으로 가정하기로 하며, 특히 음성 녹음을 위한 위젯 기능을 예시하여 위젯 정보 출력 영역의 다양한 형태를 설명하기로 한다.
도 16A를 참조하면, 본 발명의 단말기(100) 표시부(140)는 위젯 추가 실행을 위한 요청이 발생하면 도시된 바와 같이 해당 요청에 따른 제1 위젯 정보 출력 영역(1601a)을 표시부(140)에 출력한다. 표시부(140)에는 제1 위젯 정보 출력 영역(1601a)의 배경 영역(1605)이 더 출력될 수 있다. 배경 영역(1605)은 위젯 뷰어 어플리케이션(50)에서 디폴트로 제공되는 영역이거나, 위젯 서비스 프로바이더(10)에 업로드된 위젯(151) 실행에 따라 제공된 영역이 될 수 있다. 위젯(151)은 해당 이미지를 출력하기 위한 루틴, 오디오 패스 제어를 위한 루틴, 오디오 신호 수집 및 녹음 처리를 위한 루틴 등을 포함할 수 있다.
한편 단말기(100)는 위젯 기능 수행 중에 위젯 기능 제어를 위한 입력 이벤트의 이력 및 위젯 정보 출력의 상태를 관리하는 정보 관리 영역(1603)을 가질 수 있다. 도시된 정보 관리 영역(1603)은 표시부(140)에 출력될 수도 있으나, 단말기(100) 내부적으로 백그라운드 프로세싱을 통하여 관리되는 메모리 값들을 가상으로 나타낸 것이 될 수 있다. 정보 관리 영역(1603)에서는 위젯 정보 출력 영역의 제공 가능한 크기들에 대한 정보 및 해당 위젯 기능 수행 요청에 대한 이력이 포함된다.
정보 관리 영역(1603)에서는 제1 위젯 정보 출력 영역(1601a)의 크기 정보 항목들을 관리할 수 있다. 정보 관리 영역(1603)의 이력은 1X1, 1X2, 2X2 등으로 위젯 정보 출력 영역을 리사이징하고 현재 2X2 제1 위젯 정보 출력 영역(1601a) 상태임을 나타낸다. 위젯 정보 출력 영역 변경을 위하여 사용자는 표시부(140)에서 터치 이벤트를 생성하여 위젯 정보 출력 영역을 지정하고, 위젯의 크기 정보 변경을 위한 터치 이벤트를 생성하여 위젯 정보 출력 영역을 리사이징하도록 요청할 수 있다. 또는 사용자는 별도의 입력 수단 예컨대 마우스나 하드웨어 키 등을 이용하여 위젯 정보 출력 영역의 리사이징을 요청할 수 도 있다.
앞서 언급한 바와 같이 위젯 기능 실행에 따라 해당 위젯과 관련된 정보들이 이력으로 관리될 수 있으며, 현재 표시 상태에 대한 정보가 제공될 수 있다. 따라서 단말기(100)가 특정 위젯 기능 실행에 따른 정보 관리 영역(1603)을 제공하도록 지원하는 경우 정보 관리 영역(1603)은 표시부(140)에 출력되거나 별도의 외부 장치에 제공될 수 있다.
제어부(160) 측면에서 제1 위젯 정보 출력 영역(1601a)을 출력하기 위하여 위젯 뷰어 어플리케이션(50)이 동작한다. 그리고 음성 녹음에 관한 기능 지원을 위하여 위젯 컨트롤러 프로세스(30) 및 위젯 서비스 프로바이더(10)가 동작한다.
도 16B를 참조하면, 단말기(100)의 제어부(160)는 입력 이벤트에 따라 제1 위젯 추가 뷰(1602a)를 표시부(140)에 출력할 수 있다. 이를 위하여 사용자는 제1 위젯 추가 뷰(1602a) 호출을 위한 사전 정의된 입력 이벤트 생성을 위한 동작을 수행할 수 있다. 예컨대 사용자는 제1 위젯 추가 뷰(1602a) 호출을 위한 메뉴 항목을 선택하거나 제1 위젯 정보 출력 영역(1601a)의 영역 또는 인접된 영역에서 사전 정의된 터치 제스처를 생성할 수 있다. 그러면 제어부(160)는 해당 입력 이벤트 및 위젯 특성 정보를 확인하여 제1 위젯 추가 뷰(1602a) 표시를 위한 제어를 수행할 수 있다. 제1 위젯 추가 뷰(1602a)의 표시 위치는 위젯 뷰어 어플리케이션(50)에 의하여 결정될 수 있다. 위젯 뷰어 어플리케이션(50)은 현재 제1 위젯 정보 출력 영역(1601a)의 배치 형태 예컨대 가로 모드 또는 세로 모드 등을 확인하여 제1 위젯 추가 뷰(1602a)의 표시 위치를 다르게 지정할 수 있다. 또한 위젯 뷰어 어플리케이션(50)은 제1 위젯 정보 출력 영역(1601a)의 크기에 따라 제1 위젯 추가 뷰(1602a)의 크기 및 위치 중 적어도 하나를 조정할 수 있다.
표시부(140)는 배경 영역(1605)을 제1 위젯 정보 출력 영역(1601a) 및 제1 위젯 추가 뷰(1602a)의 배경으로 표시할 수 있다. 배경 영역(1605)은 앞서 설명한 바와 같이 위젯 뷰어 어플리케이션(50)에서 제공하거나 위젯 서비스 프로바이더(10)가 해당 위젯(151) 실행에 따라 제공할 수 있다. 정보 관리 영역(1603)에는 현재 표시 중인 제1 위젯 정보 출력 영역(1601a)의 현재 크기 정보가 제공될 수 있다.
한편 정보 관리 영역(1603)은 제1 위젯 추가 뷰(1602a) 표시 요청에 따라 갱신이 발생한다. 즉 제1 위젯 추가 뷰 요청 항목(1604a)이 해당 이력에 추가될 수 있다. 한편 제1 위젯 추가 뷰(1602a) 지원을 위하여 제1 메모리(161)에는 해당 위젯(151) 및 제1 위젯 추가 뷰(1602a) 지원을 위한 루틴들이 업로드될 수 있다. 실질적으로 위젯(151)은 이미 제1 메모리(161) 상에 업로드된 상태이고 추가로 제1 위젯 추가 뷰(1602a) 지원을 위한 루틴들이 제1 메모리(161)에 업로드될 수 있다. 제1 위젯 추가 뷰(1602a) 지원을 위한 루틴은 녹음 실행을 위한 녹음 가상 키(1611) 출력 및 처리 루틴, 메모 작성 실행을 위한 메모 가상 키(1613) 출력 및 처리 루틴, 타이틀 및 녹음 관련 정보 처리 루틴 등을 포함할 수 있다. 정보 관리 영역(1603)은 현재 표시된 제1 위젯 정보 출력 영역(1601a)의 제1 크기 정보 항목(1606a)을 출력한다. 여기서 정보 관리 영역(1603)은 제1 위젯 추가 뷰(1602a)의 크기 정보 항목 또한 표시하도록 설계될 수 있다.
도 16C를 참조하면, 16B에서 녹음 가상 키(1611) 선택을 통하여 녹음 기능 실행이 요청되면 표시부(140)는 도시된 바와 같이 녹음 실행 화면에 해당하는 제2 위젯 정보 출력 영역(1601b)을 표시할 수 있다. 이때 표시부(140)는 배경 영역(1605)을 함께 표시할 수 있다. 제2 위젯 정보 출력 영역(1601b)은 새로운 이미지 파일로 구성되거나, 이전 제1 위젯 정보 출력 영역(1601a)을 기초로 하여 추가 정보가 갱신되는 형태로 제공될 수 있다. 이를 위하여 위젯 서비스 프로바이더(10)는 제2 위젯 정보 출력 영역(1601b)의 갱신을 지원한다. 그리고 위젯 서비스 프로바이더(10)는 위젯(151)을 수행하여 마이크를 통해 수집되는 오디오 신호를 지속적으로 수집하고 일시 저장하도록 제어할 수 있다. 위젯 뷰어 어플리케이션(50)에 의하여 제2 위젯 정보 출력 영역(1601b)이 갱신되는 동안 위젯 서비스 프로바이더(10)는 추가 정보 즉 카운트 되는 시간을 실시간으로 변경하도록 이미지 효과 처리 및 텍스트 정보 처리 등을 지원할 수 있다.
한편 녹음 가상 키(1611) 선택에 따라 제1 위젯 추가 뷰(1602a)의 표시가 자동으로 중지될 수 있다. 이를 위하여 제1 위젯 추가 뷰(1602a) 표시 구성은 녹음 가상 키(1611) 선택 시 표시부(140)에서 자동으로 제거되도록 설계될 수 있다. 제1 위젯 추가 뷰(1602a) 제거에 따라 정보 관리 영역(1603)은 제1 위젯 추가 뷰 요청 항목(1604a), 제1 위젯 추가 뷰 제거 항목(1604b)을 이력으로 포함할 수 있다. 그리고 정보 관리 영역(1603)은 현재 표시된 제2 위젯 정보 출력 영역(1601b)의 제1 크기 정보 항목(1606a)을 포함할 수 있다. 한편 제1 위젯 추가 뷰(1602a)가 표시부(140)에서 제거되면 위젯 서비스 프로바이더(10)는 제1 위젯 추가 뷰(1602a)와 관련된 루틴들을 제1 메모리(161)에서 제거할 수 있다.
녹음 기능이 수행되는 과정에서 추가 뷰 요청을 위한 입력 이벤트가 발생할 수 있다. 그러면 제어부(160)는 도 16D에서와 같이 제2 위젯 추가 뷰(1602b)를 표시부(140)에 출력하도록 지원할 수 있다. 제2 위젯 추가 뷰(1602b)는 제1 위젯 추가 뷰(1602a)의 변형된 형태가 될 수 있다. 또는 제2 위젯 추가 뷰(1602b)는 제1 위젯 추가 뷰(1602a)와 다르게 설계된 형태가 될 수 있다. 제2 위젯 추가 뷰(1602b)를 호출하는 입력 이벤트는 제1 위젯 추가 뷰(1602a) 호출과 동일하거나, 다른 형태로 구성될 수 있다. 제어부(160)는 제2 위젯 정보 출력 영역(1601b)이 표시된 상태에서 추가 뷰 요청이 발생하면 제2 위젯 추가 뷰(1602b)를 출력하도록 제어할 수 있다. 그리고 제어부(160)는 제1 위젯 정보 출력 영역(1601a)이 표시된 상태에서 추가 뷰 요청이 발생하면 제1 위젯 추가 뷰(1602a)를 표시부(140)에 출력하도록 지원할 수 있다.
제2 위젯 추가 뷰(1602b)는 도시된 바와 같이 제1 위젯 추가 뷰(1602a)와는 상이한 가상 키들이 배치된다. 즉 제2 위젯 추가 뷰(1602b)는 녹음 기능 제어와 관련된 가상 키들 예컨대 추가 기능 가상 키(1621), 녹음 중지 가상 키(1622), 녹음 일시 중지 가상 키(1623), 녹음 종료 가상 키(1624) 등을 출력할 수 있다.
정보 관리 영역(1603)은 위젯 추가 뷰들의 호출 이력에 따라 제1 위젯 추가 뷰 요청 항목(1604a), 제1 위젯 추가 뷰 제거 항목(1604b), 제2 위젯 추가 뷰 요청 항목(1604c)을 포함할 수 있다. 또한 정보 관리 영역(1603)은 현재 제1 크기 정보 항목(1606a)이 포함된 크기 정보 항목들을 포함할 수 있다.
도 16E는 위젯 정보 출력 영역의 리사이징을 설명하기 위한 것이다. 도 16D에서 녹음 중지 가상 키(1622)가 선택되면 표시부(140)는 녹음을 중지하고 녹음 기능과 관련된 디폴트 화면을 제공할 수 있다. 예컨대 표시부(140)는 2X2 제1 위젯 정보 출력 영역을 배경 영역(1605)과 함께 표시할 수 있다. 이후 위젯 정보 출력 영역 변경을 위한 입력 이벤트가 수신되면 제어부(160)는 해당 입력 이벤트에 따라 위젯 정보 출력 영역의 크기를 변경할 수 있다. 도 16E에서는 위젯 정보 출력 영역이 2X1 크기인 제3 위젯 정보 출력 영역(1601c) 표시를 나타낸 것이다.
정보 관리 영역(1603)에서는 위젯 정보 출력 영역의 크기 변경에 따라 제2 크기 정보 항목(1606b)이 출력되거나, 제2 크기 정보 항목(1606b)이 하이라이트 될 수 있다. 또한 정보 관리 영역(1603)은 위젯 추가 뷰 운용 이력에 따라 제1 위젯 추가 뷰 요청 항목(1604a), 제1 위젯 추가 뷰 제거 항목(1604b), 제2 위젯 추가 뷰 요청 항목(1604c), 제2 위젯 추가 뷰 제거 항목(1604d)을 포함할 수 있다. 앞서 설명한 바와 같이 정보 관리 영역(1603)은 표시부(140)에 제공되지 않고 별도의 외부 장치에 제공되거나 위젯 관리 화면에서 제공될 수 있다. 이에 따라 제1 크기 정보 항목(1606a) 및 제2 크기 정보 항목(1606b)의 하이라이트 표시는 현재 화면 상태에서 제공되지 않고, 별도의 화면에서 정보 관리 영역(1603)이 표시되는 경우 제공될 수 있을 것이다.
도 17A 내지 도 17C는 본 발명의 사용자 기능 운용 중 위젯 생성 및 적용의 일예를 설명하기 위한 도면이다.
도 17A 내지 도 17C를 참조하면, 단말기(100)는 사용자 기능 운용 대기를 위한 대기 화면, 홈 스크린 화면, 위젯 화면 등 특정 화면(이하 홈 스크린 화면으로 예시하여 설명)을 1701 화면에서와 같이 출력할 수 있다. 1701 화면에서 표시되는 홈 스크린 화면의 각 영역들은 "My Life, My Style"과 같은 타이틀 영역, 요일 정보 영역, 날씨 정보 영역 등을 포함한다. 그리고 홈 스크린 화면에는 하단에 가상 소프트 키가 배치될 수 있다. 한편 표시부(140)가 제공하는 홈 스크린 화면 영역 중 일정 영역은 기능이 정의되지 않은 제1 기능 추가 영역(1710a)이 제공될 수 있다.
제1 기능 추가 영역(1710a)이 선택되면 단말기(100)는 1703 화면에서와 같이 단말기의 특정 사용자 기능 수행 화면을 제공할 수 있다. 특히 단말기(100)는 제1 기능 추가 영역(1710a) 선택 시 메뉴 항목들을 포함하는 리스트를 제공하고, 리스트 중 특정 웹 사이트 접속 항목이 선택되면 1703 화면에서와 같이 선택된 웹 사이트의 웹 접속 화면을 출력할 수 있다.
이후 단말기(100)는 제1 기능 추가 영역(1710a) 지원을 위한 메뉴 항목이 선택되면 1705 화면에서와 같이 메뉴 리스트 영역(1720)을 화면 일측에 출력할 수 있다. 그리고 1705 화면에서 홈 스크린에 기능 추가를 위해 할당된 "Add to home screen"이 선택되면, 1707 화면에서와 같이 해당 메뉴 항목의 서브 항목을 포함하는 메뉴 서브 항목 영역(1730)을 출력할 수 있다. 1707 화면에서 표시부(140)는 "Add to home screen" 메뉴 서브 항목 영역(1730)이 "shortcut" 항목 및 "web clip" 항목을 포함한 것을 예시하여 나타낸 것이다. 여기서 "web clip" 항목이 선택되면 단말기(100)는 1709 화면에서와 같이 web clip으로 사용할 일정 선택 영역(1740)을 크랍(crop)할 수 있도록 지원한다. 일정 선택 영역(1740)은 도시된 바와 같이 터치 이벤트 등에 따라 크기가 변경될 수 있도록 지원한다.
일정 선택 영역(1740)의 크랍이 완료되면, 제어부(160)는 일정 선택 영역(1740)에 따른 위젯 기능 실행 주기를 선택할 수 있는 주기 선택 영역(1750)을 1711 화면에서와 같이 표시부(140) 일측에 출력하도록 지원할 수 있다. 도시된 도면에서는 주기 선택 영역(1750)이 1, 3, 6, 12시간 단위 및 자동 업데이트 중지 항목을 포함하는 것을 예시한 것이다. 이러한 주기 선택 영역(1750)의 항목들은 설계자 의도에 따라 분 단위나 일 단위 또는 월 단위 등의 항목을 더 포함할 수 있을 것이다.
주기 선택 영역(1750)에서의 주기 항목 선택이 완료되면, 제어부(160)는 "web clip"에 따른 홈 스크린 기능 추가 수행을 하면서 1713 화면에서와 같이 저장 절차 화면을 표시부(140)에 출력하도록 지원할 수 있다. 저장이 완료되면 제어부(160)는 자동으로 1715 화면이 표시부(140)에 출력되도록 제어할 수 있다. 1715 화면을 보면, 홈 스크린 화면에는 새로운 기능이 추가된 기능 영역(1710b)을 포함할 수 있다. 추가된 기능 영역(1710b)은 결과적으로 특정 웹 접속 화면에서 선택한 일정 선택 영역(1740)을 위젯 기능으로서 활용할 수 있도록 제공하는 영역이 된다.
제어부(160)의 위젯 뷰어 어플리케이션(50)은 추가된 기능 영역(1710b)에 표시될 위젯 정보 출력 영역을 구성한다. 그리고 위젯 컨트롤러 프로세스(30)는 위젯 정보 출력 영역을 컨텍스트로 구성하여 관리할 수 있다. 위젯 컨트롤러 프로세스(30)는 위젯 기능 실행 주기에서 선택된 항목에 따라 위젯(151) 수행을 위한 루틴들을 제1 메모리(161)에 업로드하고 위젯 관련 정보를 수집하도록 지원할 수 있다.
위젯 서비스 프로바이더(10)는 위젯 기능 실행 주기가 도래하면 제1 메모리(161)에 해당 위젯 및 위젯 수행을 위한 프로세스를 로드하고, 이를 기반으로 1703 화면에 나타낸 웹 사이트 접속을 수행한 후, 크랍해온 영역에 기입된 새로운 정보를 위젯 관련 정보로 수집할 수 있다.
한편 추가된 기능 영역(1710b)을 통해 제공되는 위젯의 라이프 사이클은 별도의 설정 입력이 없는 경우 사전 정의된 디폴트값에 따라 정의될 수 있다. 예컨대 추가된 기능 영역(1710b)의 정보 출력을 위한 위젯은 30초 라이프 사이클이 정의될 수 있다. 이에 따라 추가된 기능 영역(1710b)에 정보가 갱신된 이후 30초가 경과하면 위젯 및 해당 위젯을 지원하는 프로세스 타입이 제1 메모리(161)에서 제거될 수 있다.
도 18 내지 도 20은 본 발명의 사용자 기능 운용 중 프로세스 및 위젯(151)의 라이프 사이클 관리를 설명하기 위한 도면이다.
먼저, 도 18을 참조하면, 위젯 추가를 위한 이벤트가 발생하면 위젯 뷰어 어플리케이션(50)은 1801 단계에서 위젯 추가(AddWidget()) 메시지를 위젯 컨트롤러 프로세스(30)에 제공한다. 위젯 컨트롤러 프로세스(30)는 위젯 추가 요청에 따라 1803 단계에서 해당 위젯 지원을 위한 프로세스가 제1 메모리(161)에 런치(Launch())되도록 위젯 서비스 프로바이더(10)에 요청할 수 있다. 그리고 위젯 컨트롤러 프로세스(30)는 1805 단계에서 프로세스 상에 해당 위젯 배치(CreateNewInstance())를 위젯 서비스 프로바이더(10)에 요청할 수 있다.
위젯 서비스 프로바이더(10)는 위젯 배치 요청에 따라 해당 위젯(151)을 프로세스 상에 배치한다. 그리고 위젯 서비스 프로바이더(10)는 위젯 배치 완료에 따른 정보(Created)를 1807 단계에서 위젯 컨트롤러 프로세스(30)에 제공한다. 위젯 컨트롤러 프로세스(30)는 1809 단계에서 위젯(151)이 추가되었음을 위젯 뷰어 어플리케이션(50)에 전달(Added())할 수 있다.
한편 위젯 컨트롤러 프로세스(30)는 1811 단계에서 해당 위젯(151)의 라이프 사이클 관리를 위한 타이머 구동(SetTTL())을 수행한다.
도 19를 참조하면, 위젯 컨트롤러 프로세스(30)는 타이머 구동 만료 전에 정보 갱신을 요청하는 이벤트 또는 위젯 기능 실행 주기 도래를 확인할 수 있다. 그러면 위젯 컨트롤러 프로세스(30)는 타이머 갱신 제어(ExpiredUpdateTimer())를 수행한다. 위젯 컨트롤러 프로세스(30)는 타이머의 구동 만료 시간을 연장하거나 타이머를 리셋하도록 제어할 수 있다. 한편 위젯 컨트롤러 프로세스(30)는 위젯 관련 정보(UpdateContent() 수집을 위젯 서비스 프로바이더(10)에 요청할 수 있다. 그러면 위젯 서비스 프로바이더(10)는 앞서 설명한 바와 같이 위젯 관련 정보를 수집하고 정의된 컨텐츠 표시 방식에 따라 위젯 컨트롤러 프로세스(30)를 통해 위젯 뷰어 어플리케이션(50)에 전달하거나, 메모리 버퍼 운용을 통하여 위젯 관련 정보 기입을 수행할 수 있다.
한편 위젯 뷰어 어플리케이션(50)은 사용자로부터 특정 위젯 기능 실행을 위한 사용자 이벤트를 수신할 수 있다. 그러면 위젯 뷰어 어플리케이션(50)은 사용자 이벤트(UserEvent())를 위젯 컨트롤러 프로세스(30)에 제공한다. 위젯 컨트롤러 프로세스(30)는 수신된 사용자 이벤트(UserEvent())를 1907 단계에서 위젯 서비스 프로바이더(10)에 제공할 수 있다. 사용자 이벤트를 수신한 위젯 서비스 프로바이더(10)는 해당 이벤트에 따른 위젯 관련 정보 수집 및 갱신을 지원한다. 이때 위젯 컨트롤러 프로세스(30)는 사용자 이벤트 발생 시 위젯(151)의 라이프 사이클을 연장하거나 타이머 리셋을 수행하도록 제어할 수 있다.
위젯 컨트롤러 프로세스(30)는 1909 단계에서 특정 위젯(151)의 라이프 사이클 관리를 위해 할당한 타이머 구동 만료(ExpiredTTLTimer())를 확인할 수 있다. 그러면 위젯 컨트롤러 프로세스(30)는 1911 단계에서 해당 위젯(151)의 제거(Terminate() or delete())를 위젯 서비스 프로바이더(10)에 요청할 수 있다. 위젯 서비스 프로바이더(10)는 특정 위젯 제거를 위한 요청을 수신하면 해당 위젯(151)을 제1 메모리(161)에서 제거한다. 이때 위젯 서비스 프로바이더(10)는 해당 위젯(151)이 해당 프로세스의 마지막으로 로딩되어 있던 위젯인 경우 프로세스도 종료하도록 제어할 수 있다.
도 20을 참조하면, 위젯 뷰어 어플리케이션(50)은 제1 메모리(161)에서 제거되어 있던 특정 위젯 기능의 활성화를 요청하는 사용자 이벤트를 수신할 수 있다. 그러면 위젯 뷰어 어플리케이션(50)은 2001 단계에서 사용자 이벤트(UserEvent())를 위젯 컨트롤러 프로세스(30)에 제공한다. 위젯 컨트롤러 프로세스(30)는 사용자 이벤트에 따른 위젯 구동을 위해 필요한 프로세스 런치(Launch())를 2003 단계에서 위젯 서비스 프로바이더(10)에 요청한다. 그리고 위젯 컨트롤러 프로세스(30)는 사용자 이벤트(UserEvent())를 2005 단계에서 위젯 서비스 프로바이더(10)에 제공한다. 여기서 2003 단계인 프로세스 런치 단계는 위젯 기능이 프로세스 타입인 경우에 요청될 수 있다. 플러그-인 타입인 경우 이미지 플러그-인 타입의 프로세스가 로딩되어 있을 수 있으며 이 경우 2003 단계는 생략될 수 있을 것이다. 위젯 서비스 프로바이더(10)는 수신된 사용자 이벤트를 확인하여 해당 위젯 기능을 지원할 수 있도록 위젯(151)을 프로세스에 로딩하도록 제어한다. 여기서 위젯 컨트롤러 프로세스(30)는 해당 위젯의 라이프 사이클 관리를 위한 타이머 구동을 수행할 수 있다.
한편 위젯 컨트롤러 프로세스(30)는 위젯(151)의 라이프 사이클 관리를 위해 구동한 타이머의 만료 시간 도래를 2007 단계에서 확인할 수 있다. 그러면 위젯 컨트롤러 프로세스(30)는 2009 단계에서 위젯(151) 제거(delete()) 또는 프로세스 종료(Terminate())를 위젯 서비스 프로바이더(10)에 요청할 수 있다. 위젯 서비스 프로바이더(10)는 위젯 컨트롤러 프로세스(30) 요청에 따라 해당 위젯(151)을 제1 메모리(161)에서 제거하거나 프로세스를 종료 및 제거할 수 있다.
한편 위젯 컨트롤러 프로세스(30)는 2011 단계에서와 같이 특정 위젯 기능의 실행 주기가 도래(ExpiredUpdateTimer())한 경우 2013 단계에서 해당 위젯(151) 실행을 위한 프로세스 런치(Launch())를 위젯 서비스 프로바이더(10)에 요청할 수 있다. 그리고 위젯 컨트롤러 프로세스(30)는 정보 갱신 요청(UpdateContent())을 위젯 서비스 프로바이더(10)에 요청할 수 있다. 위젯 서비스 프로바이더(10)는 해당 정보 갱신 요청에 따라 위젯(151)을 실행하여 위젯 관련 정보를 수집한다. 이때 위젯 서비스 프로바이더(10)는 위젯 정보 출력 영역의 이미지 효과 적용도 지원할 수 있다. 2011 단계 수행되면서 위젯 컨트롤러 프로세스(30)는 라이프 사이클 관리를 위한 타이머 구동을 수행할 수 있다.
이후 위젯 컨트롤러 프로세스(30)는 2017 단계에서 타이머 구동이 만료되면, 2019 단계에서 위젯(151) 제거(delete()) 또는 프로세스 종료(Terminate())를 위한 요청을 위젯 서비스 프로바이더(10)에 요청할 수 있다. 이에 따라 위젯 서비스 프로바이더(10)는 제1 메모리(161)에서의 위젯 또는 프로세스 제거를 수행할 수 있다.
이상에서 설명한 바와 같이 본 발명의 실시 예에 따른 사용자 기능 운용 방법 및 이를 지원하는 단말기는 메모리에 상주해야 하는 사용자 기능을 지원하는 과정에서 별도의 실시간 환경(Runtime Environment)의 구현 없이 일반적인 운영체제 상에서 어플리케이션을 실행시키는 방식으로 기능을 지원할 수 있다. 또한 본 발명은 위젯 서비스 프로바이더(10) 기반의 인터페이스를 제공하여 다양한 종류의 환경에서 개발되는 소프트웨어들을 바인딩(Binding) 할 수 있도록 지원한다. 예컨대 본 발명은 웹(Web) 기반으로 작성된 웹 기반 위젯을 제공할 수 있다. 본 발명은 플랫폼(Platform) 환경에 따라 위젯 인터페이스(Widget Interface)를 독자적으로 재정의 및 구현할 수 있도록 지원한다. 즉 본 발명에서 제시하는 프레임워크(Framework)를 통해 다양한 시스템에서 이식성이 높은 사용자 기능 프로그램 예컨대 위젯 시스템을 쉽게 구축하고 적용할 수 있도록 지원한다.
한편 상술한 단말기는 그 제공 형태에 따라 다양한 추가 모듈을 더 포함할 수 있다. 즉 상기 단말기는 통신 단말기인 경우 근거리 통신을 위한 근거리통신모듈, 상기 단말기의 유선통신방식 또는 무선통신방식에 의한 데이터 송수신을 위한 인터페이스, 인터넷 네트워크와 통신하여 인터넷 기능을 수행하는 인터넷통신모듈 및 디지털 방송 수신과 재생 기능을 수행하는 디지털방송모듈 등과 같이 상기에서 언급되지 않은 구성들을 더 포함할 수도 있다. 이러한 구성 요소들은 디지털 기기의 컨버전스(convergence) 추세에 따라 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 구성 요소들과 동등한 수준의 구성 요소가 상기 디바이스에 추가로 더 포함되어 구성될 수 있다. 또한 본 발명의 단말기는 그 제공 형태에 따라 상기한 구성에서 특정 구성들이 제외되거나 다른 구성으로 대체될 수도 있음은 물론이다. 이는 본 기술분야의 통상의 지식을 가진 자에겐 쉽게 이해될 수 있을 것이다.
또한 본 발명의 실시 예에 따른 상기 단말기는 예를 들면, 상기 단말기는 다양한 통신 시스템들에 대응되는 통신 프로토콜들(communication protocols)에 의거하여 동작하는 모든 이동통신 단말기들(mobile communication terminals)을 비롯하여, PMP(Portable Multimedia Player), 디지털방송 플레이어, PDA(Personal Digital Assistant), 음악 재생기(예컨대, MP3 플레이어), 휴대게임단말, 스마트 폰(Smart Phone), 노트북(Notebook) 및 핸드헬드 PC 등 모든 정보통신기기와 멀티미디어 및 그에 대한 응용기기를 포함할 수 있다.
한편, 본 명세서와 도면을 통해 본 발명의 바람직한 실시 예들에 대하여 설명하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것일 뿐, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100 : 단말기 110 : 통신부
120 : 입력부 140 : 표시부
150 : 저장부 160 : 제어부
161 : 제1 메모리 162 : 제2 메모리

Claims (20)

  1. 전자 장치의 사용자 기능 운용 방법에 있어서,
    선택 이벤트 또는 일정 실행 주기에 따라 실행되는 사용자 기능을 위한 위젯 프로그램 데이터를 제1 메모리에 로딩하고 타이머를 구동하는 실행 과정;
    사용자 기능 실행에 따라 수집된 위젯 정보를 제2 메모리에 저장하여 전자 장치의 디스플레이에 출력하는 과정;
    상기 타이머 만료 시 상기 로딩된 프로그램 데이터를 상기 제1 메모리에서 제거하되 상기 선택 이벤트 또는 일정 실행 주기를 기반으로 한 사용자 기능 실행에 따라 갱신되는 위젯 정보를 상기 제2 메모리에 저장하여 상기 위젯 정보의 출력을 유지하는 과정;을 포함하는 것을 특징으로 하는 전자 장치의 사용자 기능 운용 방법.
  2. 제1항에 있어서,
    상기 사용자 기능을 위한 프로그램 위젯 데이터는
    상기 사용자 기능 을 위한 프로그램 언어 기반의 프로세스;
    상기 프로세스 상에 로딩되는 위젯; 중 적어도 하나인 것을 특징으로 하고,
    상기 제2 메모리, 제3 메모리 또는 저장소 중 적어도 하나에 상기 일정 실행 주기에 따라 상기 사용자 기능이 실행되도록 하는 실행 루틴 및 상기 사용자 기능에 의해 수집된 위젯 정보를 제2 메모리에 저장하도록 하는 루틴을 저장하는 것을 특징으로 하는 전자 장치의 사용자 기능 운용 방법.
  3. 제1항에 있어서,
    상기 타이머 만료 전 선택 이벤트 또는 일정 실행 주기가 도래한 경우 상기 타이머의 만료 시간을 연장하는 과정;
    상기 타이머 만료 전 선택 이벤트 또는 일정 실행 주기가 도래한 경우 상기 타이머를 리셋하는 과정; 중 어느 하나의 과정을 더 포함하는 것을 특징으로 하는 전자 장치의 사용자 기능 운용 방법.
  4. 제1항에 있어서,
    상기 타이머를 구동하는 실행 과정은
    상기 사용자 기능의 특성 정보를 확인하는 과정;
    상기 특성 정보에 따라 상기 사용자 기능 실행을 위한 플러그-인 타입 또는 프로세스 타입 중 어느 하나의 프로세스를 상기 제1 메모리에 로딩하는 과정;
    상기 프로세스에 상기 사용자 기능 실행을 위한 루틴들을 로딩하는 과정;을 더 포함하는 것을 특징으로 하는 전자 장치의 사용자 기능 운용 방법.
  5. 제1항에 있어서,
    상기 타이머를 구동하는 실행 과정은
    상기 사용자 기능의 특성 정보를 확인하는 과정;
    상기 특성 정보에 따라 상기 사용자 기능 실행을 위한 루틴들을 사전에 배치된 플러그-인 타입 프로세스에 로딩하는 과정;을 더 포함하는 것을 특징으로 하는 전자 장치의 사용자 기능 운용 방법.
  6. 제5항에 있어서,
    상기 타이머를 구동하는 실행 과정은
    상기 플러그-인 타입 프로세스의 부하를 확인하는 과정;
    상기 플러그-인 타입 프로세스의 부하가 일정 값 이상인 경우 상기 플러그-인 타입 클론을 생성하는 과정;
    상기 생성된 클론에 상기 사용자 기능 실행을 위한 루틴들을 로딩하는 과정;을 더 포함하는 것을 특징으로 하는 전자 장치의 사용자 기능 운용 방법.
  7. 선택 이벤트 또는 일정 실행 주기에 따라 실행되는 사용자 기능을 위한 위젯 프로그램 데이터가 로딩되는 제1 메모리;
    상기 프로그램 데이터의 제1 메모리 로딩 시 구동되는 타이머;
    상기 사용자 기능 실행에 따라 수집된 정보를 출력하는 표시부;
    상기 표시부에 출력할 상기 정보가 저장되는 제2 메모리;
    상기 타이머 만료 시 상기 로딩된 위젯 프로그램 데이터를 상기 제1 메모리에서 제거하되 상기 선택 이벤트 또는 일정 실행 주기에 따라 실행되는 사용자 기능 실행을 기반으로 갱신되는 위젯 정보를 수집하여 상기 제2 메모리에 저장하여 상기 위젯 정보의 출력을 유지하도록 제어하는 제어부;를 포함하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  8. 제7항에 있어서,
    상기 사용자 기능 을 위한 위잿 프로그램 데이터는
    상기 사용자 기능 을 위한 프로그램 언어 기반의 프로세스;
    상기 프로세스 상에 로딩되는 위젯; 중 적어도 하나인 것을 특징으로 하고,
    상기 제2 메모리, 제3 메모리 또는 저장소 중 적어도 하나에 상기 일정 실행 주기에 따라 사용자 기능이 실행되도록 하는 실행 루틴 및 사용자 기능에 의해 수집된 위젯 정보를 제2 메모리에 저장하도록 하는 루틴을 저장하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  9. 제7항에 있어서,
    상기 제어부는
    상기 타이머 만료 전 선택 이벤트 또는 일정 실행 주기가 도래한 경우 상기 타이머의 만료 시간을 연장하거나, 상기 타이머를 리셋하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  10. 제7항에 있어서,
    상기 제어부는
    상기 사용자 기능의 특성 정보에 따라 플러그-인 타입 또는 프로세스 타입 중 어느 하나의 프로세스를 상기 제1 메모리에 로딩하고, 상기 프로세스에 상기 사용자 기능 실행을 위한 루틴들을 로딩하도록 제어하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  11. 제7항에 있어서,
    상기 제어부는
    상기 사용자 기능의 특성 정보에 따라 상기 사용자 기능 실행을 위한 루틴들을 상기 제1 메모리에 사전에 배치된 플러그-인 타입 프로세스에 로딩하도록 제어하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  12. 제11항에 있어서,
    상기 제어부는
    상기 플러그-인 타입 프로세스의 부하가 일정 값 이상인 경우 상기 플러그-인 타입 클론을 생성하고 상기 사용자 기능 실행을 위한 루틴들을 상기 클론에 로딩하도록 제어하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  13. 위젯 실행 주기가 도래하거나 상기 위젯 실행을 위한 입력 이벤트를 수신하는 위젯 어플리케이션;
    상기 위젯 실행을 위한 프로세스 로딩 및 프로세스 상에 상기 위젯을 제1 메모리를 통해 로딩하고 실행시키는 위젯 서비스 프로바이더;
    상기 위젯 어플리케이션 및 상기 위젯 서비스 프로바이더 사이에 배치되어 위젯 실행 제어 및 위젯 기능 수행에 따른 위젯 관련 정보 출력을 제2 메모리를 통해 제어하는 위젯 컨트롤러 프로세스;를 실행 모듈로 포함하는 사용자 기능 운용을 지원하는 전자 장치.
  14. 제13항에 있어서,
    상기 위젯 컨트롤러 프로세스는
    상기 위젯 실행 주기 도래 시 기 정의된 라이프 사이클을 가지는 타이머를 구동하도록 제어하고,
    상기 타이머 만료 시 상기 로딩된 위젯을 상기 제1 메모리에서 제거하도록 제어하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  15. 제14항에 있어서,
    상기 위젯 컨트롤러 프로세스는
    상기 제1 메모리에서 제거되는 위젯이 해당 프로세스의 마지막으로 로딩된 위젯인 경우 상기 프로세스를 종료하도록 제어하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  16. 제13항에 있어서,
    상기 위젯 어플리케이션은
    위젯 실행을 위한 입력 이벤트 발생 시 상기 입력 이벤트를 상기 위젯 컨트롤러 프로세스에 전달하고,
    상기 위젯 컨트롤러 프로세스는 상기 입력 이벤트를 상기 위젯 서비스 프로바이더에 전달하여 해당 프로세스 및 위젯 로딩을 제어하는 한편 로딩된 위젯을 제거하기 위한 타이머를 구동하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  17. 제13항에 있어서,
    상기 위젯 기능 수행에 따른 위젯 정보 출력 영역을 표시하는 표시부;를 더 포함하고,
    상기 위젯 정보 출력 영역의 추가 뷰 출력 요청이 발생하면 상기 위젯 서비스 프로바이더는 상기 추가 뷰 출력을 위한 루틴들을 상기 제1 메모리에 로딩하여 운용하며,
    상기 위젯 어플리케이션은 상기 추가 뷰 출력을 위한 루틴 운용에 따른 추가 뷰를 상기 위젯 정보 출력 영역과 함께 상기 표시부에 출력하도록 제어하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  18. 제13항에 있어서,
    상기 위젯 컨트롤러 프로세스는 상기 위젯 관련 정보 출력을 위한 제2 메모리에서 버퍼를 할당하고,
    상기 위젯 서비스 프로바이더는 위젯 기능 실행에 따른 관련 정보를 제2 메모리 버퍼에 기입하며,
    상기 위젯 어플리케이션은 상기 제2 메모리 버퍼에 기입된 관련 정보를 표시부에 출력하도록 제어하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  19. 제13항에 있어서,
    상기 위젯 컨트롤러 프로세스는 위젯 특성 정보를 상기 위젯 서비스 프로바이더에 제공하고,
    상기 위젯 서비스 프로바이더는 상기 위젯 특성 정보에 따라 위젯 기능 실행에 따른 관련 정보를 이미지 파일로 생성하여 상기 위젯 어플리케이션에 제공하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
  20. 제13항에 있어서,
    상기 위젯 컨트롤러 프로세스는 위젯 특성 정보를 상기 위젯 서비스 프로바이더에 제공하고,
    상기 위젯 서비스 프로바이더는 상기 위젯 특성 정보에 따라 위젯 기능 실행에 따른 관련 정보를 텍스트 정보로 생성하여 상기 위젯 어플리케이션에 제공하고, 상기 위젯 어플리케이션은 상기 텍스트 정보와 사전 정의된 라이브러리를 기반으로 관련 정보 출력을 제어하는 것을 특징으로 하는 사용자 기능 운용을 지원하는 전자 장치.
KR1020130019441A 2012-11-15 2013-02-22 사용자 기능 운용 방법 및 이를 지원하는 전자 장치 KR102039084B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US14/081,152 US10088986B2 (en) 2012-11-15 2013-11-15 User function operation method and electronic device supporting the same
EP13193172.7A EP2733606A3 (en) 2012-11-15 2013-11-15 Method for loading a process on an electronic device based on a user event
CN201380059878.6A CN104798037B (zh) 2012-11-15 2013-11-15 用户功能操作方法和支持该方法的电子装置
PCT/KR2013/010431 WO2014077637A1 (en) 2012-11-15 2013-11-15 User function operation method and electronic device supporting the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261726711P 2012-11-15 2012-11-15
US61/726,711 2012-11-15

Publications (2)

Publication Number Publication Date
KR20140071510A KR20140071510A (ko) 2014-06-11
KR102039084B1 true KR102039084B1 (ko) 2019-11-26

Family

ID=51125801

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130019441A KR102039084B1 (ko) 2012-11-15 2013-02-22 사용자 기능 운용 방법 및 이를 지원하는 전자 장치

Country Status (2)

Country Link
KR (1) KR102039084B1 (ko)
CN (1) CN104798037B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112015006860T5 (de) * 2015-08-31 2018-05-17 Mitsubishi Electric Corporation Applikationsausführungsvorrichtung und Applikationsausführungsverfahren
CN105550204A (zh) * 2015-12-01 2016-05-04 小米科技有限责任公司 控制位置定位模块的方法及装置
CN106528252B (zh) 2016-12-09 2018-04-24 北京小米移动软件有限公司 对象启动方法及装置
KR102639695B1 (ko) * 2018-11-02 2024-02-23 삼성전자주식회사 디스플레이 장치 및 그 제어 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100747663B1 (ko) 2007-05-04 2007-08-08 주식회사 위즈커뮤니케이션 위젯 실행이 가능한 휴대 단말기 및 대기화면 제어 방법
US20090113444A1 (en) * 2007-10-31 2009-04-30 Google Inc. Application Management

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072672B1 (en) * 2002-11-01 2006-07-04 Nokia Corporation Disposable mini-applications
US20070156913A1 (en) * 2005-12-30 2007-07-05 Hiroyuki Miyamoto Method for enabling extension points through plug-ins
US9069575B2 (en) * 2008-03-25 2015-06-30 Qualcomm Incorporated Apparatus and methods for widget-related memory management
US20100262953A1 (en) * 2009-04-14 2010-10-14 Barboni Michael P Systems and methods for automatically enabling and disabling applications and widgets with a computing device based on compatibility and/or user preference

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100747663B1 (ko) 2007-05-04 2007-08-08 주식회사 위즈커뮤니케이션 위젯 실행이 가능한 휴대 단말기 및 대기화면 제어 방법
US20090113444A1 (en) * 2007-10-31 2009-04-30 Google Inc. Application Management

Also Published As

Publication number Publication date
CN104798037B (zh) 2019-08-16
KR20140071510A (ko) 2014-06-11
CN104798037A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
US11809693B2 (en) Operating method for multiple windows and electronic device supporting the same
US10088986B2 (en) User function operation method and electronic device supporting the same
KR100747663B1 (ko) 위젯 실행이 가능한 휴대 단말기 및 대기화면 제어 방법
KR101457632B1 (ko) 프로그램 알림 기능을 갖는 휴대용 전자 기기 및 이를 위한 프로그램 알림 방법
US20200019416A1 (en) Method of controlling applications in a terminal and terminal
KR102043049B1 (ko) 앱 운용 방법 및 앱 운용 장치와, 이를 지원하는 앱 출력 장치
CN103294335A (zh) 用于创建快键菜单的设备和方法
KR20130112558A (ko) 아이콘 운용을 지원하는 단말기 및 이의 운용 방법
KR102095912B1 (ko) 보안 기능 운용 방법 및 이를 지원하는 전자 장치
US10684838B2 (en) Dynamic application deployment
CN103345405A (zh) 应用程序的启动方法、装置和客户端
CN102945149A (zh) 多个显示装置任务栏
KR102098815B1 (ko) 어플리케이션의 운영을 위한 전자 장치
KR102039084B1 (ko) 사용자 기능 운용 방법 및 이를 지원하는 전자 장치
KR20140054859A (ko) 서버 페이지 운용 방법 및 이를 지원하는 단말기
JP2010061570A (ja) 情報処理装置及びプログラム
CN103677519A (zh) 一种收藏多媒体资源的方法、终端及服务器
CN111324398B (zh) 最近内容的处理方法、装置、终端及存储介质
JP5504168B2 (ja) 移動体端末の待ち受け画面上の情報領域の表示を制御するための方法および装置
KR20140123818A (ko) 오디오 출력 제어 방법 및 이를 지원하는 장치
CN110134463B (zh) 数据处理方法、装置、设备和机器可读介质
CN101877740A (zh) 网页预载及显示方法与电子装置
WO2017078132A1 (ja) モバイル端末およびアプリケーションプログラム
CN114217715A (zh) 富媒体播放页面控制方法、装置、电子设备及存储介质
KR20130034832A (ko) 기능 확장 지원 방법 및 이를 지원하는 단말기

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