2.1 안드로이드의 아키텍처

안드로이드는 크게 자바로 구성된 요소(상부구조,사용자영역)와 C언어로 구성된 네이티브 코드 영역(하부구조,플랫폼영역)으로 나누어 진다.

  • 응용프로그램 : 보통 우리가 개발하는 영역을 부른다.
  • 프레임워크 : 디바이스 하드웨어와 위치정보 접근,백그라운드 서비스,알림등 많은 기능 사용,안드로이드 컴포넌트를 재사용하고 다른 APP을 배포할때 기능을 사용하기 쉽게 함
  • 달빅 : 다양한 디바이스에서 효과적으로 실행,메모리를 적게 차지하게 최적화된 파일인 Dalvik Executable Format(.dex)의 파일을 실행시키고 가상머신은 'dx'도구로 .dex파일을 변환해 자바 컴파일러로 해당 클러스를 기동 

  • 라이브러리 : C/C++로 개발된 계층
    • System C library : 임베디드 리눅스 기반 디바이스용
    • Media Libraries : 오디오 비디오포맷 이미지 파일 재생 및 녹음
    • Surface Manager :그래픽
    • LibWebCore : 안드로이드 브라우저,웹뷰...웹브라우저엔진
    • SGL : 2D그래픽
    • 3D libraries
    • FreeType : 비트맵과 벡터 폰트
    • SQLite : DB엔진
  • 하드웨어 추상화 계층(HAL) : 표준화되지 않은 라이브러리의 문제를 해결하기 위해 함수제공
  • 리눅스커널 : 백그라운드 스레드, 메모리관리, 보안, 디바이스 드라이버등 담당, 추가로 바인더, 로우메모리 킬러,전원관리 등 추가

2.2 안드로이드의 구성요소

  • 액티비티 : 사용자 인터페이스의 화면을 표현
  • 서비스 : 백그라운드에서 오랫동안 수행되거나 사용자에게 UI를 제공하지 않는 컴포넌트 예) ,네트워크 전송, 미디어 플레이어,파일읽기 등의 작업
  • 콘텐트 프로바이더(CP) : 애플리케이션 데이터 공유 집합을 관리 SQLite
  • BR : 시스템의 상태를 체크하고 에벤트에 응답하는 컴포넌트

+ Recent posts