Android/Android 기본기

3. 안드로아드 아키텍처와 앱 실행원리

728x90
반응형

 안드로이드 아키텍처

 

 어플리케이션

 어플리케이션 프레임워크

 라이브러리

런타임(달빅 가상머신) 

 리눅스 커널

 

1. 어플리케이션

안드로이드는 이메일, SMS, 일정, 지도, 웹브라우저 등을 포함하는 여러 주요 응용프로그램으로 배포된다. 모든 어플리케이션은 자바 언어로 작성된다.

 

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

개방형 개발 플랫폼을 제공하며, 개발자들이 더 풍부하고 혁신적인 어플리케이션을 제작할 수 있도록 지원한다. 개발자들은 디바이스의 하드웨어, 로컬 정보, 백그라운드실행 서비스, 경고, 상태바에 공지 등의 다양한 기능을 활용할 수 있다.

주요기능은 다음과 같다

 

 구성요소

 기능

 View

 리스트, 그리드, 텍스트 박스, 버튼, 웹뷰 등으로, 어플리케이션 개발에 사용됨

 Content Providers

 응용프로그램이 다른 프로그램들에 접근하거나 데이터를 공유

 Resource Manager

 문자, 그림, 레이아웃 파일 등의 자원에 대한 접근 허용을 관리함

 Notification Manager

 응용프로그램들이 상태바에 경고문을 출력하게 도와줌

Activity Manager

 응용프로그램의 시작부터 종료까지 라이프싸이클을 관리함

 

 

3. 라이브러리

안드로이드 시스템의 여러 컴포넌트에 의해 사용되는 C/C++ 라이브러리로 다음고 같은 라이브럴리가 있다.

 

 구성요소

기능 

 Media Libraries

 MTEG4, H.246, MP3, AAC,AMR, JPG, PNG파일들의 이미지, 오디오 및 비디오파일의 백그라운드 실행 및 저장

 Surface Manger

 디스플레이 서브 시스템의 접근을 관리

 LibWebCore

 웹브라우저 엔진

 SQLite

응용프로그램들이 사용할 수 있는 데이터베이스 엔진 

 

 

4. 런타임

안드로이드 자바 어플리케이션이 실행되는 환경을 제공하며, 안드로이드 SDK의 달빅 가상 머신(Dalvik virtual machine)이 그 역할을 한다

 

5. 리눅스 커널

보안, 메모리 관리, 프로세스 관리, 네트워킹 등의 핵심 시스템 서비스를 위한 리눅스 운영체제가 있다.

 

 


 

어플리케이션 구성요소

 

어플리케이션(앱)은 하나 이상의 액티비티로 구성되며, 각 액티비티는 화면으로 사용자와 상호작용하지만 화면이 없는 액티비티도 가능하다.

 

각 액티비티는 작접 화면으로 나타나지는 못하고 텍스트, 이미지, 버튼 등을 표현하는 뷰를 통해 레이아웃의 형식에 따라 화면에 출력된다. 사용자는 화면에 정보의 입력 또는 클릭과 같은 이벤트를 주면 액티비티는 이벤트를 처리하게 된다.

 

안드로이드 어플리케이션은 액티비티에 의해 화면에 출력되어 사용자와의 인터페이스를 담당하며, 액티비티는 컨텐츠제공자(Contents Provider)서비스(Service), 방송수신자(Broadcast Receiver) 기능을 활용하기도 한다. 인텐트는 이 네 가지 구성요소들 간의 상호연결을 의한 통신을 담당한다. 각 응용프로그램마다 액티비티가 활용하는 기능은 다를 수 있다

 

구성요소

기능

액티비티

아용자와의 상호작용을 하기위해 뷰를 이용하여 화면을 나타낼수 있다.

컨텐츠 제공자

특정 어플리케이션의데이터 집합을 만드는 역할을 한다.

예를들어 파일이나 SQLite데이터베이스등의 매부에 저장되어 있는 데이터 등을 만드는 역할울 수행한다.

서비스

눈에 보여지는 사용자 인터페이스(UI)를 가지지 않고 백그라운드에서 실행되는 컴포넌트로서, 사용자가 다른 작업을 하는 중에도 백그라운드에서 음악을 재생하거나 데이터를 처리하는 등의 작업을 수행한다.

방송수신자

시스템의 공지내용을 수신하고 응답하는 역할을 수행한다

예를들어 베터리부족, 사진촬영, 언어설정변경 등의 정보를 시스템으로부터 수신할 수 있다.

인텐트

어플리케이션의 핵심 컴포넌트(액티비티, 서비스, 방송수신자)를 호출하거나 컴포넌트 간의 정보를 전달하는 도구로 사용된다.

[어플리케이션 구성요소]        

 


프로젝트 기본 파일 간의 상호작용과 앱 실행 원리

자바와 xml 차일로 구성되어 있는 기본파일들은서로 연관성이 있다.

...

 

728x90
반응형