[Android] MainActivity의 상속에 관한 Activity vs AppCompatActivity

Chance·2025년 2월 24일

style.xml에서 material3의 버튼 속성을 정의한 후 xml에서 Button위젯에 style을 적용 했는데 동작하지 않음.
그러나, MaterialButton위젯에 style을 적용하면 동작함.
버전에 차이도 있었지만 크리티컬하지 않았고, 결론은 최상위 Activity의 상속여부가 달랐다.

AppCompat

  • Application Capability (앱 호환성)
  • 안드로이드가 OS버전 별로 API가 Deprecate되거나 변경될 때 개발자가 분기처리를 하지 않도록 편의성을 제공해줌
특징Activity (기본 액티비티)AppCompatActivity (지원 라이브러리 액티비티)
패키지android.app.Activityandroidx.appcompat.app.AppCompatActivity
지원 라이브러리없음 (기본 Android 기능만 제공)AndroidXAppCompat 라이브러리 사용
ActionBar 지원❌ 직접 구현 필요Toolbar를 자동으로 ActionBar로 사용 가능
Material Design❌ 직접 적용해야 함Theme.MaterialComponents 등 최신 테마 지원
Fragment 호환성FragmentActivity를 별도로 사용해야 함AppCompatActivity에서 바로 사용 가능
백호환성❌ 없음✅ 구버전(Android 4.0 이상)에서도 최신 기능 사용 가능

언제 Activity vs AppCompatActivity를 사용해야 할까?

사용 상황추천 클래스
기본적인 액티비티만 필요할 때Activity
최신 UI/UX (Material Design, Toolbar, Fragment 등) 사용 시AppCompatActivity
테마 변경 및 다크모드 지원 필요할 때AppCompatActivity
기존 Android 3.0 이하를 지원하지 않는 최신 프로젝트AppCompatActivity

0개의 댓글