반응형

이번 포스팅에서는 안드로이드의 시스템 구조에 대하여 알아 보겠습니다.





1. 안드로이드의 구조는 크게 네 분류으로 나눌 수 있습니다. 리눅스 커널과 라이브러리와 버추얼 머신, 어플리케이션 프레임워크, 어플리케이션 이렇게 네 분류로 나눌 수 있습니다. 각 부분에 대해 알바보도록 하겠습니다.



2. 리눅스 커널

- 안드로이드는 리눅스 커널 위에 만들어 졌지만 안드로이드가 리눅스는 아님

- 핵심적인 시스템 서비스들을 제공하며, 프로세스, 메모리, 전원 관리, 네트워크, 드라이버, 보안 들의 내용을 포함

- 표준 리눅스 도구를 모두 제공하지 않음

- 안드로이드 커널도 공개되어 있음



3. 라이브러리와 버추얼 머신

- C/C++로 구성된 라이브러리로 어플리케이션 프레임워크를 통해 사용할 수 있도록 구성됨

- 코어 라이브러리는 자바 라이브러리의 대부분 기능을 제공

- 안드로이드 어플리케이션을 위한 실행 환경을 제공하는 Drlvik VM의 실행 파일은 최소한의 메모리에 최적화된 Dex(Dalvik EXecute) 포멧을 사용하며 안드로이드 어플리케이션은 독립적 프로세스를 할당 받음

버추얼 머신에서 각각의 안드로이드 어플리케이션은 하나의 프로세스로 실행되며 Dalvik VM의 인스턴스를 받음

- 버추얼 머신은 디바이스가 여러 개의 VM을 효율적으로 실행할 수 있도록 구성되어 있음

- 버추얼 머신은 Dalvik에서 안드로이드 5.0부터 AOT 기술을 구현한 ART로 실행

- 버추얼 머신이 실행 포멧인 dex 포멧은 최소한의 메모리만을 사용할 수 있도록 최적화되어 있고 컴파일 시에 생성됨




4. 어플리케이션 프레임워크

- 안드로이드에서  제공하는 어플리케이션도 어플리케이션 프레임워크의 API에 기반하는 경우가 많음

- 간단한 재사용 컴포넌트, 어떤 어플리케이션과도 호환 가능한 호환성을 제공

- Activity Manager는 어플리케이션의 라이프 사이클을 제어함

- Content Provider는 어플리케이션 간에 데이터를 공유할 수 있도록 함

- Resource Manager는 코드 이외의 부분인 리소스를 관리함

- Location Manager는 자신의 위치 파악에 필요한 기능을 제공함

- Notification Manager는 알림 기능를 사용자에게 방해가 되지 않도록 제공함



5. 어플리케이션

- 모든 어플리케이션은 Java로 작성되며 어플리케이션 프레임워크의 API를 사용할 수 있음

- 안드로이드의 핵심 어플리케이션들은 이메일 클라이언트, SMS 프로그램, Calendar, Maps, 웹브라우저, 연락처들을 포함함


반응형

+ Recent posts