대기업을 향한 디벨롭 블로그

AndroManifest의 구조,개념 본문

나는안드로이드개발자

AndroManifest의 구조,개념

MHY.PRO 2022. 6. 17. 17:40

AndroidManifest의 파일에대한 구조를 알아보자 이 파일은 app폴더안 manifests폴더안에 들어있다.

Manifest는 앱에대한 구성요소, 권한 셋팅정보들이 들어있는 파일이다.

 

공식사이트의 manifest https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko 

 

앱 매니페스트 개요  |  Android 개발자  |  Android Developers

앱 매니페스트 개요 모든 앱 프로젝트는 프로젝트 소스 세트의 루트에 AndroidManifest.xml 파일(정확히 이 이름)이 있어야 합니다. 매니페스트 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에

developer.android.com

 

먼저 구조를 보면 

맨 상위인 <manifest> 가 있고 그 아래에 중첩구조로 

<manifest>

- <application> (앱을 구성하는 요소들)

- <uses-permission> (앱의 권한)

- <uses-feature> (기기의 호환성)

</manifest>

가 있다.

 

먼저 <manifest>를 살펴보면 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.postmanifest">

앱의 패키지이름은 package="com.example.postmanifest" 가있다. postmanifest가 패키지 이름이다.

 

 

다음 <application>컴포넌트는 액티비티, 서비스, 컨텐트프로바이더, 브로드캐스트리시버를 구성한다.

 기본적으로 구성되있는걸 살펴보면 

allowBackup -> 백업을 허용할거냐 (애플리케이션이 백업 및 복원 인프라에 참여하도록 허용할지 여부입니다. 이 속성을 false로 설정하면 모든 애플리케이션 데이터가 adb를 통해 저장되는 전체 시스템 백업에 의해서도 애플리케이션의 백업 또는 복원이 실행되지 않습니다. 이 속성의 기본값은 true입니다.)

 

dataExtractionRules -> 앱의 백업이나 전송 작업의 일부로 기기에서 복사할 수 있는 파일과 디렉터리를 결정하는 규칙을 지정한 XML리소스를 이 속성으로 설정할 수 있음

 

android:fullBackupContent -> 자동 백업용으로 전체 백업 규칙이 포함된 XML파일을 가리킨다. 이 XML파일의 백업규칙에 따라 대상파일이 결정됨.

 

android:icon -> 앱의 아이콘을 뜻함 @drawble에서 아이콘을 직접 설정해주어야됨. 기본으로는 ic_launcher로 되어있음

 

android:label -> 앱의 제목임

 

android:roundIcon -> 앱의 아이콘이 동그랗게 표현되는 상황에서 쓰이는 아이콘 

 

android:supportsRtl -> Rtl이 (Rigth to Left)인데 애플리케이션이 오른쪽에서 왼쪽 레이아웃을 지원하냐

 

android:theme -> 안드로이드의 테마를 뜻함 모든스타일의 테마를 여기서 참조함.

 

 

다음은 <activity>

여기는 activity의 정보들을 모아놓았다. 

 

android:name -> Activity의 이름을 적어준다. 즉 class이름을 적어줌

 

android:exported -> ture인경우 모든앱에서 클래스이름으로 활동가능  <intent-filter>를 가지고있다면 true가 필수이다. 기본값도 true  ,  false인경우 <intent-filter>가 없는경우 예를들어 MAIN액티비티가 아닌경우는 기본값이 false 즉 사용자가 활동을 하여야 볼 수있음

 

다음은 <intent-filter>

<activity>가 <intent-filter>를 가지고있으면 MAIN액티비티이다. 여기서 MAIN액티비티는 이름이 Main이 아니라 앱이 처음실행될때 나타내는 MAIN을 뜻한다. 

 

<intent-filter>에는 

   - <action> -> 필수

   - <category> -> 포함가능  

 

<action name = "android.intent.action.MAIN"> -> 액티비티를 MAIN으로 사용하겠다는 뜻이다.

 

<category android:name="android.intent.category.LAUNCHER" />  -> 이코드가 액티비티를 앱을 실행할때 처음으로 나타나게한다. 위 action과 category는 짝꿍이라고 볼 수 있다. 

 

 

이렇게 기본적인 manifest를 살펴봤다. 일단 중요한건 ↓ 이거고

<manifest>

- <application> (앱을 구성하는 요소들)

- <uses-permission> (앱의 권한)

- <uses-feature> (기기의 호환성)

</manifest>

 

설정할 수 있는 것들이 엄청많다. 나도 공식사이트에서 보면서 공부했다. 

절대 다 외우진못하니 이런것도있고 , 저런것도있고 하면서 보다보면 나중에 필요하면 무조건 생각난다. ㅋㅋ