본문 바로가기
Computer Science/Mobile Programming

안드로이드 주요 특징 및 아키텍처 소개

by 이은선 2023. 1. 21.
728x90
SMALL

안드로이드 특징

- 안드로이드 핵심 커널(Kernal)은 리눅스(Linux)로 구성

- 안드로이드 애플리케이션 개발 언어는 Java를 사용

- 안드로이드 SDK에서 많은 라이브러리를 포함하고 있어 개발이 용이

- 오픈 소스를 지향하기 때문에 운영체제부터 관련 문서, 개발 도구 등 무료

- 지속적인 업그레이드를 제공

 

안드로이드 구조

1)     응용 프로그램(Applications) : 안드로이드 스마트폰에서 사용할 수 있는 일반적인 응용 프로그램이다. (웹 브라우저, 달력, 구글맵, 연락처, 게임 등을 사용자 입장에서 가장 많이 사용한다. Java로 작성된다. )

2)     응용 프로그램 프레임워크(Application Framework) : 안드로이드 API가 존재하는 곳이다. 안드로이드폰 하드웨어에 접근할 때 API를 통해서만 가능하다.

3)     안드로이드 런타임(Android Runtime) : Java 코어 라이브러리와 달빅 가상 머신(Dalvik Virtual Machine) 또는 아트 런타임(ART Runtime)으로 구성된다. 안드로이드는 Java 문법으로 프로그래밍하지만 Java 가상 머신을 사용하지 않고 이곳의 달빅 가상 머신이나 아트 런타임을 사용한다.

4)     라이브러리(Libraries) : 안드로이드에서 사용되는 여러 시스템 라이브러리는 시스템 접근 때문에 Java가 아닌 C로 작성 성능이 뛰어나며 세밀한 조작이 가능하다.

5)     리눅스 커널(Linux Kernel) : 하드웨어의 운영과 관련된 저수준의 관리 기능이 들어있다. 메모리 관리, 디바이스 드라이버, 보안 등 많은 스마트폰 장치를 지원한다. 카메라, 터치스크린, GPS, 자이로스코프 등

 

개발 환경의 구성 

개발 환경 구성이 완료되면 안드로이드 스튜디오를 실행해 코딩, 수정을 통해 앱을 개발한다. 코딩된 결과는 AVD에 출력하고, 개발자는 그 결과를 확인한다.

+) AVD : Android Virtual Device의 줄임말로 안드로이드 에뮬레이터를 의미한다. 안드로이드 스튜디오로 개발한 어플을 테스트하는데 주로 사용된다.

 

안드로이드 개발 환경 및 설치 순서


◆ SDK : 일반 응용프로그램을 개발하는데 사용되는 개발 툴킷으로,사용 언어는Java이고 초,중급 수준이다.

◆ NDK : (고수준의) 시스템 응용 프로그램을 개발하는데 사용되는 개발 툴킷으로, 사용 언어는 C, C++이고 중, 고급 수준이다.

◆ PNK : 하드웨어 제어 및 커널 관련하여 하드웨어 수준의 강력한 프로그램을 개발하는데 사용하는 개발 툴킷으로, 사용 언어는 C, C++이고, 고급 수준이다.
 

안드로이드 앱 개발 구성 요소

- 에뮬레이터(Emulator) 혹은 디바이스(Device) : 안드로이드 스튜디오에서 개발한 앱 테스트

- adb(Android Debug Bridge) 프로그램 : 안드로이드 스튜디오를 실행하면 자동으로 실행되어 [에뮬레이터/디바이스]와 연결 관리

- adbd(Android Debug Bridge Daemon) 프로그램: 안드로이드 디바이스 내부에서 adb 서버와의 통신을 담당

- Run 메뉴 : [안드로이드 플러그인]->[adb 서버]->[adbd]->[에뮬레이터/디바이스]로 전송되어 실행

- 디버거(Debugger) : 프로그램 버그를 찾기 위한 소프트웨어 앱을 직접 사용 또는 안드로이드 스튜디오에 내장

 

728x90
LIST

'Computer Science > Mobile Programming' 카테고리의 다른 글

안드로이드 액티비티 라이프 사이클  (0) 2023.01.21
인텐트  (0) 2023.01.21
안드로이드 뷰와 레이아웃  (0) 2023.01.21
프로젝트와 액티비티  (0) 2023.01.21
객체지향 프로그래밍 이해  (0) 2023.01.21