S/W Development/bada2010. 11. 15. 18:15

이번 강좌는 바다 애플리케이션 동작 방식에 대한 기본적인 이해를 돕고자 작성되었습니다.

 

바다 플랫폼에서 애플리케이션 타입은 다음과 같은 크게 두 가지로 구성됩니다.

 

  • Base Application
  • bada Application

 

Base Application은 Dialer, Contact, Camera, Music Player와 같은 핵심적인 애플리케이션을 의미하고, bada Application은 설치와 삭제가 가능한 애플리케이션 즉, 모든 3rd party 애플리케이션을 의미합니다.

 

바다 플랫폼에서 동작하는 bada Application Model은 다음과 같은 다이어그램을 참고하면 이해하기 쉽습니다.

가장 하위단에는 OS(멘토 그래픽스사의 Nucleus RTOS를 기반으로 동작함)가 있고, 그 위에 Framework을 위미하는 F라는 접두어를 포함한 FApp 이라는 Application Framework이 있습니다. 이 프레임워크는 애플리케이션에서 발생하는 모든 이벤트를 처리하고, 우리가 만들 애플리케이션과 상호 작용합니다.

 

 

bada Application의 Life Cycle은 다음과 같이 크게 세 단계로 구성됩니다.

 

  • Launch
    • OnAppInitializing : 애플리케이션이 실행될 때, 초기화를 위해서 Application Framework에서 호출합니다.
    • OnForeground : 애플리케이션이 실행되면 처음에는 Foreground로 실행되어 지기 위해 Application Framework에서 호출됩니다.
  • Running
    • OnBackground : bada Application(유저가 홈키를 눌렀거나 전화가 왔을 때와 같은 이벤트가 발생되면)의 실행되면 OnBackground 가 Application Framework에서 호출됩니다.
    • OnForeground : bada Application이 종료되면 다시 OnForeground 가 Application Framework에서 호출됩니다.
  • Termination
    • OnAppTerminating : 다음과 같은 상황이 발생되면 Application Framework가 이 동작을 수행합니다.
      • 유저가 종료 키를 눌렀을 때
      • 유저가 다른 bada Application을 실행했을 때(현재 바다 플랫폼에서는 한번에 하나의 bada Application만 실행할 수 있습니다.)
      • 가용 가능한 메모리가 현저히 적을 때

 

 

바다 애플리케이션이 실행되는 전체적인 흐름은 아래 다이어그램을 보면 이해에 도움이 됩니다.

 

 

이와 함께, 지난 번에 만들었던 Hello Bada 프로젝트의 HelloBada 헤더 파일을 살펴보면 어떻게 Virtual Class들을 상속받아서 구현하여 우리가 만드는 bada Application이 동작하는 지 이해하기 좋습니다.

 

다음 코드는 HelloBada.h 파일에 대한 소스 코드입니다.

 

 

이번 강좌를 통해서 바다 애플리케이션의 동작 방식에 대해서 간략하게 알아봄으로써 앞으로 애플리케이션을 개발하는데 있어 많은 도움이 될 것이라고 생각합니다.

Posted by ILTAL