
AppCompatActivity는 Android 앱에서 Activity 기능을 확장해 “호환성(compatibility)”과 추가 기능을 제공하는 기본 클래스입니다. androidx.appcompat 라이브러리(구 support v7 appcompat의 AndroidX 대체)에 포함되며, 일반 Activity 대신 상속받아 사용하면 오래된 Android 버전에서도 최신 UI/동작을 일관되게 쓸 수 있습니다. 주요 특징 및 제공 기능 - ActionBar(또는 Toolbar) 지원: setSupportActionBar(), getSupportActionBar()로 툴바를 액션바처럼 쉽게 사용 가능. - 테마 호환성: AppCompat 테마(또는 MaterialComponents 테마)와 연동되어 다양한 기기/OS 버전에서 일관된 스타일과 폰트, 색상 동작 제공. - AppCompatDelegate 통합: 다크 모드(day/night) 같은 런타임 테마 전환을 지원. - 지원되는 Fragment/FragmentManager: supportFragmentManager를 통해 Jetpack Fragment/호환성 API와 함께 사용. - 호환성 유틸리티: supportInvalidateOptionsMenu(), supportRequestWindowFeature() 등 과거 API와의 차이를 흡수하는 메서드 제공. - LifecycleOwner 구현: ViewModel, LiveData 등 Jetpack 구성요소와 자연스럽게 통합. 언제 사용하나 - 앱에서 AppCompat/Material 테마를 사용하거나 Toolbar를 액션바로 활용하려면 거의 항상 AppCompatActivity를 상속합니다. 표준 Activity로만 충분한 특별한 이유가 없다면 AppCompatActivity를 권장합니다. 간단한 예 class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setSupportActionBar(findViewById(R.id.toolbar)); } } 요약하면, AppCompatActivity는 다양한 Android 버전에서 일관된 UI와 행동을 보장하고 액션바/테마/호환성 기능을 제공하는 Activity의 확장 클래스입니다.