안드로이드의 실행 환경과 구성에 대해 얼마나 알고 있니?

안드로이드는 기본적으로 리눅스 커널 위에 탑재된 안드로이드 런타임인 DVM(Dalvik Virtual Machine)에서 동작해. DVM에서 동작하는 안드로이드의 주요 컴포넌트는 아래와 같이 각 영역별로 구분 할 수 있어.

안드로이드 실행환경

안드로이드는 위 이미지와 같이 각 계층별로 구분을 할 수 있는데 각 계층의 역할은 아래 설명과 같아.

애플리케이션(Applications)

자바로 개발된 애플리케이션이 위치하는 영역이고 이메일 클라이언트, SMS 프로그램, 달력, 지도, 브라우저, 주소록 등의 애플리케이션이 탑재되어 있는 영역이야. 또 우리가 자바로 개발한 애플리케이션이 탑재되는 영역이 바로 이곳이야.

애플리케이션 프레임워크(Application Framework)

애플리케이션 프레임워크는 애플리케이션을 개발하기 위해 필요한 각종 API를 제공하는 영역이야. 이 영역에 있는 각종 API를 사용하면 화면에 버튼이나 텍스트 등을 표현할 수 있고 주소록 같은 다른 애플리케이션의 데이터를 사용할 수도 있어. 그리고 이미지나 문자열 등의 여러 데이터에 접근할 수 도 있고 API를 통해 애플리케이션의 생명주기(lifecycle)를 관리하기도 하는 영역이야.

라이브러리(Libraries)

안드로이드에서 사용할 수 있는 다양한 C/C++ 라이브러리를 제공하는 영역이야. 이 영역의 라이브러리는 모두 애플리케이션 프레임워크를 통해 개발자가 사용할 수 있게 하고 있어.

이 영역에는 BSD를 기반으로 한 표준 C 시스템 라이브러리가 임베디드 리눅스 기반의 디바이스에 맞게 수정되어 있고 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 등의 파일들을 지원할 수 있는 PacketVideo의 OpenCore를 기반으로 한 미디어 라이브러리가 포함되어 있어.

서피스 매니저(surface manager) 라이브러리는 2D와 3D 그래픽을 지원하고 WebKit 라이브러리는 브라우저 기능을 지원하지. 그리고 이 라이브러리 영역에서는 임베디드용으로 개발된 데이터베이스 엔진인 SQLite도 제공하고 있어.

안드로이드 런타임(Android Runtime)

안드로이드는 자바를 기반으로 동작하지만 JVM(Java Virtual Machine)을 그대로 사용하지는 않고 달빅 가상 머신으로 불리는 DVM(Dalvik Virtual Machine)을 사용하고 있어.

자바로 작성된 소스 코드(.java)는 자바 컴파일러에 의해 클래스 파일(.class)로 컴파일되고 클래스 파일은 DX 컴파일러가 달빅 바이트 코드로 변환시키게 되지. 즉 자바 소스 코드가 달빅 실행파일(.dex, Dalvik Executable)과 최적화된 달빅 실행파일(.odex, Optimized Dalvik Executable)로 저장되는 거야. 이 파일들은 안드로이드 기기에서 실행되는데 달빅은 메모리가 작은 소형 기기에서도 효율적으로 동작할 수 있도록 최적화되어 있어.

참고로 안드로이드 4.4(킷캣) 이전에는 Dalvik을 기반으로 동작했는데 4.4에서 ART(Android Run Time)이 새롭게 도입되었고 안드로이드 5.0(롤리팝)부터는 ART를 기반으로 변경되었다고 해.

ART(Android Run Time)은 아래와 같은 장점을 가지는데 하위 호환성을 위해 Dalvik과 동일한 바이트 코드를 사용하고 있어.

  • AOT(Ahead-of-time) 컴파일
  • 가비지컬렉션 기능 향상
  • 디버깅 지원 기능 향상

기존의 달빅은 JIT(Just-in-time) 컴파일 방식을 사용했는데 JIT 컴파일 방식은 앱을 실행 할 때마다 바이트 코드를 머신 코드로 변경하기 때문에 이 과정에서 추가적인 메모리를 필요호 하게 돼. 반면 AOT(Ahead-of-time) 방식은 앱이 실행될 때 코드를 변환하는 대신 앱이 설치될 때 DEX 바이트 코드를 머신 코드로 변환하는 작업을 하게 돼. 그래서 설치 시간이 길어지지만 실행 시간은 짧아지는 장점이 있다고 해.

리눅스 커널(Linux Kernel)

안드로이드는 리눅스 커널 3.0.1(안드로이드 4.0)을 기반으로 하고 있는데 이를 통해 보안이나 메모리 관리, 프로세스 관리, 네트워크 스택과 같은 각종 드라이버를 제공하고 있어.

Share This Post

Leave a Reply

Your email address will not be published. Required fields are marked *

Latest Post

  • I have been working as an IT freelancer for over 10 years and have had a chance to work with various clients. Working freelance, I
  • CNBC analyzed the minutes of the Berkshire Hathaway shareholders’ meeting to find out why Warren Buffett could be an excellent investor. It is already known,
  • Good timing is like a good choice. So what is ‘good choice’? A good choice is to decide what you need to do first. That
  • We learned that in childhood we should brush our teeth immediately after eating rice. However, this is a common misconception in the days when common
  • In most cases, it is important for novice marketers to work efficiently by reducing the waste of work and increasing focus. He will not used
  • source: vornado.com The circulator is the abbreviated name for ‘air circulator’. The air circulator actually has a different purpose than the fan. Unlike a fan
  • According to Tom Corley, who studied 177 successful millionaires, successful millionaires had a common secret of success. Here are the 10 habits of successful rich
  • The way to go home late at night after a work or dinner. In a dark alley to go home. What if someone follow you
  • In Korea, ‘stalking’ is a very light misdemeanor. However, there are many cruel and terrible cases of stalking that should be classified as violent crime.
  • About 25% of men under 35 visit their ex-girlfriend’s social media profile once a month. Among young women, 20% said they would do this. Stalking