2014. 10. 2. 01:49

모든 UI어플리케이션은 메인 메뉴와 타스크 전환자에서 실행이 가능하며 서비스 어플리케이션은 다른 어플리케이션에 의해서 실행될 수 있다.  또한 모든 어플리케이션(UI와 서비스 어플리케이션)은 디바이스가 등록된 조건과 부합된 상태가 되었을 때 실행될 수 있다. (예: 특정 시간, NFC관련 데이터 수신 등)  어플리케이션이 실행되면 프로세스 메니져(Process Manager)는 필요한 라이브러리와 어플리케이션의 실행 바이너리를 메모리에 적제하고 어플리케이션의 인스턴스가 시작 포인트- OspMain() 메소드 - 에서 생성되고 실행된다. 


어플리케이션의 라이프 사이클

생성되어 실행된 모든 UI어플리케이션과 서비스 어플리케이션은 다음 그림의 왼쪽과 같은 기본적인 라이프 사이클을 갖는다.  UI어플리케이션의 경우, 추가적으로 우측의 프레임 라이프 사이클을 포함하며 생성하된 AddFrame() 메소드가 호출 될 때 초기화(OnInitializing) 된다.

어플리케이션이 실행되면 OnAppInitializing() 이벤트 핸들러가 호출되고 이때 프레임이 추가된다. 만약 실패하면 어플리케이션이 종료된다.



어플리케이션의 상태 전환
모든 타이젠 네이티브 어플리케이션들은 위 그림의 왼쪽 라이프 사이클의 4개 이벤트 핸들러에 대응하는 4가지 상태를 갖는다.


1. 초기화 중 상태(Initializing)
- 어플리케이션 프레임워크가 어플리케이션을 초기화 한다. (Tizen::App::App)
- 이전 실행에서 저장된 어플리케이션의 데이터가 복구될 수 있다.(Tizen::App::AppRegistry 클랫)
- UI어플리케이션의 경우, 어플리케이션의 프레임이 생성되어야 한다. (Tizen::App::UiApp)

2. 실행 중 상태(Running)
- UI어플리케이션이 실행중이라면 포그라운드나 백그라운드 모드간 전환이 가능하고, 전환 과정에서 어플리케이션의 프레임의 상태가 변경된다.

3. 종료 중 상태(Terminating)
- 어플리케이션이 리소스를 해제하고 상태를 저장한다.

4. 종료 상태(Terminated)
- 어플리케이션 프레임워크가 메모리로부터 어플리케이션을 제거한다.

프레임의 상태 전환 
어플리케이션이 초기화 된 후에는 실행 상태가되고 프레임은 활성화(Activated), 비활성화(Deactivated), 최소화(Minimized)와 같이 3가지 중 한가지 상태를 갖게 된다. End 키를 누르거나 시스템 리소스가 부족할 경우, 어플리케이션은 종료될 수 있으며 OnAppTerminating 이벤트 핸들러가 호출되어 어플리케이션의 리소스를 해제하고 어플리케이션이 프레임을 삭제하면 프레임의 상태는 파괴화(Destroyed)된 상태가 된다.


1. 활성화 상태(Activated) : 입력 디바이스로부터 이벤트를 받고 화면에 보여지는 상태
2. 비활성화 상태(Deactivated) : 다른 앱이 활성화 상태가 되면 활성화 상태 앱은 비활성화 상태가 된다. 이 상태에서 입력은 받을 수 없다. 비활성화 상태의 앱은 부분적으로 화면에 보여질 수 있다. (예를 들어 시스템 팝업창이 뜨면-전화가 오거나 알람이 울리면- 앱은 비활성화 상태가 된다.)
3. 최소화 상태(Minimized) : 새로운 프레임이 기존 프레임을 완전히 덮으면 기존 프레임은 최소화 되면 화면에서 사라진다. (예: 홈키가 눌렸을 경우, 다른 UI애플리케이션이 실행되었을 경우) 최소화 상태가 되면 3D또는 애니메이션 작업과 같은 그래픽 처리는 중단되어야 하며 불필요한 리소스는 해제되어야 하고 미디어 처리와 센서 관리는 중단되어야 한다.  따라서 최소화 상태에서 다시 활성화 상태가 되면 중단되었던 작업들이 재시작되어야 한다.
4. 파괴화 상태(Destructed) : Tizen::App::App 클래스의 Terminate()메소드가 호출되거나 시스템의 리소스(메모리 또는 배터리 파워)가 부족한 경우 앱이 종료될 수 있다.  앱의 종료는 OnAppTerminating()이벤트 핸들러에 의해서 관리된다.

Posted by 모바일헌터
2014. 9. 16. 00:20

타이젠은 표준기반 오픈소스 플랫폼이다.  스마트 폰을 시작으로 태블릿, 웨어러블(시계), 자동차등 다양한 장비를 지원할 예정이다. 다음은 타이젠의 아키텍쳐에 대한 그림이다.


타이젠의 전신인 SLP 초기에는 Native Application만을 GTK+ 기반으로 지원하였으며, 그 후 EFL을 추가하면서 UI Framework를 강화하고 Web Runtime을 통해 Web Application을 지원하였지만 타이젠은 Web과 Native Application을 위해 Framework으로 분리하고 Core에 각종 Framework들을 Web과 Native Framework 이 공유할 수 있는 구조를 갖추었다.  

지난 6월2일 Tizen 2.3 Alpha가 릴리즈되었으며 다음의 사이트에서 확인할 수 있다.
> Tizen 2.3 Alpha SDK and Source code release 

