본문 바로가기

Android Developers/manifest

<compatible-screens>, <supports-screens>, <grant-uri-permission>, <instrumentation>, <supports-gl-texture>, <uses-configuration>, <uses-feature>

<compatible-screens>

애플리케이션이 호환되는 각 화면 구성 지정

    <compatible-screens>
        <screen android:screenSize=["small" | "normal" | "large" | "xlarge"]
                android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"
                                       | "280" | "360" | "420" | "480" | "560" ] />
        ...
    </compatible-screens>
    

 

포함된 요소

<manifest>

 

  • 각 <screen> 요소는 앱이 호환되는 특정 화면 크기-밀도 조합 지정
  • 정보 제공의 목적으로만 사용
  • 사용자가 화면 구성 목록에 없는 기기를 사용하는 경우 애플리케이션을 설치할 수 없으므로 해당 요소 미사용 권장
  • 앱이 특정 화면 구성에서 전혀 작동하지 않을 때 최후의 수단으로 사용

 

<screen> 애플리케이션이 호환되는 단일 화면 구성을 지정
인스턴스 중 하나 이상이 <compatible-screens> 요소 내에 필수
android:screenSize, android:screenDensity 속성 필수
android:screenSize 화면 구성의 화면 크기 지정(small, normal, large, xlarge)
android:screenDensity 화면 구성의 화면 밀도 지정
("ldpi"(약 120DPI), "mdpi"(약 160DPI), "hdpi"(약 240DPI), "xhdpi"(약 320DPI), 
"280", "360", "420", "480", "560")

 

 


<supports-screens>

애플리케이션에서 전체 화면을 채우는 경우 특정 화면 크기 지원

    <supports-screens android:resizeable=["true"| "false"]
                      android:smallScreens=["true" | "false"]
                      android:normalScreens=["true" | "false"]
                      android:largeScreens=["true" | "false"]
                      android:xlargeScreens=["true" | "false"]
                      android:anyDensity=["true" | "false"]
                      android:requiresSmallestWidthDp="integer"
                      android:compatibleWidthLimitDp="integer"
                      android:largestWidthLimitDp="integer"/>
    

시스템의 화면 호환성 모드로 애플리케이션을 더 작은 화면에 배포 or 더 큰 화면에 맞도록 UI를 확장할지 제어할 수 있다.

 

android:smallScreens 더 작은 화면 폼 팩터를 지원하는지 여부
android:normalScreens '일반' 화면 폼 팩터를 지원하는지 여부
android:largeScreens 더 큰 화면 폼 팩터를 지원하는지 여부
android:xlargeScreens 초대형 화면 폼 팩터를 지원하는지 여부
android:anyDensity 모든 화면 밀도를 처리할 수 있는 리소스가 포함되어 있는지 여부
android:requiresSmallestWidthDp 필요한 최소 smallestWidth를 지정
android:compatibleWidthLimitDp '최소 화면 너비' 최댓값을 지정하여 화면 호환성 모드를 사용자 선택사항 기능으로 사용하도록 설정 가능
android:largestWidthLimitDp '최소 화면 너비' 최댓값을 지정하여 화면 호환성 모드를 강제로 사용하도록 설정 가능

<grant-uri-permission>

상위 콘텐츠 제공 업자에게 액세스 권한이 있는 앱 데이터의 하위 집합 지정

<grant-uri-permission android:path="string"
                          android:pathPattern="string"
                          android:pathPrefix="string" />

 

포함 가능한 요소

<provider>

 

  • 데이터 하위 집합은 content: URI의 경로 부분으로 나타낸다.
  • <provider>의 grantUriPermissions="true"이면 제공업체의 범위 내에 있는 모든 데이터에 관한 권한 부여 가능
  • grantUriPermissions="false"이면 <grant-uri-permission>에서 지정하는 데이터 하위 집합에만 권한을 부여 가능

 

권한이 부여될 수 있는 데이터 하위 집합을 식별하는 경로

  • android:path : 전체 경로 지정, 이 경로로 식별된 특정 데이터 하위 집합에만 권한 부여 가능
  • android:pathPrefix : 경로의 처음 부분 지정
  • android:pathPattern : 와일드 카드를 포함할 수 있는 전체 경로 지정

 


