반응형
1. ComponentActivity
- 가장 기본적인 Activity 클래스 중 하나.
- AndroidX에서 제공하는 최소한의 기능만 포함됨.
- ViewModel, SavedState 같은 최신 아키텍처 컴포넌트 지원을 포함.
- Fragment는 직접 다루지 않음.
- JetPack Compose 의 경우 UI를 컴포저블 함수로 구현하기에 이 클래스의 기능만으로 구현 가능.
2. FragmentActivity (extends ComponentActivity)
- ComponentActivity를 기반으로 하면서 Fragment를 사용할 수 있게 확장된 클래스.
- SupportFragmentManager를 통해 프래그먼트 관리 기능을 제공.
- androidx.fragment.app.Fragment 사용 시 필요.
- Fragment 의 사용이 강조될 당시에 MainActivity 가 기본으로 상속받은 클래스.
3. AppCompatActivity (extends FragmentActivity)
- FragmentActivity를 기반으로 하면서, AppCompat 지원 라이브러리 기능이 추가.
- Toolbar, 다크모드, 테마 호환성, Material Design 등 현대적인 UI 요소를 쓸 수 있음.
- 가장 일반적으로 사용하는 Activity 타입.
- 전통적인 xml 파일을 이용한 View를 통해 UI 를 구현할 때 적합한 클래스.
- Compose 개발방법을 사용하지 않았을 때 MainActivity 클래스가 기본으로 상속받는 클래스.
간단 요약
클래스별 주요기능 및 사용 목적
ComponentActivity | ViewModel, SavedState 지원 | 최소 구조의 Activity |
FragmentActivity | + Fragment 지원 | 프래그먼트 기반 UI 사용 시 |
AppCompatActivity | + AppCompat 기능 | 대부분의 일반 앱 개발 시 사용 |
반응형
'소소한 소스코드' 카테고리의 다른 글
[자바 Java] 오늘 날자, 한시간 전, 하루 전, 일주일 전, 한달 전 계산 (0) | 2025.05.08 |
---|---|
[안드로이드 Android] BottomNavigationView 의 height 높이 문제 (Insets 관련) (0) | 2025.04.30 |
[안드로이드 Android] EdgeToEdge UI 에서 적용되지 않는 adjustResize 설정 (0) | 2025.04.24 |
[안드로이드 Android] EdgeToEdge UI ( api 35버전부터 강제 도입 ) (0) | 2025.04.22 |
[안드로이드 Android] Kotlin 언어로의 전환 15. SAM 변환 ( Single Abstract Method ) (1) | 2025.04.09 |