0x002 OperatingSystem/04. Android

[Theory] 안드로이드 필수 구성 요소

KimSangLab 2017. 12. 29. 15:44

  안드로이드에는 액티비티(Activity), 서비스(Service), 콘텐트 프로바이더(Content Provider), 브로드캐스트 리시버(BroadCast Receiver)등 4가지의 주요 기능으로 구성된다. 기능을 간단히 정리하면 다음과 같다. 
  1) 액티비티 : 사용자에게 보여주는 디바이스 인터페이스이다. 메뉴를 클릭하거나 버튼을 클릭하는 등 특정한 액션에 의해 전환하게 되는 화면 마다 모두 액티비티라고 할수 있다.
  2) 서비스 : 화면에 보여주지 않고 백그라운드에서 실행된다. 네트워크 전송하거나 파일을 읽는 등의 작업이 있다. 액티비티가 화면에 보여주는 동안 이 기능이 같이 동작을 하는 경우가 대부분이다.
  3) 콘텐트 프로바이더 : 애플리케이션이 공유하는 공간이다. 데이터가 파일 시스템이나 다른 저장소에 있더라도 애플리케이션은 콘텐트 프로바이더를 통해 데이터에 접근한다.
  4) 브로드캐스트 리시버 : 실시간으로 시스템의 상태(배터리, 메일 알람 등)를 확인해 이벤트가 발생할 때 응답한다. 디바이스에 발생하는 노티피케이션 등을 이용해 사용자에게 알람을 발생한다.

1. 액티비티
  안드로이드 환경에서 액티비티는 대개 하나의 화면에서 표시된다.  예를 들어 메인 화면에서 하나의 버튼을 클릭하면 다음 페이지로 접근되며 그 다음에 다른 액션에 의해 다른 액티비티들이 실행 되어 사용자 화면에 보여준다. 액티비티의 생명 주기는 다음과 같다.
  1) 시작(Starting) : 액티비티가 시작 될 때 메모리에 해당 정보가 없을때 시작 상태로 작동 된다. 콜백 함수에 의해 동작이 이뤄지고 동작 상태로 전환된다.
  2) 동작(Running) : 사용자의 화면에 보여주는 상태이며, 액티비티에 실제 액션들이 이뤄지는 상태이다. 문자를 입력하거나 스크린에 터치를 하는 동안의 상태이다.
  3) 대기(Paused) : 사용자의 화면에는 아직 보이는 상태이지만, 포커스는 위치하고 있지 않는 상태이다. 특정 메시지로 인해 대화상자가 액티비티 앞에 발생 할 때를 예로 들 수 있다.
  4) 멈춤(Stopped) : 사용자의 화면에는 보이지 않지만 메모리 상에 존재하는 상태이다. 사용자가 다음 액티비티에서 실행하고 있다가 언제든지 빠르게 볼 수 있게 저장되어 있다.
  5) 파괴(Destoryed) : 메모리에 더 이상 존재하지 않는 상태이다.

2. 서비스
  사용자에게 보이지 않고 백그라운드에서 액티비티와 비슷한 프로세스로 동작 한다. 음악을 듣고 있을 때 다른 어플리케이션이 동작하면서도 백그라운드에서 실행되는 것은 이런 서비스의 기능 때문이다.

3. 콘텐트 프로바이더
  콘텐트 프로바이더는 애플리케이션 사이에 데이터를 공유하기 위한 인터페이스이다. 기본적으로 안드로이드는 애플리케이션 마다 샌드박스에서 동작하기 때문에 시스템에 있는 다른 애플리케이션들끼리 직접 데이터 접근은 격리된다. 작은 데이터들은 인텐트를 통해 공유된다. 콘텐트 프로바이더는 음악, 파일, 사진 등 용량이 큰 데이터를 공유하는데 적합하다.

출처 : 안드로이드 모바일 악성코드와 모의 해킹 진단