<instrumentation>

애플리케이션과 시스템의 상호작용을 모니터링할 수 있는 Instrumentation 클래스 선언

계측 객체는 애플리케이션의 구성요소 이전에 인스턴스화 된다.

<instrumentation android:functionalTest=["true" | "false"]
                     android:handleProfiling=["true" | "false"]
                     android:icon="drawable resource"
                     android:label="string resource"
                     android:name="string"
                     android:targetPackage="string"
                     android:targetProcesses="string" />

 

포함된 요소

<manifest>

 


<supports-gl-texture>

앱에서 지원하는 단일 GL 텍스처 압축 형식 선언

    <supports-gl-texture
      android:name="string" />
   

 

포함된 요소

<manifest>

 

<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
    <supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />
  • 여러 텍스처 압축 형식을 지원하는 경우 요소 여러 개 선언 가능
  • 애플리케이션이 지원할 수 있는 모든 텍스처 압축 형식을 선언하는 것이 중요

 

텍스처 압축 형식 설명어 설명
GL_OES_compressed_ETC1_RGB8_texture Ericsson 텍스처 압축
OpenGL ES 2.0에서 지정되며 OpenGL ES 2.0을 지원하는 모든 Android 구동 기기에서 사용 가능

GL_OES_compressed_paletted_texture 팔레트화된 일반 텍스처 압축
GL_AMD_compressed_3DC_texture ATI 3Dc 텍스처 압축
GL_AMD_compressed_ATC_texture ATI 텍스처 압축
HTC Nexus One, Droid Incredible, EVO를 포함하여 Adreno GPU를 실행하는 기기에서 사용 가능
GL_EXT_texture_compression_latc 휘도 알파 텍스처 압축
GL_EXT_texture_compression_dxt1 S3 DXT1 텍스처 압축
Motorola Xoom, Motorola Atrix, Droid Bionic을 포함하여 Nvidia Tegra2 플랫폼을 실행하는 기기에서 지원
GL_EXT_texture_compression_s3tc S3 텍스처 압축
DXT 변형에 특정 X
Motorola Xoom, Motorola Atrix, Droid Bionic을 포함하여 Nvidia Tegra2 플랫폼을 실행하는 기기에서 지원 가능
애플리케이션에 특정 DXT 변형이 필요한 경우에는 대신 특정 변형의 설명어를 선언
GL_IMG_texture_compression_pvrtc PowerVR 텍스처 압축
Motorola DROID 시리즈, Samsung Galaxy S, Nexus S, Galaxy Tab과과 같이 PowerVR SGX530/540 GPU를 실행하는 기기에서 사용 가능

 

 


<uses-configuration>

애플리케이션에 필요한 하드웨어 및 소프트웨어 기능

<uses-configuration
      android:reqFiveWayNav=["true" | "false"]
      android:reqHardKeyboard=["true" | "false"]
      android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
      android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
      android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />

 

포함된 요소

<manifest>

 

android:reqFiveWayNav 방향 탐색 컨트롤이 필요한지 여부
android:reqHardKeyboard 하드웨어 키보드가 필요한지 여부
android:reqKeyboardType 필요한 키보드 유형
android:reqNavigation 필요한 탐색 기기
android:reqTouchScreen 필요한 터치스크린의 유형

 


<uses-feature>

애플리케이션이 사용하는 단일 하드웨어 또는 소프트웨어 기능을 선언

목적 : 외부 엔티티에 애플리케이션이 의존하는 하드웨어 및 소프트웨어 기능 집합을 알려주는 것

<uses-feature
  android:name="string"
  android:required=["true" | "false"]
  android:glEsVersion="integer" />

 

포함된 위치

<manifest>

 

<uses-feature android:name="android.hardware.bluetooth" />
<uses-feature android:name="android.hardware.camera" />

→ 기기에서 블루투스 기능과 카메라 기능이 모두 필요한 경우

    →각 기능을 개별 <uses-feature> 요소에 지정

 

android:required

  • "true" : 기기에 지정 기능이 없는 경우 애플리케이션 정상 작동 불가
  • "false" : 기기에 지정 기능이 없는 경우 애플리케이션 정상 작동 가능 (해당 기능 없이)