반응형

안드로이드 앱은 task의 집합으로 안드로이드에서는 이 task를 activity라 부릅니다.
다시 말하면 하나의 activity는 앱이 수행하는 고유한 하나의 task라는 말이죠.

intent를 통해 현재 activity에서 다른 activity로 전환할 수 있습니다.
그리고 처음 화면에 띄워질 main activity는 AndroidManifest.xml 파일에서 결정합니다.


Activity의 Life cycle

  안드로이드 앱에서는 한 시점에 단 하나의 응용 프로그램 activity만이 foreground에서 실행됩니다. 우리가 자주 쓰는 윈도우와는 조금 다르죠.
  Activity callback 메서드를 이용해서 앱의 상태 및 자원을 관리합니다. 즉 한 activity의 Life cycle 동안 여러 상태를 거치게 되는데 그 때마다 적절한 callback 메서드가 호출되는 것입니다.



Activity callback 메서드
   
 onCreate(Bundle)
하나의 activity가 처음 시작되면 호출되며, setContentView() 메서드 호출과 같은 데이바인딩과 초기 설정 작업에 관여합니다.

 onStart()
activity가 사용자에게 곧 보여질 것을 나타냅니다.

 onResume()
한 activity가 스택의 제일 상위에 놓이고 foreground process가 되면 호출되는 메서드로 애니매이션이나 음악 같은 activity의 실행에 필요한 자원들을 준비하기에 적합한 메서드 입니다.

 onPause()
다른 activity가 스택의 최상위를 차지하면 현재 activity는 background로 밀려나고 이때 현재 activity의 onPause() 메서드가 호출됩니다. activity가 background에 있는 동안 필요하지 않은 자원을 해제할 마지막 기회로 onPause()메서드에서 자원을 많이 해제할 수록 activity가 background에서 죽을(kill) 가능성이 줄어듭니다.

 onStop()
activity가 사용자에서 더 이상 보여지지 않을 때 호출 되며 메모리가 얼마 남지 않았다면 호출되지 않고 시스템이 프로세스를 종료할 수 있습니다.

 onRestart()
activity가 정지 상태에서 다시 디스플레이될 때 호출됩니다.

 onSaveInstanceState(Bundle)
Activity가 죽어도 스택에서 제거되지는 않고 activity 객체의 상태가 하나의 Bundle객체에 저장됩니다. 예를 들면 텍스트 필드 내의 커서 위치에 대한 정보 처럼 activity의 필수 적이지 않은 상태를 Bundle객체에 저장합니다. 이 메서드는 디폴트 구현 값이 모든 사용자 인터페이스 제어 상태를 자동으로 저장하므로 구지 재정의할 필요는 없습니다.

 onDestroy()
activity의 lifecycle이 끝나거나 자원 부족으로 안드로이드가 activity를 죽일 때 호출 됩니다. 메모리가 얼마 남지 않았다면 호출되지 않고 시스템이 프로세스를 종료할 수 있습니다.

 onRestoreInstanceState(Bundle)
onSaveInstanceState() 메서드가 미리 저장해 둔 상태로부터 activity가 다시 초기화될 때 호출 됩니다.


반응형

'컴퓨터&IT > 안드로이드 Android' 카테고리의 다른 글

Android - Activity  (0) 2011.08.24
Android 인터페이스  (0) 2011.08.24
Android Application 구성요소(Component)  (2) 2011.08.24
Dalvik VM (Dalvik Virtual Machine)  (0) 2011.08.24
안드로이드 ? (Android)  (1) 2011.08.24
반응형

   안드로이드 앱에는 적절한 권한만 있으면 누구나 인스턴스화할 수 있는 4개의 컴포넌트가 있고 main()같은 유일한 진입점이 따로 없이 처음으로 생성되는 인스턴스의 생성자가 실질적 진입점이 됩니다.


4가지 구성요소

  Activity
 사용자 인터페이스의 기본 단위로 눈에 보이는 화면 하나를 뜻합니다. 여러 개의 View로 구성되며 App은  필요한 만큼 Activity를 가질 수 있고 그 중에 어떤 것을 화면에 띄울지 결정합니다.

  Service
UI 없이 백그라운드에서 실행되는 요소로 예를 들면 음악을 재생하는 코드를 들 수 있습니다. UI가 없기 때문에 사용자의 명령을 받아들일 수 있는 Activity와 연결해서 사용합니다.

  Broadcast Receiver(BR)
BR도 UI가 없는 것으로 시스템으로부터 전달되는 Broadcast를 대기하고 있다가 신호가 전달되면 수신하여 적절한 activity를 띄웁니다. 배터리가 떨어졌다는 신호나 데이터 전송이 완료 되었다는 등의 신호를 수신하는 역할로 이해하시면 되겠습니다.

  Content Provider(CP)
서로 다른 Application 사이에 데이터를 함부로 액세스 하지 못하도록 되어 있어 CP를 통해 프로그램간의 데이터를 공유할 수 있게 합니다. 예를 들자면 카카오톡 같은 프로그램에서 주소록의 데이터를 이용하는 것을 들 수 있겠지요.


Application은 4가지 요소 중 일부를 가질 수도 있고 여러 개를 가질 수도 있습니다.
이런 구성요소들의 구성은 manifest파일에 저장 관리 되며 최초 실행 시에 어떤 Activity를 화면에 띄울지도 같은 파일에 저장됩니다.

  구성요소간의 통신 수단 Intent
intent는 각 구성요소간의 통신을 위한 장치로 메시지에 대한 상세한 정보를 가지고 구체적인 행동을 설명하는 메카니즘입니다. 만약 '주소록 편집' activity를 호출하면 '누구의 주소를 어떻게 편집할지'가 intent에 실려 전달 됩니다. 
반응형

'컴퓨터&IT > 안드로이드 Android' 카테고리의 다른 글

Android - Activity  (0) 2011.08.24
Android 인터페이스  (0) 2011.08.24
Android application의 구조와 Life cycle  (0) 2011.08.24
Dalvik VM (Dalvik Virtual Machine)  (0) 2011.08.24
안드로이드 ? (Android)  (1) 2011.08.24

+ Recent posts