Android/Kotlin in android

안드로이드 버튼 android:src와 app:srcCompat 두 속성의 차이점 (with. chatgpt)

닉네임도항상고민 2024. 2. 23. 09:51

chatgpt에게 물어보았다.

 

=====================================

 

Q. 내 질문

->

 

 

안드로이드 개발에서 버튼에 이미지를 추가할때,
android:src와 app:srcCompat 두 속성의 차이점이 뭐야?

 

=====================================

 

A. chatgpt

->

 

android:src와 app:srcCompat는 안드로이드 앱 개발에서 이미지를 버튼 또는 다른 뷰에 추가할 때 사용되는 속성입니다. 이 두 가지의 주요 차이점은 다음과 같습니다:

1. 호환성:

android:src: 이 속성은 안드로이드 API 레벨 4부터 도입되었습니다. 이는 안드로이드 기본 이미지 뷰에 사용되는 속성이며, 벡터 이미지를 지원하지 않습니다.
app:srcCompat: 이 속성은 호환성 라이브러리인 AppCompat 라이브러리에서 제공됩니다. AppCompat은 안드로이드 버전 호환성 및 추가 기능을 제공합니다. app:srcCompat은 벡터 이미지를 포함하여 모든 버전의 안드로이드에서 이미지를 표시하는 데 사용할 수 있습니다.
벡터 이미지 지원:

2. android:src: 이 속성은 벡터 이미지를 지원하지 않습니다. 따라서 안드로이드 5.0 (롤리팝) 이전 버전의 앱에서는 벡터 이미지를 사용할 수 없습니다.
app:srcCompat: 이 속성은 벡터 이미지를 지원합니다. 따라서 안드로이드 5.0 이상의 모든 버전에서 벡터 이미지를 사용할 수 있습니다.
따라서 일반적으로 앱 개발에서는 app:srcCompat을 사용하는 것이 좋습니다. 이를 통해 모든 버전의 안드로이드에서 일관되게 이미지를 표시할 수 있습니다.

=====================================

minSdk가 android 5.0이하일 경우에만 신경쓰면 될 듯하다?

뭘쓰던 상관없을듯.

 

 

 

// 추가적으로 android, app속성의 차이점에 대해서도 물어보았다.

 

Q. xml에 android로 시작하는 속성과 app으로 시작하는 속성은 무슨 차이야?

A.

XML에서 android:로 시작하는 속성과 app:로 시작하는 속성은 안드로이드 앱 개발에서 사용되는 두 가지 다른 네임스페이스입니다. 각각의 역할과 차이는 다음과 같습니다:

  1. android: 속성:
    • android:로 시작하는 속성은 안드로이드 플랫폼에서 기본적으로 제공되는 속성입니다.
    • 이러한 속성들은 안드로이드 프레임워크에 내장되어 있으며, 안드로이드 시스템이 이해하고 처리할 수 있습니다.
    • 예를 들어, android:layout_width, android:layout_height, android:text, android:id 등이 있습니다.
    • 이 속성들은 안드로이드 프레임워크에 의해 런타임에 해석되고 처리됩니다.
  2. app: 속성:
    • app:로 시작하는 속성은 주로 지원 라이브러리나 사용자 정의 라이브러리에서 제공하는 속성입니다.
    • 안드로이드 앱 개발에서 추가적인 기능이나 호환성을 제공하기 위해 사용됩니다.
    • 예를 들어, AndroidX 라이브러리에서는 app:srcCompat, app:layout_constraintLeft_toLeftOf 등이 있습니다.
    • 이러한 속성들은 앱이 컴파일될 때 해당 라이브러리에 의해 해석되고 처리됩니다.

따라서 android:로 시작하는 속성은 안드로이드 플랫폼에서 기본적으로 제공되는 속성이며, app:로 시작하는 속성은 주로 추가적인 기능을 제공하기 위해 라이브러리에서 제공되는 속성입니다.