코틀린으로 안드로이드를 개발 할 기회가 생겨
개발하기 전 안드로이드 프로젝트를 생성하는 시점에 궁금했던 부분을 정리하였다.
Empty Activity 와 Empty Views Activity 차이
안드로이드 버전 선택
Empty Activity 와 Empty Views Activity 차이
안드로이드 스튜디오를 설치 후
New Project를 하게되면 가장 처음으로 Activity를 선택하게 된다
Activity란?
안드로이드 4대 구성요소 중 하나로, 앱의 화면을 담당하는 기본 구성요소

여기서
Empty Activity와 Empty Views Activity
이렇게 기본 구성요소만 가지고있는 Activity가 두개가 있다
처음 구글링을하며 프로젝트 생성을 따라해봤을때
Empty Acitivity로 생성하면 layout 폴더 안에 activity_main.xml이 생성되지 않았다
(layout 폴더조차 만들어지지 않음)
그러다 눈에 들어온 Empty Views Activity를 선택 후 생성해보니
activity_main.xml이 생성되었다
찾아보니 둘의 차이점은 Jetpack Compose의 사용 여부였다
Jetpack Compose를 한줄로 요약하자면
XML 없이 Kotlin 코드만으로 UI를 선언적으로 구성하는 최신 안도르이드 UI프레임워크
정도로 생각하면 될거같다
즉, Empty Activity로 프로젝트를 생성하게 되면
Jetpack Compose 기반의 프로젝트로서 XML 없이 화면을 직접 구성해야 하는것이다
아직 개발을 시작하지 않은 시점이긴 하지만
xaml에 UI를 구성하여 코딩하는 닷넷에 익숙해져있는 나로서는비하인드 코드에 컨트롤을 직접 만드는 느낌이라 거부감이 든다...
이게 왜 최신 방식인지는 차차 개발하면서 직접 느껴봐야 할거같다
찾아본 내용을 전체적으로 정리하자면 아래와같다
1. Empty Activity
- Jetpack Compose를 기반으로 한 최신 방식.
- XML 레이아웃 파일 없이 Composable 함수로 UI를 구성함.
- MainActivity 내부에서 setContent {}를 사용하여 화면을 직접 그리는 방식.
- onCreate() 안에서 setContent {} 내에 Composable 함수를 호출하여 UI를 설정함.
2. Empty View Activity
- 기존의 XML 기반 UI를 사용하는 전통적인 안드로이드 개발 방식.
- activity_main.xml 파일이 생성되고, setContentView(R.layout.activity_main)을 통해 UI를 설정함.
- MainActivity 클래스는 기본적으로 AppCompatActivity를 상속받음.
- findViewById() 또는 View Binding, Data Binding을 이용해 UI 요소에 접근함.
항목 Empty Activity Empty View Activity UI 시스템 Jetpack Compose XML 기반 (View) 레이아웃 파일 없음 (Compose 사용) activity_main.xml 사용 UI 설정 방식 setcontent{} 사용 setContentView(R.layout.activit_main) UI 접근 요소 @Composable 함수 활용 findViewById(), View Binding 사용 시점 JetPack Compose 프로젝트 기존 View 시스템 유지
안드로이드 버전 선택
Activity를 선택후 다음으로 넘어가게 되면
아래와같이 프로젝트명, 패키지명 등을 작성하는 화면이 나온다
여기서 Minimum SDK 항목이 있는데
안드로이드를 처음보는 나는 뭐가뭔지 알수가없어서
찾아본 내용을 정리해 보았다
프로젝트생성을 구글링해서 찾아보면 전부다 Lollipop으로 생성하는 예제만 있었음..

Lollipop, Mashmallow, Nougat, Oreo 등과 같은 이름들은
안드로이드 운영체제의 버전 코드명이다.
안드로이드는 특정 버전마다 달달한 디저트 이름을 코드명으로 사용했고,
안드로이드10 부터는 코드명을 사용하지 않고 숫자로만 표기한다
찾아보니 코드명이 없는것은 아닌거같다
안드로이드 버전에 따른 코드명
코드명 버전 출시년도 Cupcake 1.5 2009 Donut 1.6 2009 Eclair 2.0 ~ 2.1 2009 Froyo 2.2 2010 Gingerbread 2.3 2010 Honeycomb 3.0 ~ 3.2 2011 Ice Cream Sandwich 4.0 2011 Jelly Bean 4.1 ~ 4.3 2012 KitKat 4.0 2013 Lollipop 5.0 ~ 5.1 2014 Marshmallow 6.0 2015 Nougat 7.0 ~ 7.1 2016 Oreo 8.0 ~ 8.1 2017 Pie 9.0 2018 Android 10 (Quince Tart) 10 2019 Android 11 (Red Velvet Cake) 11 2020 Android 12 (Snow Cone) 12 2021 Android 13 (Tiramisu) 13 2022 Android 14 (UpsideDownCake ) 14 2023 Android 15 (Vanilla Ice Cream) 15 2024
API 21, API 22 처럼 API 뒤에 붙는 숫자는 API Level 이다
API Level 별로 작동되는 코드가 있고,
새로 추가된 코드가 있거나 더이상 사용할 수 없는 코드도 있다
API Level이 높을수록 새로운 기능과 변경된 API를 포함한다.
'Android > Kotlin' 카테고리의 다른 글
| [Android / Kotlin] (2) 안드로이드에서 시리얼포트 통신하기 (android-serialport-api 오픈소스) (0) | 2025.07.08 |
|---|---|
| [Android / Kotlin] (1) 안드로이드에서 시리얼포트 통신하기 (android-serialport-api 오픈소스) (0) | 2025.07.08 |