Stack Building

[android] 안드로이드 개요와 개발 환경 본문

[android] 안드로이드 개요와 개발 환경

S00ahKim 2019. 4. 19. 09:18

개요

애플리케이션 프레임워크를 통해서 제공되는 API를 사용함으로써 코드를 재사용하여 효율적이고 빠른 애플리케이션 개발 가능

모바일 기기에 최적화된 달빅 가상머신 또는 아트런타임 제공

  아트런타임 = 미리 컴파일 해놨다가 실행만 시키는 것
  달빅 = 필요할 때마다 인터프리터 형식으로 번역해서 실행

2D 그래픽 및 삼차원 그래픽을 최적화하여 표현

모바일용 데이터베이스인 SQLite를 제공

각종 오디오, 비디오 및 이미지 형식을 지원

모바일 기기에 내장된 각종 하드웨어(블루투스, 카메라, 나침반, WiFi ) 지원

이클립스 IDE 또는 Android Studio를 통해서 강력하고 빠른 개발 환경 제공

롤리팝(5.0)부터는 다양한 안드로이드 기기를 통합 지원

마시멜로(6.0)부터는 앱 권한 설정, 지문 인식 지원

누가(7.0)부터는 가상현실 지원 및 3D 게임, 알림 기 향상, 다중 창 열기 지원

오레오(8.0)부터는 PIP(화면 두 개), 알림, 자동 채우기, 배터리 강화 등을 지원

파이(9.0)부터는 실내 위치 추적, 향상된 알림, 멀티카메라, 인공지능 확장 등을 지원

 

 

안드로이드의 특징

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

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

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

오픈 소스를 지향하기 때문에 운영체제부터 관련 문서, 개발 도구 등 거의 모든 것을 무료로 사용 가능

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

 

 

안드로이드 구조

응용 프로그램(Applications)

안드로이드 스마트폰에서 사용할 수 있는 일반적인 응용 프로그램

웹 브라우저, 달력, 구글맵, 연락처, 게임 등 사용자 입장에서 가장 많이 사용

Java로 제작됨

 

응용 프로그램 프레임워크(Application Framework)

안드로이드 API가 존재하는 곳

안드로이드폰 하드웨어에 접근할 때는 Java에 직접 접근하는 것이 아니라 API를 통해서 가능

 

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

Java 코어 라이브러리와 달빅 가상 머신(Dalvik Virtual Machine) 또는 아트 런타임(ART Runtime)으로 구성

 

라이브러리(Libraries)

안드로이드에서 사용되는 여러 시스템 라이브러리는 시스템 접근 때문에 Java가 아닌 C로 작성

 

리눅스 커널(Linux Kernel)

하드웨어의 운영과 관련된 저수준의 관리 기능이 들어 있음

주로 메모리 관리, 디바이스 드라이버, 보안 등

 

안드로이드 개발을 위한 운영체제

Windows, Linux, Mac이 있음

Windows 개발 환경이 가장 보편적

안드로이드 개발 환경을 구축하면 가상의 안드로이드 장치인 AVD(Android Virtual Device) 제공

실제 안드로이드 장비 없이도 안드로이드 장비가 있는 것처럼 작업 가능

 

 

개발 환경의 구성

- 개발 환경 구성이 완료되면 안드로이드 스튜디오로 코딩, 수정을 통해 앱을 개발

- 코딩 결과는 AVD에 출력, 확인 가능

 

Comments