본문 바로가기

알고리즘/개념

안드로이드 Manifest

출처
이 글은 안드로이드 공식 홈페이지에서 작성 된 공식 가이드를 기반으로 개인적으로 요약 및 정리한 내용입니다.

틀린 내용이 있는 경우 정정 해주시면 감사하겠습니다.

Manifest

  • Manifest는 안드로이드 프로젝트에 존재하는 디렉터리로, App을 구동하는데 필요한 정보들을 담거나 Activity의 관리를 해줍니다.
    MainActivity라는 Activity가 manifest에 등록 되어 있음.

인텐트

  • 컴포넌트에 액션, 데이터 등을 전달하는 메시지 컴포넌트

인텐트 필터

  • Intent는 메시징 객체로, 다른 앱 구성 요소로부터 작업을 요청하는 데 사용할 수 있습니다.(수신할 수 있는 인텐트를 정의합니다.)
  • 인텐트 필터는 Android 플랫폼의 매우 강력한 기능입니다.
    인텐트 필터는 명시적 요청뿐만 아니라 암시적 요청을 기반으로도 활동을 실행하는 기능을 제공합니다.
    예를 들어 명시적 요청'Gmail 앱에서 이메일 보내기 활동을 시작'하도록 시스템에 지시할 수 있습니다.
    이와 반대로 암시적 요청'작업을 할 수 있는 활동으로 이메일 보내기 화면을 시작'하도록 시스템에 지시합니다. 시스템 UI에서 사용자에게 작업을 실행할 때 어떤 앱을 사용할지 묻는 메시지가 표시되면 바로 인텐트 필터가 작동한 것입니다.

인텐트 필터 선언

  • 인텐트 필터의 요소로는 action, category, data가 있습니다.
  • action은 인텐트 필터에 작업을 추가하는 것으로 반드시 인텐트 필터에 하나 이상 포함 되어 있어야 합니다.
  • action의 android:name은 작업의 이름을 적을 곳입니다.
  • 표준 작업들은 Intent 클래스에서 "ACTION_"+"string상수"(예 : ACTION_SEND)로 정의됩니다.
    이러한 작업 중 하나를 이 속성에 할당하려면 ACTION_ 다음에 나오는 string 앞에 'android.intent.action.'을 추가합니다.
    예를 들어 ACTION_MAIN이면 'android.intent.action.MAIN'을 사용하고 ACTION_WEB_SEARCH이면 'android.intent.action.WEB_SEARCH'를 사용합니다.
    밑에 코드에선 ACTION_SEND 작업을 추가해줬습니다.
  • category는 인텐트 필터의 카테고리명을 추가합니다.
  • category의 android:name은 카테고리의 이름을 정의하는 곳입니다.
    표준 카테고리는 Intent 클래스에서 CATEGORY_name 상수로 정의됩니다.
    여기서 할당된 이름은 CATEGORY_ 다음에 나오는 name 앞에 android.intent.category.를 추가하는 방법으로 이 상수에서 파생할 수 있습니다.
    예를 들어 CATEGORY_LAUNCHER의 문자열 값은 'android.intent.category.LAUNCHER'입니다.
  • 참고: 암시적 인텐트를 수신하려면 인텐트 필터에 CATEGORY_DEFAULT 카테고리를 포함해야 합니다.
    startActivity() 메서드와 startActivityForResult() 메서드는 마치 CATEGORY_DEFAULT 카테고리를 선언한 것처럼 모든 인텐트를 취급합니다.
    인텐트 필터에서 이 카테고리를 선언하지 않으면 암시적 인텐트는 활동으로 확인되지 않습니다.
  • data는 데이터 사양을 인텐트 필터에 추가합니다.
    아래 코드는 action SEND 작업을 하고, 보내는 데이터 타입은 TEXT/PLAIN이며, 카테고리는 CATEGORY_DEFAULT입니다.
    <activity android:name=".ExampleActivity" android:icon="@drawable/app_icon"> 
    	<intent-filter> 
    		<action android:name="android.intent.action.SEND" /> 
    		<category android:name="android.intent.category.DEFAULT" /> 
    		<data android:mimeType="text/plain" /> 
    	</intent-filter> 
    </activity>`
728x90
반응형

'알고리즘 > 개념' 카테고리의 다른 글

백준 - 트리 순회(Kotlin) : 트리를 구현해보는 개념 문제  (0) 2022.08.03
안드로이드 - 권한  (0) 2022.06.22
알고리즘 - 분할정복  (0) 2022.05.22
DFS  (0) 2021.05.06