프로그래밍/안드로이드

[안드로이드] 안드로이드 어플리케이션의 특징 과 아키텍쳐

쿠샨 2010. 12. 13. 14:23

안드로이드 어플리케이션의 특징

 

  • 경계가 없는 어플리케이션 : 어플리케이션은 표준 API(Application Programming Interface) 통해 핵심(core) 모바일 기능에 접근 가능
  • 평등한 어플리케이션 : 모바일 기기에 있는 어플리케이션은 다이얼러(Dialer) (Home) 같은 핵심 구성 요소인 경우에도 대체 가능
  • 제어가 쉬운 어플리케이션 : HTML , Java Script , Style-sheet 등을 쉽게 추가 가능, WebView 통해 컨텐츠를 쉽게 보여 있다.
  • 동시에 실행될 있는 어플리케이션 : 완벽한 멀티태스킹 환경 제공으로 어플리케이션은 백그라운드에 존재 하면서 필요할 경우 알림 정보를 보낼 있다.

안드로이드 아키텍처


Applications 계층

  • Home, Contacts, Phone, Browser, 뿐만 아니라 Alarm Clock, Camera, Email 등의 여러 내장 어플리케이션 존재

 

Application Framework 계층

  • View System
    • 윈도우 시스템의 컨트롤과 같은 것으로 List, Grid, EditText, Button, internal browser 풍부 하고 확장 가능한 사용자 인터페이스 제공
  • Content Providers
    • 다른 어플리케이션이 데이터에 접근할 있도록 지원
  • Resource Manager
    • 현지화된 문자열, 그래픽, 레이아웃 파일 등과 같은 非 코드 리소스에 접근 지원
  • Notification Manager
    • 상태 바에 어플리케이션의 용도에 따른 알림 정보를 표시
  • Activity Manager
    • 어플리케이션의 수명 관리

 

Libraries & Android Runtime 계층

  • Libraries
    • Media Framework - 표준 C 시스템 라이브러리인 libc PacketVideo 사의 OpenCore 기반
    • Surface Manager - 디스플레이 하부 시스템에 대한 접근 제어
    • Lbc - 브라우저 엔진인 LibWebCore
    • SGL - 기본 2D 그래픽 엔진
    • OpenGL | ES - 3D 라이브러리
    • Free Type - 비트맵 , 벡터 폰트를 그려줌
    • SQLite - 가볍고 강력한 관계형 DBMS
  • Android Runtime
    • Dalvik VM - 모바일 용으로 최적화된 가상 머신으로 Java Me(Mobile Edition) 같은 것을 사용하지 않고 모든 어플리케이션이 자신의 프로세스 안에서 동작하고, 자신의 VM 인스턴스를 가지도록 만들어짐
    • Java 언어로 Core 라이브러리 기능 사용

 

Linux Kernel 계층

  • 안드로이드 커널은 리눅스 2.6 기반
  • 계층에서는 보안, 스레딩, 프로세스, 메모리 관리 등의 하위 수준의 기능을 처리