안드로이드에 일반 Activity가 있고, AppCompatActivity가 있던데 그 둘의 차이가 무엇인가요?

이거 외에도 AppCompat이 붙은 것이 몇가지 더 있는것 같던데, 차이가 뭔지 모르겠네요.


4

싫어요
채택취소하기

AppCompatActivity는 안드로이드 하위버전을 지원하는 액티비티입니다. Activity API 를 보시면 dispatchKeyShortcutEvent오른쪽옆에 API level들이 표시되어있습니다. 위의 사진에는 API level 11(안드로이드 3.0)라고 적혀있는데요. dispatchKeyShortcutEvent 이 메소드는 3.0미만의 단말기에서는 실행이 안됩니다. 그래서 이런 메소드를 지원하기 위해서 AppCompatActivity가 나온거에요. 액션바역시 3.0이후에 나온 기능이라 3.0미만의 단말기에서는 동작할수 없기때문에 AppCompatActivity를 사용합니다. Support Library에 있는 클래스들은 안드로이드 하위버전을 지원하기 위해 존재합니다.

만드시는 앱의 안드로이드지원버전에 따라서 AppCompatActivity를 사용하시면됩니다. 항상 최신버전안드로이드만 지원하겠다 하시면 AppCompatActivity를 쓸필요는 없어요. 그런데 새로운 API가 추가될때마다 매번 버전 확인하기는 번거로우니 SupportLibrary를 쓰신다면 AppCompatActivity를 쓰시는게 좋습니다.