<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" : 기기에 지정 기능이 없는 경우 애플리케이션 정상 작동 가능 (해당 기능 없이)
'Android Developers > manifest' 카테고리의 다른 글
Intent, <intent-filter>, <action>, <category>, <data> (0) | 2020.12.02 |
---|---|
<application>이 포함 가능한 요소 : <activity>, <activity-alias>, <meta-data>, <service>, <receiver>, <provider>, <uses-library> (0) | 2020.12.01 |
<application> (0) | 2020.12.01 |
<uses-permission>, <uses-permission-sdk-23>, <uses-sdk><permission>, <permission-group>, <permission-tree> (0) | 2020.11.30 |
<manifest> (0) | 2020.11.30 |