본문 바로가기
Android

AndroidManifest <uses-feature> 란?

by chan-na 2024. 9. 30.

AndroidManifest <uses-feature> 란?

  • application에서 필요로 하는 hardware 또는 software feature를 선언한다
    • 필수기능 or 선택기능 명시
  • Google Play에서 정보를 바탕으로 각 기기의 기능에 맞는 앱만 노출되도록 필터링을 한다
    • 예를들어 Camera가 필수 기능으로 선언되어 있다면, Camera가 존재하는 기기에서만 앱이 노출된다
  • 일부 Permission은 특정 feature가 필요함을 암시하기 때문에, Permission이 선언되었을때 암시적으로 선언이 추가되는 경우가 있다.
    • 자세한 Permission:Feature mapping은 link 참고
    • Permission에 의해 암시적으로 추가되는 feature가 필수는 아닌경우, 의 android:required attribute를 "false"로 설정할 것.

Syntax

<uses-feature
  android:name="string"
  android:required=["true" | "false"]
  android:glEsVersion="integer" />
  • android:name
  • android:required
    • 해당 기능이 필수인지 여부를 나타냄
    • 기본값은 "true"
    • "true"로 설정되면 그 기능이 없으면 앱이 실행될수 없다는 뜻이므로 Google play에서 앱을 필터링할때 사용됨.
    • 반면 "false"로 설정되면 기능을 선택적으로 사용하는 앱이라는 뜻이므로 Google play에서 앱을 필터링할때 사용되지 않음.
  • android:glEsVersion
    • application에서 필요로 하는 OpenGL ES 버전
    • 상위 16비트는 메이저 버전, 하위 16비트는 마이너 버전을 나타냄
      • ex) OpenGL ES 3.2는 0x00030002로 나타냄
    • 이 속성이 Manifest에 여러번 사용된다면 가장 높은값이 사용됨
      • OpenGL ES는 하위 호환성을 지원하므로 지정된 버전보다 낮은 버전들은 모두 지원된다고 볼 수 있음
    • 이 속성이 지정되어있지 않으면 OpenGL ES 1.0만 필요한것으로 간주됨
    • 어플리케이션이 작동 가능한 최소 OpenGL ES 버전을 명시하고, 더 높은 버전을 사용하기 위해서는 런타임에 지원 여부를 확인할 것

Reference