Stack Building
[android] 안드로이드 개요와 개발 환경 본문
개요
✓ 애플리케이션 프레임워크를 통해서 제공되는 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에 출력, 확인 가능
'앱' 카테고리의 다른 글
[오류] Execution failed for task 'app:mergeDebugResources' Crunching Cruncher (0) | 2019.05.18 |
---|---|
[android] 안드로이드를 위한 자바 문법 (0) | 2019.04.19 |
[android] 처음 만드는 안드로이드 애플리케이션 (0) | 2019.04.19 |
[오류] LinearLayout 요소 안보임 (0) | 2019.03.19 |
[오류] Guest isn't online after 7 seconds (0) | 2019.03.18 |