스마트 폰에서는 위와 같은 구조이지만 웨어러블(시계)와 TV에서는 Natvie Application을 지원하지 않고 Web Application만을 지원한다.  Camera의 경우도 Web Application으로 UI를 구성한 듯 한다. 자동차는 인텔의 주도하에 Qt쪽으로 기우는 형국이다.  뭔가 표준화를 지향한다기 보다는 제각각 따로 놀고 있는 분위기이다.


SDK 2.2 버전을 OSX 에 설치하기에 대한 글



Posted by 모바일헌터
2014. 9. 14. 21:51

"삼성전자 스마트 TV 앱스 개발자 포럼"에서 타이젠기반 삼성 TV개발을 위한 SDK를 다운 받아 아 설치해보자. 아직은 스마트 TV 앱스 개발자 포럼이 완전하게 타이젠을 지원하기 위한 준비가 되어 있다고 보기는 힘들지만 일단 설치를 하고 기본적인 사항들을 살표보자.

SDK 1.0 Beta Dwonload

우측의 SDK 1.0 Beta Download 이미지를 클릭하고 SDK 다운로 사이트로 이동하자

TIZEN TV SDK 1.0b

Mac OS를 위한 SDK를 다운로드 하고 인스톨 메니져를 실행하자.

압축파일을 해제하고 

터미널에서 chmod를 이용하여 "inst-manager.bin"에 실행모드를 추가하고 sudo를 이용하여 실행하자. 
$ chmod +x ./inst-manager.bin
$ sudo ./inst-manager.bin

물론, inst-manager.dmg 파일로 부터 설치 관리자를 실행할 수 있지만 현재 버전은 약간의 문제가 있는 듯 하다. 다음과 같은 경고 창을 발생하며, "예"를 선택하고

이미지를 임의로 선택하여 주어도

intelhaxm을 설치하기 위해서 권한을 요청하는 루팅이 포함되어 있는 것 같지 않아 다음과 같은 실패화면을 보여주게 된다.

따라서, 1.0b를 설치하신다면 터미널에서 "inst-manager.bin"을 실행하여 설치하실 것을 권한다. 설치 관리자 초기 화면에서 "Next" 버튼을 클릭하면 다음과 같이 SDK 설치 위치를 선택할 수 있다. 

위치를 설정하고 "Next" 버튼을 누르시면 정상적으로 설치가 되는 것을 보실 수 있으며

금방, 설치가 완료된다.






Posted by 모바일헌터
2014. 9. 4. 19:23

타이젠 메인 사이트(https://www.tizen.org)에 접속하여 최신 타이젠 SDK의 버전을 확인가능


현재(2014년9월4일) 최신 타이젠 SDK 의 버전은 2.2.1입니다. 


SDK다운로드 사이트로 이동하시어 사용하시는 운영체제에 맞는 SDK 설치관리자를 다운로드 받으시면 됩니다.  

사전 준비 작업을 진행할 수 있도록 합시다.  (참조: 타이젠 SDK를 위한 필수구성 요소)

  1. SDK이미지 다운로드
    • 설치 관리자를 통해 설치를 할 경우 많은 양의 데이터를 Package Server로부터 다운로드 받게 됩니다. 아래에서 설명드리겠지만 SDK이미지를 미리 다운로드 받아두시면 설치시간을 단축시키실 수 있습니다.
  2. 자바설치
  3. 인텔 하드웨어 가속 실행 관리자(HAXM) [윈도우즈 혹은 맥 사용자]
    • HAXM은 윈도우즈 혹은 OSX를 사용하는 인텔 프로세서가 탑재된 시스템에서 사용 가능 합니다. (대부분의 시스템이 해당 기능이 Disabled된 상태로 출시가 되므로 BIOS에서 해당 기능을 재설정 해주어야 합니다.  "인텔 하드웨어 가속 실행 관리자"사이트를 통해 HAXM만을 따로 설치치 가능합니다. )
  4. 맥에서 Tizen SDK를 설치할 경우 설정하여줄 것이 하나더 있습니다.

 "시스템 환경설정"(System Preferences)에서

"보안 및 개인정보"를 클릭하시고 "Mac App Store 및 확인된 개발자" (Mac App Store and identified developers) 로부터 다운로드한 응용프로그램만 허용된다는 항목을 

"모든 곳(Anywhere)"으로 변경 후 다시 설치 관리자를 실행해보세요.

그렇지 않으면 다음과 같은 에러 메시지를 보시게 됩니다.


※ 당황스럽네요. HAXM이 Windows 8.1과 OSX 10.9에서 멎어 버리는 증상이 있습니다. 해당 OS 버전을 사용하고 계시다면 다음의 사이트에서 핫픽스 버전을 다운로드 받으시고 설치하시기 바랍니다.  [핫픽스 버전 다운로드]

Step0. 이제 설치 준비가 완료 되었습니다.

Step1. 설치 관리자를 실행합시다.

Step2. [Advanced] 버튼을 클릭하시고 

Step3. 미리 다운로드해 놓은 SDK image를 선택해주세요.


Step4. [OK] 버튼을 누르시면 압축을 풀게 됩니다.


Step5. [License Agreement]에 동의를 하시고 [Next] 버튼을 클릭하시고

Step6. 설치 유형을 선택하시고 [Next] 버튼을 클릭하세요.

Step7. 설치 위치를 선택하시고 [Install] 버튼을 클릭하시면

Step8. 설치가 진행됩니다.

Step9. HAXM을 설치하기 위해서 사용자의 패스워드를 입력합니다.

특별한 에러 메시지 없이 설치를 마무리 하셨다면 이제 개발 준비가 완료된 것입니다. 곧 개발 관련 자료들도 업로드 할 수 있도록 하겠습니다.


Posted by 모바일헌터