
이 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명한다
여러 정보 중 꼭 담아야할 정보 4가지가 있다
<manifest></manifest>에는 패키지 이름에 대한 특성이 필요하다<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0" >
...
</manifest>
위의 예시는 패키지 이름이 "com.example.myapp"인 루트 <manifest>요소를 나타낸다
앱을 APK로 빌드하는 동안 Android 빌드 도구가 package 특성을 사용하는 목적은 두가지이다
R.java 클래스의 네임스페이스로 이 이름을 적용<activity> : Activity<service> : Service<receiver> : Receiver<provider> : Content Provider컴포넌트의 서브 클래스를 사용하면서 manifest 파일에 선언을 해주지 않는다면 해당 컴포넌트를 실행할 수 없다
각각의 컴포넌트들은 Intent에 의해 활성화된다
val intent = Intent(this, SubActivity::class.java)
startActivity(intent)<manifest ... >
<uses-permission android:name="android.permission.SEND_SMS"/>
...
</manifest>
위의 예시는 SMS 메세지 전송에 관한 권한을 요청하는 것이다
Android 6.0부터 사용자는 런타임에서 일부 앱 권한을 승인하거나 거절할 수 있다
앱은 권한을 사용하여 자체적인 구성요소를 보호할 수 있다
<uses-feature><manifest ... >
<uses-feature android:name="android.hardware.sensor.compass"
android:required="true" />
...
</manifest><uses-sdk><uses-sdk> 태그와 해당 태그의 minSdkVersion 특성을 포함해야 한다⚠️
<uses-sdk>요소의 특성은build.gradle파일의 해당 속성으로 재정의 된다는 것을 유의해야한다. Android Studio를 사용하는 경우 이곳에minSdkVersion과targetSdkVersion값을 대신 사용해야한다
출처 : https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko