Android Studio의 Manifest 파일의 항목을 정리해봤다.
<action>
<action android:name="string" />
<intent-filter>
<intent-filter>
에 작업 추가<intent-filter>
에 꼭 <action>
이 하나 이상 포함되어야 함<action>
이 없으면 filter가 Intent
객체 허용Xandroid:name
<activity>
<action android:permission = "string"></activity>
<application>
<intent-filter>
, <meta-data>
, <layout>
<activity>
요소로 나타내야 함<application>
<application android:enabled=["true"|"false"]></application>
<manifest>
<activity>
, <activity-alias>
, <meta-data>
, <service>
, <receiver>
, <profileable>
, <provider>
, <uses-library>
, <uses-native-library>
<intent-filter>
<intent-filter android:icon="drawable resource"
android:label="string resource"
android:priority="integer" >
. . .
</intent-filter>
<activity>
, <activity-alias>
, <service>
, <receiver>
, <provider>
<actioin>
<category>
, <data>
<manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="string"
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"
android:versionName="string"
android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
. . .
</manifest>
<application>
<compatible-screens>
, <instrumentation>
, <permission>
, <permission-group>
, <permission-tree>
, <queries>
, <supports-gl-texture>
, <suuports-screens>
, <users-configuration>
, <uses-feature>
, <uses-permission>
, <uses-permission-sdk-23>
, <uses-sdk>
AndroidManifest.xml
의 루트 요소<applicaion>
요소를 포함해야 함xmlns:android
및 package
속성 지정xmlns:android
package
<permission>
<permission android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal" | "dangerous" |
"signature" | ...] />
<manifest>
android:description
android:icon
android:label
android:name
android:permissionGroup
<permission-group>
요소로 선언android:protectionLevel
<provider>
<provider android:authorities="list"
android:directBootAware=["true" | "false"]
android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:grantUriPermissions=["true" | "false"]
android:icon="drawable resource"
android:initOrder="integer"
android:label="string resource"
android:multiprocess=["true" | "false"]
android:name="string"
android:permission="string"
android:process="string"
android:readPermission="string"
android:syncable=["true" | "false"]
android:writePermission="string" >
. . .
</provider>
<application>
<meta-data>
, <grant-uri-permission>
, <intent-filter>
, <path-permission>
ContentProvider
의 서브 클래스<provider>
요소에서 정의<receiver>
<receiver android:directBootAware=["true" | "false"]
android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permission="string"
android:process="string" >
. . .
</receiver>
<application>
<intent-filter>
, <meta-data>
broadcast receiver
(BroadcastReceiver
서브클래스)를 application의 구성요소 중 하나로 선언<receiver>
를 사용해 manifest 파일에 broadcast receiver 선언broadcast receiver
를 만든 다음 Context.registerReceiver()
메소드를 사용해 등록하는 것<service>
<service android:description="string resource"
android:directBootAware=["true" | "false"]
android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:foregroundServiceType=["camera" | "connectedDevice" |
"dataSync" | "location" | "mediaPlayback" |
"mediaProjection" | "microphone" | "phoneCall"]
android:icon="drawable resource"
android:isolatedProcess=["true" | "false"]
android:label="string resource"
android:name="string"
android:permission="string"
android:process="string" >
. . .
</service>
<applicatoin>
<intent-filter>
, <meta-data>
Service
(Service
서브클래스)를 application의 구성요소 중 하나로 선언activity
와 달리 시각적 사용자 인터페이스 X<service>
요소로 나타내야 함<uses-permission>
<uses-permission android:name="string"
android:maxSdkVersion="integer" />
“android.permission.CAMERA”
, “android.permission.READ_CONTACTS”
https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko