상세 컨텐츠

본문 제목

앱 개발 방법 - 앱 매니페스트 파일 (인텐트 필터, 아이콘 및 레이블, 권한)

본문

반응형

인텐트 필터

앱 액티비티, 서비스, Broadcast Receiver는 인텐트로 활성화됩니다. 인텐트는 실행할 작업을 설명하는 Intent객체로 정의되는 메시지입니다. 여기에는 작업할 데이터 작업을 수행해야 하는 구성 요소의 카테고리 및 기타 지침이 포함됩니다.

 

앱이 인텐트를 시스템에 발행하면 시스템은 각 앱의 매니페스트 파일에 선언된 인텐트 필터에 기초하여 인텐트를 처리할 수 있는 앱 구성 요소를 찾습니다. 시스템은 일치하는 구성 요소의 인스턴스를 시작하고 해당 구성 요소에 Intent 객체를 전달합니다. 두 개 이상의 앱이 인텐트를 처리할 경우 사용자는 어느 앱을 사용할지 선택할 수 있습니다.

 

앱 구성 요소는 인텐트 필터(<Intent-filter>요소로 정의)를 몇 개든 가질 수 있으며 각 인텐트 필터는 해당 구성 요소의 각 기능을 설명합니다.

 

아이콘 및 레이블

어떤 매니페스트 요소는 해당 앱 구성 요소에 대해 각각 작은 아이콘과 텍스트 레이블을 사용자에게 각각 표시하기 위한 icon과 label특성이 있습니다.

 

각각의 경우에 상위 요소에 설정된 아이콘과 레이블은 모든 하위 요소에 대해 기본 icon과 label값이 됩니다. 예를 들어 <application>요소에 설정된 아이콘과 레이블이 앱의 각 구성요소(예:모든 액티비티)에 대한 기본 아이콘과 레이블이 됩니다.

 

구성 요소의 <Intent-filter>에 설정된 아이콘과 레이블은 구성 요소가 인텐트를 수행하기 위한 옵션으로 제시될 때마다 사용자에게 표시됩니다. 기본적으로 이 아이콘은 상위 구성 요소(<activity>또는 <application>요소)에 대해 어떤 아이콘이 선언되든 이를 상속하지만 선택기 대화 상자에서 더욱 잘 보여주고 싶은 고유한 작업을 제공하는 인텐트 필터의 아이콘이 있다면 해당 아이콘으로 변경할 수도 있습니다.

권한

Android 앱은 민감한 사용자 데이터(예:연락처, SMS) 또는 특정 시스템 기능(예:카메라, 인터넷 액세스)에 액세스 하기 위한 권한을 요청해야 합니다. 각 권한은 고유한 레이블로 식별됩니다. 예를 들어 SMS 메시지를 보내야 하는 앱은 매니페스트에 다음과 같은 줄이 있어야 합니다.

<manifest ... >
    <uses-permission android:name="android.permission.SEND_SMS"/>
    ...
</manifest>

Android 6.0(API 레빌 23)부터 사용자는 런타임에서 일부 앱 권한을 승인하거나 거절할 수 있게 됩니다. 그러나 앱이 어떤 Android 버전을 지원하든 매니페스트에서 <uses-permission>요소로 모든 권한 요청을 선언해야 합니다. 권한이 부여되면 앱이 보호된 기능을 사용할 수 있습니다. 권한이 부여되지 않으면 그러한 기능에 액세스 하려는 시도가 실패합니다.

 

앱은 권한을 사용하여 자체적인 구성 요소를 보호할 수도 있습니다. Android에서 정의된 권한 또는 다른 앱에서 선언된 권한을 사용할 수 있습니다. 또한 앱에서 권한을 정의할 수도 있습니다. 새 권한을 선언할 때는 <permission>요소를 사용합니다.

 

인텐트 필터 : 앱 액티비티, 서비스, Broadcast Receiver는 인텐트로 활성화된다. 앱이 인텐트를 시스템에 발행하면 시스템은 각 앱의 매니페스트 파일에 선언된 인텐트 필터에 기초하여 인텐트를 처리할 수 있는 앱 구성 요소를 찾는다. 시스템은 일치하는 구성 요소를 시작하고 해당 구성 요소에 Intent 객체를 전달합니다. 
아이콘 및 레이블 : 상위 요소에 설정된 아이콘과 레이블은 모든 하위 요소에 대해 기본 icon과 label값이 된다. 구성 요소의 <Intent-filter>에 설정된 아이콘과 레이블은 구성 요소가 인텐트를 수행하기 위한 옵션으로 제시될 때마다 사용자에게 표시된다.
권한 : Android 앱은 민감한 사용자 데이터 또는 특정 시스템 기능에 액세스하기 위한 권한을 요청해야 합니다.
반응형

관련글 더보기