- 문법:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowCrossUidActivitySwitchFromBelow=["true" | "false"] android:allowNativeHeapPointerTagging=["true" | "false"] android:appCategory=["accessibility" | "audio" | "game" | "image" | "maps" | "news" | "productivity" | "social" | "video"] android:backupAgent="string" android:backupInForeground=["true" | "false"] android:banner="drawable resource" android:dataExtractionRules="string resource" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:extractNativeLibs=["true" | "false"] android:fullBackupContent="string" android:fullBackupOnly=["true" | "false"] android:gwpAsanMode=["always" | "never"] android:hasCode=["true" | "false"] android:hasFragileUserData=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:isGame=["true" | "false"] android:isMonitoringTool=["parental_control" | "enterprise_management" | "other"] android:killAfterRestore=["true" | "false"] android:largeHeap=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:networkSecurityConfig="xml resource" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:requestLegacyExternalStorage=["true" | "false"] android:requiredAccountType="string" android:resizeableActivity=["true" | "false"] android:restrictedAccountType="string" android:supportsRtl=["true" | "false"] android:taskAffinity="string" android:testOnly=["true" | "false"] android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:usesCleartextTraffic=["true" | "false"] android:vmSafeMode=["true" | "false"] > . . . </application>
- 포함된 위치:
<manifest>
- 포함 가능한 요소:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
- 설명:
애플리케이션의 선언입니다. 이 요소는 애플리케이션의 각 구성요소를 선언하는 하위 요소를 포함하며 모든 구성요소에 영향을 줄 수 있는 속성을 가지고 있습니다.
이러한 속성 중 다수(예:
icon
,label
,permission
,process
,taskAffinity
,allowTaskReparenting
)는 구성요소의 상응하는 속성에 기본값을 설정합니다. 그 외 속성(예:debuggable
,enabled
,description
,allowClearUserData
)은 애플리케이션의 값을 전체적으로 설정하며 구성요소별로 재정의되지 않습니다.- 속성
android:allowTaskReparenting
- 애플리케이션이 정의하는 활동을 이동해도 되는지 여부를 지정합니다. 활동을 처음 시작한 작업에서 다음에 그 작업이 포그라운드에서 실행될 때 어피니티가 있는 작업으로 이동해도 되는지 여부로서, 이동할 수 있다면
"true"
이고 애플리케이션을 시작한 작업에 머물러 있어야 하면"false"
입니다. 기본값은"false"
입니다.<activity>
요소에는 여기에서 설정된 값을 재정의할 수 있는 고유한allowTaskReparenting
속성이 있습니다. android:allowBackup
애플리케이션이 백업 및 복원 인프라에 참여하도록 허용할지 여부입니다. 이 속성을
"false"
로 설정하면adb
를 통해 모든 애플리케이션 데이터를 저장하는 전체 시스템 백업을 수행해도 애플리케이션을 백업하거나 복원하지 않습니다. 이 속성의 기본값은"true"
입니다.참고: Android 12 (API 수준 31) 이상을 타겟팅하는 앱의 경우 이 동작은 경우에 따라 다릅니다. 일부 기기 제조업체의 기기에서는 기기 간 이전을 사용 중지할 수 없습니다. 앱 파일의 이름을 바꾸세요.
그러나 앱이 Android 12(API 수준 31) 이상을 타겟팅하더라도 이 속성을
"false"
로 설정하면 앱 파일의 클라우드 기반 백업 및 복원을 사용 중지할 수 있습니다.자세한 내용은 Android 12(API 수준 31) 이상을 타겟팅하는 앱의 동작 변경사항을 설명하는 페이지의 백업 및 복원 섹션을 참고하세요.
android:allowClearUserData
애플리케이션이 사용자 데이터를 재설정하도록 허용할지 여부입니다. 이 데이터에는 사용자가 소개 도움말을 봤는지 여부를 나타내는 플래그뿐만 아니라 사용자가 맞춤설정할 수 있는 설정과 환경설정도 포함됩니다. 이 속성의 기본값은
"true"
입니다.참고: 시스템 이미지에 포함된 앱만 이 속성을 명시적으로 선언할 수 있습니다. 서드 파티 앱은 매니페스트 파일에 이 속성을 포함할 수 없습니다.
자세한 내용은 데이터 백업 개요를 참고하세요.
android:allowCrossUidActivitySwitchFromBelow
작업에서 이 아래에 있는 활동이 다른 활동을 시작할 수도 있는지 지정합니다. 작업을 완료할 수 있습니다
타겟 SDK 수준
Build.VERSION_CODES.VANILLA_ICE_CREAM
부터 상위 활동이 아닌 이상 새로운 활동을 시작하거나 작업을 완료하지 못하도록 차단될 수 있습니다. 이러한 작업은 보안상의 이유로 동일한 UID에 속합니다.이 플래그를
true
로 설정하면 다음과 같은 경우 실행 앱이 제한을 무시할 수 있습니다. 이 활동이 맨 위에 있습니다. 이 활동의 UID와 일치하는 앱은 항상 제외됩니다.자세한 내용은 보안 백그라운드 활동 실행을 참고하세요.
android:allowNativeHeapPointerTagging
앱에 힙 포인터 태그 지정 기능이 사용 설정되어 있는지 여부입니다. 이 속성의 기본값은
"true"
입니다.참고: 이 기능을 사용 중지해도 기본 코드 상태 문제는 해결되지 않습니다. 향후 하드웨어 기기에서는 이 매니페스트 태그를 지원하지 않을 수 있습니다.
자세한 내용은 태그가 지정된 포인터를 참고하세요.
android:appCategory
이 앱의 카테고리를 선언합니다. 카테고리는 배터리나 네트워크, 디스크 사용량을 요약하는 경우와 같이 여러 앱을 의미 있는 그룹으로 클러스터링하는 데 사용됩니다. 앱이 특정 카테고리 중 하나에 잘 맞는 경우에만 이 값을 정의해야 합니다.
다음 상숫값 중 하나여야 합니다.
값 설명 accessibility
스크린 리더와 같이 접근성을 주요 기능으로 하는 앱입니다. audio
음악 플레이어와 같이 주로 오디오나 음악과 함께 작동하는 앱입니다. game
게임을 주요 기능으로 하는 앱입니다. image
카메라 앱이나 갤러리 앱과 같이 주로 이미지나 사진과 함께 작동하는 앱입니다. maps
내비게이션 앱과 같이 지도를 주요 기능으로 하는 앱입니다. news
신문이나 잡지, 스포츠 앱과 같이 뉴스를 주요 기능으로 하는 앱입니다. productivity
클라우드 스토리지, 직장 앱 등 생산성을 주요 기능으로 하는 앱입니다. social
메시지나 커뮤니케이션, 이메일, 소셜 네트워크 앱과 같이 주로 소셜 기능을 제공하는 앱입니다. video
스트리밍 동영상 앱 등 주로 동영상 또는 영화와 함께 작동하는 앱입니다. android:backupAgent
- 애플리케이션의 백업 에이전트인
BackupAgent
의 서브클래스를 구현하는 클래스의 이름입니다. 속성 값은 정규화된 클래스 이름(예:"com.example.project.MyBackupAgent"
)입니다. 하지만 약식으로 이름의 첫 번째 문자가 마침표인 경우(예:".MyBackupAgent"
)에는<manifest>
요소에서 지정된 패키지 이름에 추가됩니다.기본값은 없으며, 이름을 지정해야 합니다.
android:backupInForeground
- 이 앱이 포그라운드에 상응하는 상태일 때도 앱에서 자동 백업 작업이 실행될 수 있다는 것을 나타냅니다. 자동 백업 작업 중에 시스템이 앱을 종료하므로 이 속성을 주의해서 사용하세요. 이 플래그를
"true"
로 설정하면 앱이 활성 상태일 때 앱 동작에 영향을 줄 수 있습니다.기본값은
"false"
이며, 이 경우 OS는 앱이 포그라운드에서 실행되는 동안(예: 음악 앱이startForeground()
상태의 서비스를 통해 음악을 재생하는 중) 앱이 백업되지 않게 합니다. android:banner
- 연결된 항목에 확장 그래픽 배너를 제공하는 드로어블 리소스입니다.
<application>
태그와 함께 사용하여 애플리케이션의 모든 활동에 기본 배너를 제공하거나,<activity>
태그와 함께 사용하여 특정 활동의 배너를 제공할 수 있습니다.시스템에서는 배너를 사용하여 Android TV 홈 화면에서 앱을 나타냅니다. 따라서
CATEGORY_LEANBACK_LAUNCHER
인텐트를 처리하는 활동이 있는 애플리케이션에서만 배너를 지정해야 합니다.이 속성은 이미지가 포함된 드로어블 리소스의 참조로 설정해야 합니다(예:
"@drawable/banner"
). 기본 배너는 없습니다.자세한 내용은 홈 화면 배너 제공을 참고하세요.
android:dataExtractionRules
애플리케이션은 백업이나 전송 작업의 일부로 기기에서 복사할 수 있는 파일과 디렉터리를 결정하는 규칙을 지정한 XML 리소스로 이 속성을 설정할 수 있습니다.
XML 파일 형식에 관한 자세한 내용은 백업 및 복원을 참고하세요.
android:debuggable
- 사용자 모드로 기기에서 실행할 때에도 애플리케이션을 디버그할 수 있는지 여부입니다. 디버그할 수 있으면
"true"
이고 디버그할 수 없으면"false"
입니다. 기본값은"false"
입니다. android:description
- 애플리케이션에 관해 사용자가 읽을 수 있는 텍스트로, 애플리케이션 라벨보다 더 길고 더 자세하게 설명합니다. 값은 문자열 리소스의 참조로 설정해야 합니다. 라벨과 달리 원시 문자열일 수 없습니다. 기본값은 없습니다.
android:enabled
- Android 시스템이 애플리케이션의 구성요소를 인스턴스화할 수 있는지 여부입니다. 인스턴스화할 수 있으면
"true"
이고 인스턴스화할 수 없으면"false"
입니다. 값이"true"
인 경우 각 구성요소의enabled
속성은 구성요소가 사용 설정되는지 여부를 결정하고 값이"false"
이면 이 속성은 구성요소별 값을 재정의하여 모든 구성요소가 사용 중지됩니다.기본값은
"true"
입니다. android:extractNativeLibs
- 이 속성은 패키지 설치 프로그램이 APK에서 파일 시스템으로 네이티브 라이브러리를 추출하는지를 나타냅니다.
"false"
로 설정하면 네이티브 라이브러리가 압축되지 않은 상태로 APK에 저장됩니다. APK가 더 클 수도 있지만 라이브러리가 런타임에 APK에서 직접 로드되므로 애플리케이션이 더 빠르게 로드됩니다.extractNativeLibs
의 기본값은minSdkVersion
및 사용 중인 AGP 버전에 따라 다릅니다. 대부분의 경우 기본 동작은 개발자가 원하는 대로일 수 있으며 이 속성은 명시적으로 설정하지 않아도 됩니다. android:fullBackupContent
- 이 속성은 자동 백업용 전체 백업 규칙이 포함된 XML 파일을 가리킵니다.
이 규칙에 따라 백업 대상 파일이 결정됩니다. 자세한 내용은 자동 백업의 XML 구성 문법을 참고하세요.
이 속성은 선택사항입니다. 지정하지 않으면 기본적으로 자동 백업에 대부분의 앱 파일이 포함됩니다. 자세한 내용은 백업되는 파일을 참고하세요.
android:fullBackupOnly
- 이 속성은 사용할 수 있는 경우 자동 백업을 기기에서 사용할지 여부를 나타냅니다.
"true"
로 설정하면 앱은 Android 6.0(API 수준 23) 이상을 실행하는 기기에 설치된 자동 백업을 실행합니다. 이전 기기에서는 앱이 이 속성을 무시하고 키/값 백업을 실행합니다.기본값은
"false"
입니다. android:gwpAsanMode
- 이 속성은 use-after-free 및 heap-buffer-overflow 버그를 찾는 데 도움이 되는 네이티브 메모리 할당자 기능인 GWP-ASan을 사용할지 여부를 나타냅니다.
기본값은
"never"
입니다. android:hasCode
- 애플리케이션에 DEX 코드, 즉
Kotlin 또는 Java 프로그래밍 언어
필요하면
"true"
, 필요하지 않으면"false"
입니다. 이 값이"false"
인 경우 시스템이 애플리케이션을 로드하지 않음 코드를 작성해야 합니다. 기본값은"true"
입니다.애플리케이션에 네이티브 (C/C++) 코드는 포함되어 있지만 DEX 코드는 없는 경우
"false"
로 설정해야 합니다. APK가"true"
으로 설정된 경우 DEX 코드가 없으면 앱이 로드되지 않을 수 있습니다.이 속성은 종속 항목을 지원합니다 애플리케이션이 AAR을 사용하는 경우 Java/Kotlin 코드에서 직접 사용하거나 JAR에 직접 저장하는 경우
app:hasCode
는"true"
또는 기본값이므로 생략됩니다.예를 들어 앱에서 Play Feature Delivery를 지원하고 DEX 파일(Android 플랫폼에 최적화된 바이트 코드)을 생성하지 않는 기능 모듈을 포함하는 경우 모듈의 매니페스트 파일에서 이 속성을
"false"
로 설정해야 합니다. 그러지 않으면 런타임 오류가 발생할 수 있습니다. android:hasFragileUserData
- 사용자가 앱을 제거할 때 앱의 데이터를 유지하라는 메시지를 표시할지 여부입니다. 기본값은
"false"
입니다. android:hardwareAccelerated
- 이 애플리케이션의 모든 활동과 뷰에 하드웨어 가속 렌더링이 사용 설정되어 있는지 여부입니다. 사용 설정된 경우
"true"
이고 사용 설정되지 않은 경우"false"
입니다.minSdkVersion
또는targetSdkVersion
을"14"
이상으로 설정했다면 기본값이"true"
이고 그러지 않았다면 기본값이"false"
입니다.Android 3.0(API 수준 11)부터는 하드웨어 가속 OpenGL 렌더기를 애플리케이션에 사용할 수 있으며 이를 통해 다양한 일반적인 2D 그래픽 작업의 성능을 향상할 수 있습니다. 하드웨어 가속 렌더기를 사용 설정하면 캔버스, Paint, Xfermode, ColorFilter, 셰이더, 카메라의 대부분의 작업이 가속화됩니다.
그 결과, 프레임워크의 OpenGL 라이브러리를 명시적으로 사용하지 않는 애플리케이션에서도 애니메이션과 스크롤이 더 매끄러워지고 전반적인 응답성이 향상됩니다.
모든 OpenGL 2D 작업이 가속화되는 것은 아닙니다. 하드웨어 가속 렌더기를 사용 설정할 때는 애플리케이션을 테스트하여 오류 없이 렌더기를 사용할 수 있는지 확인하세요.
자세한 내용은 하드웨어 가속 참조하세요.
android:icon
- 전체 애플리케이션의 아이콘 및 애플리케이션의 각 구성요소의 기본 아이콘입니다.
<activity>
,<activity-alias>
,<service>
,<receiver>
,<provider>
요소의 개별icon
속성을 참고하세요.이 속성은
"@drawable/icon"
과 같이 이미지가 포함된 드로어블 리소스의 참조로 설정됩니다. 기본 아이콘은 없습니다. android:isGame
- 애플리케이션이 게임인지 여부입니다. 시스템에서 애플리케이션을 게임으로 분류해 그룹화하거나 다른 애플리케이션과 별도로 표시할 수 있습니다. 기본값은
"false"
입니다. android:isMonitoringTool
이 애플리케이션이 다른 개별 요소를 모니터링하도록 설계되었음을 나타냅니다.
참고: 앱이 매니페스트에서 이 속성을 선언하면 개발자는 스토커웨어 정책에 따라 앱을 Google Play에 게시해야 합니다.
기본값은 없습니다. 개발자는 다음 값 중 하나를 지정해야 합니다.
값 설명 "parental_control"
자녀 보호 기능에 적합하며, 특히 자녀를 안전하게 보호하길 원하는 부모를 대상으로 하는 앱입니다. "enterprise_management"
직원에게 제공되는 기기를 관리하고 추적하려는 기업에 적합한 앱입니다. "other"
이 표에 달리 명시되지 않은 사용 사례에 적합한 앱입니다. android:killAfterRestore
애플리케이션이 종료되고 전체 시스템 복원 작업 중에 설정이 복원된 경우 단일 패키지 복원 작업으로 인해 애플리케이션이 종료되지는 않습니다. 일반적으로 전체 시스템 복원 작업은 스마트폰을 처음 설정할 때 한 번만 실행됩니다. 서드 파티 애플리케이션은 일반적으로 이 속성을 사용할 필요가 없습니다.
기본값은
"true"
이며, 이 경우 전체 시스템 복원 중에 애플리케이션이 데이터 처리를 완료한 후에 종료됩니다.android:largeHeap
큰 Dalvik 힙으로 애플리케이션의 프로세스가 만들어지는지 여부 애플리케이션에 관해 만드는 모든 프로세스에 적용됩니다. 한 프로세스에 첫 번째로 로드되는 애플리케이션에만 적용됩니다. 공유 사용자 ID를 사용하여 여러 애플리케이션이 프로세스를 사용할 수 있는 경우 애플리케이션이 이 옵션을 일관성 있게 사용해야 합니다. 그러지 않으면 예측할 수 없는 결과를 초래합니다.
대부분의 앱에서는 이 속성이 필요하지 않으며 대신 성능 개선을 위해 전체 메모리 사용량을 줄이는 데 중점을 둡니다. 또한 이 속성을 사용 설정하는 경우 가용 메모리가 고정적으로 증가될 것이 보장되지 않습니다. 왜냐하면 일부 기기는 총 가용 메모리의 제약을 받기 때문입니다.
런타임에 사용 가능한 메모리 크기를 쿼리하려면
getMemoryClass()
메서드나getLargeMemoryClass()
메서드를 사용하세요.android:label
- 전체 애플리케이션을 나타내는, 사용자가 읽을 수 있는 라벨 및 애플리케이션의 각 구성요소의 기본 라벨입니다.
<activity>
,<activity-alias>
,<service>
,<receiver>
,<provider>
요소의 개별label
속성을 참고하세요.라벨은 사용자 인터페이스의 다른 문자열처럼 현지화될 수 있도록 문자열 리소스의 참조로 설정합니다. 하지만 애플리케이션을 개발하는 동안 편의를 위해 라벨을 원시 문자열로 설정할 수도 있습니다.
android:logo
- 전체 애플리케이션의 로고 및 활동을 나타내는 기본 로고입니다.
이 속성은
"@drawable/logo"
와 같이 이미지가 포함된 드로어블 리소스의 참조로 설정됩니다. 기본 로고는 없습니다. android:manageSpaceActivity
- 사용자가 기기에서 애플리케이션이 차지하는 메모리를 관리할 수 있게 시스템이 시작할 수 있는
Activity
서브클래스의 정규화된 이름입니다. 활동은<activity>
요소를 사용하여 선언되기도 합니다. android:name
- 애플리케이션에 관해 구현되는
Application
서브클래스의 정규화된 이름입니다. 애플리케이션 프로세스가 시작되면 애플리케이션의 구성요소보다 먼저 이 클래스가 인스턴스화됩니다.서브클래스는 선택사항입니다. 대부분의 애플리케이션에는 필요하지 않습니다. 서브클래스가 없으면 Android는 기본
Application
클래스의 인스턴스를 사용합니다. android:networkSecurityConfig
애플리케이션의 네트워크 보안 구성이 포함된 XML 파일의 이름을 지정합니다. 값은 구성이 포함된 XML 리소스 파일의 참조입니다.
이 속성은 API 수준 24에 추가되었습니다.
android:permission
- 클라이언트가 애플리케이션과 상호작용하는 데 필요한 권한의 이름입니다. 이 속성을 사용하면 애플리케이션의 모든 구성요소에 적용되는 권한을 편리하게 설정할 수 있습니다. 개별 구성요소의
permission
속성을 설정하는 방법으로 이 속성을 덮어쓸 수 있습니다. android:persistent
- 애플리케이션을 항상 실행 상태로 유지할지 여부입니다. 유지해야 하면
"true"
이고 유지할 필요가 없으면"false"
입니다. 기본값은"false"
입니다. 일반적으로 이 플래그를 설정하지 않습니다. 지속 모드는 특정 시스템 애플리케이션만을 대상으로 합니다. android:process
- 애플리케이션의 모든 구성요소를 실행하는 프로세스의 이름입니다.
각 구성요소는 고유한
process
속성을 설정하여 이 기본값을 재정의할 수 있습니다.기본적으로 Android는 첫 번째 구성요소를 실행해야 할 때 애플리케이션의 프로세스를 만듭니다. 그런 다음 프로세스의 모든 구성요소가 실행됩니다. 기본 프로세스의 이름은
<manifest>
요소에서 설정된 패키지 이름과 일치합니다.이 속성을 다른 애플리케이션과 공유되는 프로세스 이름으로 설정하면 두 애플리케이션의 구성요소가 동일한 프로세스에서 실행되도록 할 수 있지만 두 애플리케이션이 사용자 ID도 공유하고 동일한 인증서로 서명된 경우에만 가능합니다.
이 속성에 할당된 이름이 콜론(
:
)으로 시작되면 필요한 경우 애플리케이션 전용의 새 프로세스가 만들어집니다. 프로세스 이름이 소문자로 시작되는 경우 이 이름의 전역 프로세스가 만들어집니다. 전역 프로세스는 다른 애플리케이션과 공유할 수 있으므로 리소스 사용량이 줄어듭니다. android:restoreAnyVersion
- 애플리케이션이 백업된 데이터 세트를 복원할 준비가 되었음을 나타내며, 현재 기기에 설치된 것보다 최신 버전의 애플리케이션이 이 백업을 저장한 경우에도 해당됩니다. 이 속성을
"true"
로 설정하면 버전이 일치하지 않아 데이터가 호환되지 않을 가능성이 있는 경우에도 백업 관리자가 복원을 시도하게 됩니다. 주의해서 사용하세요.이 속성의 기본값은
"false"
입니다. android:requestLegacyExternalStorage
-
애플리케이션이 범위 지정 저장소를 선택 해제할지 여부입니다.
참고: 정책이나 앱 호환성과 관련된 변경사항에 따라 시스템에서 이 선택 해제 요청을 준수하지 못할 수 있습니다.
android:requiredAccountType
- 애플리케이션이 작동하는 데 필요한 계정 유형을 지정합니다.
앱에
Account
가 필요하면 이 속성의 값은 앱에서 사용하는"com.google"
과 같은 계정 인증자 유형(AuthenticatorDescription
으로 정의됨)과 일치해야 합니다.기본값은 null이며, 이 경우 애플리케이션이 계정 없이 작동할 수 있음을 나타냅니다.
제한된 프로필은 계정을 추가할 수 없으므로 이 속성을 지정하는 경우 같은 값을 사용해
android:restrictedAccountType
도 선언하지 않는다면 제한된 프로필에서 앱을 사용할 수 없게 됩니다.주의: 계정 데이터에서 개인 식별 정보가 공개될 수 있는 경우 이 속성을 선언하고
android:restrictedAccountType
을 null 그대로 두어 제한된 프로필이 앱을 사용해 소유자 사용자의 개인 정보에 액세스할 수 없도록 해야 합니다.이 속성은 API 수준 18에 추가되었습니다.
android:resizeableActivity
-
앱이 멀티 윈도우 모드를 지원하는지 여부를 지정합니다. 이 속성은
<activity>
요소나<application>
요소에서 설정할 수 있습니다.이 속성을
"true"
로 설정하면 사용자가 화면 분할 모드와 자유 형식 모드로 활동을 시작할 수 있고, 속성을"false"
로 설정하면 앱을 멀티 윈도우 환경에 맞게 테스트하거나 최적화할 수 없습니다. 시스템은 여전히 호환성 모드가 적용된 상태로 활동을 멀티 윈도우 모드에 둘 수 있습니다.이 속성을
"true"
로 설정해도 멀티 윈도우 모드의 다른 앱이 화면(예: PIP 모드)이나 다른 디스플레이에 표시되지 않는다는 보장도 없습니다. 따라서 이 플래그를 설정한다고 해서 앱에 독점적인 리소스 액세스 권한이 있는 것은 아닙니다.앱이 API 수준 24 이상을 타겟팅하는 경우 기본값은
"true"
입니다.앱이 API 수준 31 이상을 타겟팅하는 경우 이 속성은 작은 화면 및 큰 화면에서 다르게 작동합니다.
- 큰 화면(sw >= 600dp): 모든 앱이 멀티 윈도우 모드를 지원합니다. 이 속성은 앱의 크기를 조절할 수 있는지를 나타냅니다(앱이 멀티 윈도우 모드를 지원하는지가 아님).
resizeableActivity="false"
인 경우 디스플레이 치수를 준수하기 위해 필요한 경우 앱이 호환성 모드로 전환됩니다. - 작은 화면(sw < 600dp):
resizeableActivity="true"
및 기본 활동의 최소 너비와 최소 높이가 멀티 윈도우 요구사항 내에 있다면 앱은 멀티 윈도우 모드를 지원합니다.resizeableActivity="false"
인 경우 앱은 활동 최소 너비 및 높이와 상관없이 멀티 윈도우 모드를 지원하지 않습니다.
참고: 기기 제조업체는 API 수준 31 동작을 재정의할 수 있습니다.
이 속성은 API 수준 24에 추가되었습니다.
참고: 작업의 루트 활동 값은 작업에서 시작된 모든 추가 활동에 적용됩니다. 즉, 작업의 루트 활동의 크기를 조절할 수 있으면 시스템은 작업의 다른 모든 활동의 크기를 조절할 수 있다고 간주합니다. 루트 활동의 크기를 조절할 수 없으면 작업의 다른 활동의 크기를 조절할 수 없습니다.
- 큰 화면(sw >= 600dp): 모든 앱이 멀티 윈도우 모드를 지원합니다. 이 속성은 앱의 크기를 조절할 수 있는지를 나타냅니다(앱이 멀티 윈도우 모드를 지원하는지가 아님).
android:restrictedAccountType
- 이 애플리케이션에 필요한 계정 유형을 지정하며 제한된 프로필이 소유자 사용자가 가진 이 유형의 계정에 액세스할 수 있음을 나타냅니다. 앱에
Account
가 필요하며 제한된 프로필이 기본 사용자의 계정에 액세스할 수 있는 경우 이 속성의 값은 앱에서 사용하는"com.google"
과 같은 계정 인증자 유형(AuthenticatorDescription
에 의해 정의됨)과 일치해야 합니다.기본값은 null이며, 이 경우 애플리케이션이 계정 없이 작동할 수 있음을 나타냅니다.
주의: 이 속성을 지정하면 제한된 프로필이 소유자 사용자의 계정으로 앱을 사용할 수 있으며 이 경우 개인 식별 정보가 공개될 수 있습니다. 계정에서 개인 정보가 공개될 수 있는 경우 해서는 안 됩니다. 이 속성을 사용하세요. 대신
android:requiredAccountType
속성을 선언하여 제한된 프로필에서 앱을 사용할 수 없게 만들어야 합니다.이 속성은 API 수준 18에 추가되었습니다.
android:supportsRtl
애플리케이션이 오른쪽에서 왼쪽 (RTL) 레이아웃을 지원하는지 여부를 선언합니다.
"true"
로 설정되어 있고targetSdkVersion
17 이상으로 설정되어 있으면 다양한 RTL API가 앱에서 RTL 레이아웃을 표시할 수 있도록 시스템에서 활성화되어 사용합니다."false"
로 설정되거나targetSdkVersion
이 16 이하로 설정되면 RTL API가 무시되거나 아무런 영향도 미치지 않아, 앱은 사용자의 언어 선택과 관련된 레이아웃 방향과 상관없이 작동합니다. 즉, 레이아웃은 항상 왼쪽에서 오른쪽이 됩니다.이 속성의 기본값은
"false"
입니다.이 속성은 API 수준 17에 추가되었습니다.
android:taskAffinity
- 고유한
taskAffinity
속성을 사용하여 다른 어피니티를 설정하는 활동을 제외하고 애플리케이션 내의 모든 활동에 적용되는 어피니티 이름입니다. 자세한 내용은 각 속성을 참고하세요.기본적으로 애플리케이션 내의 모든 활동은 동일한 어피니티를 공유하며 이 어피니티의 이름은
<manifest>
요소에서 설정된 패키지 이름과 동일합니다. android:testOnly
- 이 애플리케이션이 테스트만을 목적으로 하는지 여부를 나타냅니다. 예를 들어 애플리케이션이 기능이나 데이터를 애플리케이션 외부에 노출할 수도 있으며, 이 경우 보안에 허점이 생기지만 테스트에는 유용합니다. 이런 종류의 APK는
adb
를 통해서만 설치할 수 있으며 Google Play에 게시할 수 없습니다.Android 스튜디오에서 Run 을 클릭하면 자동으로 이 속성이 추가됩니다.
android:theme
- 애플리케이션의 모든 활동의 기본 테마를 정의하는 스타일 리소스 참조입니다. 개별 활동은 고유한
theme
속성을 설정하여 기본값을 재정의할 수 있습니다. 자세한 내용은 스타일 및 테마를 참고하세요. android:uiOptions
- 활동의 UI에 적용되는 추가 옵션입니다. 다음 값 중 하나여야 합니다.
값 설명 "none"
추가 UI 옵션이 없습니다. 이는 기본값입니다. "splitActionBarWhenNarrow"
가로 공간이 제한적일 때(예: 핸드셋에서 인물 사진 모드 사용) 화면 하단에 표시줄을 추가하여 앱 바(작업 모음이라고도 함)에 작업 항목을 표시합니다. 화면 상단의 앱 바에 소수의 작업 항목이 표시되는 방식 대신, 상단의 탐색 섹션과 하단의 작업 항목 표시줄로 앱 바가 나뉘게 됩니다. 이렇게 하면 작업 항목과 상단의 탐색 및 제목 요소에 적정한 공간이 제공됩니다. 메뉴 항목은 표시줄 두 개로 분할되지 않고 항상 함께 표시됩니다. 앱 바에 관한 자세한 내용은 앱 바 추가를 참고하세요.
이 속성은 API 수준 14에 추가되었습니다.
android:usesCleartextTraffic
- 앱이 일반 텍스트 HTTP와 같은 일반 텍스트 네트워크 트래픽을 사용하는지 여부를 나타냅니다.
API 수준 27 이하를 타겟팅하는 앱에서는 기본값이
"true"
이고, API 수준 28 이상을 타겟팅하는 앱에서는 기본값이"false"
입니다.이 속성이
"false"
로 설정되면 플랫폼 구성요소(예: HTTP 및 FTP 스택,DownloadManager
,MediaPlayer
)는 앱의 일반 텍스트 트래픽 사용 요청을 거부합니다.서드 파티 라이브러리도 이 설정을 준수하는 것이 좋습니다. 일반 텍스트 트래픽을 피하는 주요 이유는 기밀성, 진실성이 보장되지 않고 변조 방지가 불가능하기 때문입니다. 네트워크 공격자는 전송되는 데이터를 도청할 수 있으며 들키지 않고 수정할 수도 있습니다.
제공되는 액세스 수준을 감안할 때 Android 애플리케이션에서 나오는 일반 텍스트 트래픽을 모두 차단할 수는 없으므로, 이 플래그는 최대한 적용됩니다. 예를 들어
Socket
API는 트래픽이 일반 텍스트인지 여부를 판별할 수 없으므로 이 플래그를 적용하는 데 있어 예외가 없습니다.하지만 애플리케이션에서 나오는 대부분의 네트워크 트래픽은 상위 수준 네트워크 스택 및 구성요소에서 처리되며, 이 경우
ApplicationInfo.flags
또는NetworkSecurityPolicy.isCleartextTrafficPermitted()
에서 읽어 들여 이 플래그를 적용할 수 있습니다.참고:
WebView
는 API 수준 26 이상을 타겟팅하는 애플리케이션의 경우 이 속성을 적용합니다.앱 개발 중에 StrictMode를 사용하여 앱의 일반 텍스트 트래픽을 식별할 수 있습니다. 자세한 내용은
StrictMode.VmPolicy.Builder.detectCleartextNetwork()
를 참고하세요.이 속성은 API 수준 23에 추가되었습니다.
이 플래그는 Android 7.0(API 수준 24) 이상에서 Android 네트워크 보안 구성이 있는 경우 무시됩니다.
android:vmSafeMode
- 앱이 가상 머신(VM)을 안전 모드로 작동할지 여부를 나타냅니다. 기본값은
"false"
입니다.이 속성은 API 수준 8에 추가되었으며, 여기서는 속성 값이
"true"
일 때 Dalvik JIT(just-in-time) 컴파일러가 사용 중지되었습니다.API 수준 22에서 이 속성은 값이
"true"
일 때 ART AOT(ahead-of-time) 컴파일러가 사용 중지되도록 수정되었습니다.
AGP 4.2.0부터
extractNativeLibs
매니페스트 속성이 DSL 옵션useLegacyPackaging
으로 대체되었습니다. 매니페스트 파일의extractNativeLibs
대신 앱의build.gradle
파일에서useLegacyPackaging
을 사용하여 네이티브 라이브러리 압축 동작을 구성해야 합니다. 자세한 내용은 DSL을 사용하여 압축된 네이티브 라이브러리 패키징 출시 노트를 참고하세요.- 도입 수준:
- API 수준 1
- 참고 항목:
<activity>
<service>
<receiver>
<provider>
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2024-09-12(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2024-09-12(UTC)"],[],[]]