본문 바로가기
개발/안드로이드

[안드로이드 앱의 기본구조] 1. 안드로이드 소개

by 세크레투스 2025. 1. 28.
반응형
SMALL

1. 안드로이드 소개

안드로이드의 특징

  • 안드로이드는 공개 운영체제인 리눅스를 기반으로 한다.
  • 안드로이드 앱은 자바나 코틀린 언어를 이용해 개발한다.
  • 안드로이드 운영체제의 주요 부분과 라이브러리, 구글에서 만든 앱 등의 코드는 대부분 공개되어 있다.
  • 안드로이드 스마트폰은 구글 뿐 아니라 여러 제조업체에서 만들 수 있다.
  • 안드로이드 앱은 구글의 플레이 스토어 뿐 아니라 다양한 방법으로 사용자에게 배포할 수 있다.
  • 안드로이드 플랫폼에서는 모든 응용 프로그램이 평등하다는 사상을 바탕으로, 모바일에 기본으로 탑재된 앱과 개발자가 만든 앱이 똑같은 환경에서 똑같은 API를 이용한다.

안드로이드 운영체제 구조

안드로이드 소프트웨어 스택

  • 리눅스 커널(Linux Kernel) : 안드로이드는 리눅스에 기반을 둔 오픈소스 소프트웨어 스택이다.
  • 하드웨어 추상화 레이어(hardware abstraction layer, HAL) : 하드웨어 추상화 계층으로, 상위의 자바 API 프레임워크에서 하드웨어 기능을 이용할 수 있게 표준 인터페이스를 제공한다.
  • 안드로이드 런타임(Android runtime) : 흔히 ART라고 하며, 앱을 실행하는 역할을 한다. 안드로이드 앱은 DEX파일로 빌드되는데, 이 DEX 파일을 해석해서 실행하는 주체가 바로 ART이다.
    자바에서는 소스코드를 컴파일하면 클래스파일이 만들어지고, 이 클래스 파일을 자바 가상 머신(Java Virtual Machine, JVM)에서 실행하지만,
    안드로이드는 자바 클래스를 런타임 때 그대로 실행하지 않고 DEX파일로 컴파일한다. 그리고 DEX파일을 해석하는 ART에서 실행한다.
  • 네이티브 C/C++ 라이브러리 : 안드로이드 앱은 대부분 자바 프레임워크로 개발하지만, 네이티브 C/C++ 라이브러리를 이용할 수도 있는데, 이를 안드로이드 NDK라고 한다.
  • 자바 API 프레임워크 : 앱을 개발할 때 사용하는 자바 API로, 자바 API 프레임워크에서 제공하는 기술을 다루며 이를 이용해 앱의 다양한 기능을 개발할 수 있다.
  • 앱 개발 언어 : 자바, 코틀린
  • 다양한 디바이스 : 안드로이폰은 구글, 삼성, 화웨이 등 다양한 제조업체에서 만들 수 있다. 사용자 입장에서는 다양한 폰을 접할 수 있어서 좋지만, 앱 개발자는 그만큼 신경써야 할 부분이 많다.
    크기가 다양한 폰에서 앱이 똑같이 보이도록 호환성을 고려해야 하며, 제조업체에서 폰을 생산할 때는 구글에서 만든 운영체제 API와 주소록 같은 기본 앱 등을 조금씩 바꾸므로 자신이 만든 앱이 여러 장치에서 제대로 동작하는지를 점검해야 한다.
  • 앱 배포 : 앱을 사용자에게 배포할 때 대부분 구글 플레이 스토어를 이용한다. 또한 통신사에서 운영하는 앱 마켓을 이용해 배포할 수도 있고, 사용자에게 직접 배포 파일을 전달할 수도 있다.

안드로이드 버전

구글은 2008년 안드로이드 1.0 버전을 출시한 이후 계속해서 새로운 버전을 내놓고 있으며, 버전이 오르면서 새로운 기능이 추가되거나 기존 API 변경, 또는 제거되는 등 앱 개발에 영향을 미치는 변화가 뒤따랐다. 따라서 새로운 안드로이드 버전이 나오면 개발자는 변경 사항을 파악해서 앱에 적용시켜야 한다.

안드로이드 버전은 운영체제 버전을 가리키지만, 앱을 개발할 때 사용하는 버전은 API 레벨(SDK 버전)이다. 따라서 개발자는 운영체제 버전과 API 레벨을 함께 알고 있어야 한다.

코드명은 안드로이드 버전의 별칭을 의미한다. 예를 들어, 안드로이드 14버전을 UpsideDownCake라는 코드명으로 부른다. 안드로이드 7.x처럼 버전에 'x'가 붙은 것은 하위버전이 있다는 의미이다.

버전 코드명 API레벨 출시 연도
Android 1.0 - 1 2008
Android 1.1 Petit Four 2 2009
Android 1.5 Cupcake 3 2009
Android 1.6 Donut 4 2009
Android 2.0.x ~ 2.1 Eclair 5~7 2009
Android 2.2.x Froyo 8 2010
Android 2.3.x Gingerbread 9~10 2010
Android 3.x Honeycomb 11~13 2011
Android 4.0.x Ice Cream Snadwich 14~15 2011
Android 4.1.x ~ 4.3.x Jelly Bean 16~18 2012
Android 4.4.x KitKat 19~20 2013
Android 5.x Lollipop 21~22 2014
Android 6.x Marshmallow 23 2015
Android 7.x Nougat 24~25 2016
Android 8.x Oreo 26~27 2017
Android 9.0 Pie 28 2018
Android 10.0 - 29 2019
Android 11.0 - 30 2020
Android 12.0 - 31 2021
Android 13.0 Tiramisu 33 2022
Android 14.0 UpsideDownCake 34 2023

 

반응형
LIST