Tizen Native Application Life-Cycle

hoyunadmin 7월 22, 2016 댓글 없음

Tizen Native App을 개발하기 위해서는 App이 어떻게 실행되는지에 대해 알아야하는 중요한 부분입니다.

그럼 Tizen Native App은 어떻게 실행되는지에 대한 Life-Cycle에 대해 설명하겠습니다.

1.Tizen App Life-Cycle

Tizen App Life-Cycle은 그림1과 같이 구성되어 있습니다. 그림1을 보듯이 5가지의 콜백으로 Tizen App은 실행이 되어집니다.

5가지의 콜백은 다음과 같이 구성되어있습니다.

 app_lifecycle

<그림1. Tizen App Life-Cycle>

①  app_create

· 프로세스가 시작 될 때 호출됩니다.

· 프로세스가 시작되고 첫번째 명령으로 app_create에서 UI를 구성하는 것이 좋습니다.

② app_control

· 프로세스가 시작될 때 app_create 후에 호출되거나 프로세스가 running중에 실행 요청이 있을 경우 호출됩니다.

· 다른 App이 해당 App을 Launch 요청시 app_control 콜백 함수가 호출됩니다.

· 파라미터를 통해 App_control 데이터를 수신할 수 있습니다.

· ex) 다른 App과 연동되어 있는 App이 있다고 예를 들겠습니다.

        App(1)과  App(2)가 있습니다. App(2)는 App(1)과 연동이 되어 App(1)에서 실행이 가능합니다. 또한, 홈에서도 직접 실행이 가능합니다.

       그러므로 App(2)는 홈에서 직접 실행, App(1)에서 호출 두 가지 방법으로 실행시킬 수 있는 App입니다.

        App(2)는 홈에서 직접 실행될때랑, App(1)에서 호출되어 실행할 경우 다른 이벤트를 실행된다고 가정하겠습니다.

        이때 App(2)를 app_control을 통해 홈에서 실행하였는지, App(1)에서 실행하였는지 파라미터를 통해 정보를 보낼 수 있습니다.

        즉, App(2)는 app_control를 통해 어디서 실행을 호출하였는지 알 수 있어 해당되는 이벤트 또는 화면 구성 등을 할 수 있습니다.

③ app_resume(UI 어플리케이션에만 적용)

· 어플리케이션의 window가 화면에 출력될 때 호출됩니다.

④ app_pause(UI 어플리케이션에만 적용)

· 어플리케이션의 window가 화면에 출력되지 않을 때 호출됩니다.

⑤ app_terminate

· 어플리케이션의 프로세스가 종료되는 동안 호출됩니다.

· Main Loop 종료.

※ Tizen Natieve App은 UI가 없는 Service App 개발도 가능합니다. app_pause와 app_resume은 window와 함께 동작하는 피쳐이기 때문에

     service App에서는 호출되지 않습니다.

2. Tizne Native App Life-Cycle FlowChart

application_lifecycle_flowchart

<그림2. Tizen Application Life_Cycle FlowChart>

Tizen App은 UI App과 UI가 없는 Service App 두가지를 구성할 수 있습니다.

모든 App은 그림2의 왼쪽 프레임의 기본적인 Life-Cycle을 가지게 됩니다.

UI App의 경우, 추가적으로 그림2의 오른쪽 프레임의 Life-Cycle이 추가 생성되며 AddFrame()메소드가 호출 될 때 초기화 됩니다.

App이 실행되면 OnAppInitializing() 이벤트가 호출되고 이때 AddFrema() 메소드를 통해 그림2의 우측 프레임이 추가되어 초기화( OnIntializing() ) 및 생성됩니다. 만약 OnAppInitializing() 이벤트가 실패하면 App은 강제종료가됩니다.

App이 초기화에 성공하면, App은 running 상태가 되며, Event를 수행할 수 있습니다.

요약하자면,

App 실행 -> App 초기화 -> Frame 생성 -> App running 상태 -> 제거(App 종료)

로 볼 수 있습니다.

※ App이 종료되는 경우

① OnAppInitializing() 이벤트의 실패로 False가 반환되는 경우(AddFrame 실패)

② 시스템자원이 부족할 경우

③ Running 상태에서 디바이스의 End버튼을 클릭하는 경우

④ OnAppTerminating()가 호출되는 경우

이상으로 이번 포스터를 마치겠습니다.

Life-Cycle을 잘 이해하신다면 Tizen Native App 개발에 정말 많은 도움이 될 수 있습니다.

감사합니다.

Prepared by : 신재규

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.