스마트폰 어플리케이션은 열악한 환경 위에서 최적/초고의 성능을 내야 합니다.
데스크탑 어플을 개발할 때 처럼 인심 좋게 만들어 져서는 안되겠지요!
그래서 모바일 플랫폼에서는 아래와 같은 생명 주기에 의해서 어플리케이션을 운용하고 있습니다.

즉, 불필요하게 CPU를 사용하지 말라는 것이지요.

Figure: Background and foreground perspectives

Application perspectives


보시는 것 처럼 언제 리소스를 할당하고, 언제 화면에 출력되는 지를 OS 가 알려 줍니다.
개발자는 이런 이벤트 상황에 맞춰서 필요한 동작을 수행하면 됩니다.

Figure: Launching applications

Launching applications


위 동작에 의해 어플리케이션이 시작(Launching)되고, 최상단의 라이프 사이클이 시작됩니다.
기본적인 원칙은 "어플리케이션이 화면에 보이는 시점에만 화면 출력을 한다"입니다.


OnForeground(), OnBackground() 이 화면에 보여지는 시점의 시작과 끝을 알려주는 이벤트 핸들러 입니다.

OnForeground() 은
  • 어플리케이션이 실행되어 OnAppInitialize() 동작 후
  • Task Manager List 에서 어플리케이션이 선택 됐을 때
  • Background 상태에서 Launching 될 때
화면에 출력되는 시점을 알려주기 위해 호출 됩니다.

OnBackground() 은
  • "Home" 키라 눌린 경우
  • 다른 윈도우가 팝업 됐을 경우
더 이상 화면 갱신이 필요 없다는 것을 알려 주기 위해 호출 됩니다.


이러한 기본 원칙을 지킨다면 불필요한 배터리 소모를 피할 수 있겠지요!!? 이 원칙은 다른 모바일 플랫폼에서 어플리케이션을 개발할 때도 동일하게 지켜야할 원칙입니다~~~~

모바일 세상으로 Go~~Go~~!!! Go~~Go~~!!!!

'Smart Mobile > Samsung bada' 카테고리의 다른 글

bada Developer Day in Seoul  (0) 2010.03.24
바다 Application UI Classes  (0) 2010.03.16
삼성 "바다" Developer Day  (0) 2010.03.10
Posted by 따봉맨