본문 바로가기
안드로이드, IOS

[안드로이드] 기초 내용 정리 - Intent의 개략적인 이해

by dwoi 2023. 3. 29.

본 글은 안드로이드라는 운영체제에 대해서 기본적으로 학습하고 개발 환경을 구축하는 내용을 정리하는 글임을 밝힘.

 

목차

     


    안드로이드(운영체제)


    1. Intent란?

    Application 컴포넌트간 메세지 역할
    Intent

    요소 사이에 데이터를 주고 받기 위한 용도

    1.1. Intent 특징

    인텐트는 실행하고자 하는 Application Component의 정보를 기술하는 class. 

    • Activity, Service, Receiver는 Intent를 이용하여 구동할 수 있다.
    • 인텐트에는 명시적 Intent와 암시적 Intent가 있다.
    • Intent로 Application Component를 실행하면, 이 Intent는 실행한 Application Component에 전달된다
    • Intent에 Extras에 값을 넣어 호출하는 Application Component로 전달할 수 있다. 

     

    1.2. 명시적 intent vs 암시적 intent

    1.2.1. 명시적 intent

     인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출할 대상을 확실히 알 수 있는 경우

     

    1.2.2. 암시적 intent

    클래스명을 주는 것과 같은 직접적인 지정 없이 어떠한 작업을 수행할 것인지 일반적인 작업을 선언해 이를 다른 컴포넌트가 처리할 수 있도록 하는 경우

     

    1.3. Intent의 구성 요소

    1. 컴포넌트 이름
      • 인텐트를 처리할 컴포넌트 이름
    2. 액션(action)
      • 수행할 액션의 이름을 나타내는 문자열. 브로드캐스트 인텐트의 경우에는 수행된 액션
    3. 데이터 (Data)
      • 액션이 수행될 데이터의 Uri 와 MIME 타입
    4. 영역 (Category)
      • 인텐트를 처리할 컴포넌트의 종류를 알려주는 추가 정보
        (값은 문자열이여야 함)
    5. 엑스트라 & 플래그
      • 인텐트를 처리할 컴포넌트에게 전달되는 키-밸류(Key-Value pairs) 값
      • 기타 다양한 플래그들이 있을 수 있음 

     

    1.4. URI(Uniform Resource Identifier)

    - 프로그램에서 접근할 수 있는 자원에 부여한 Id 
    - URL과 URN으로 되어 있다.
    - (URL은 편지에서 주소와 같은 것이고 URN은 이름과 같은 것임.) 
    - 자원을 획득해 오기 위해 사용된다. 

     

    1.5. Mime(Multipurpose Internet Mail Extensions) 

    - Text가 아닌 데이터나 ASCII가 아닌 문자를 나타내기 위한 방식
    - 데이터의 “type/fileformat” 형식으로 되어 있다.
    - mime-type은 데이터를 어떻게 play할지 결정하기 위해 사용된다.
    - 예) audio/mp3, video/avi, application/json, text/html 등

     

     


     

    2. IntentFilter

    2.1. IntentFilter란?

    명시적 인텐트와 다르게, 암시적 인텐트는 여러 컴포넌트가 실행이 될 수 있기때문에,실행을 하기 위한 조건이 필요
    이를 IntentFilter가 맡아서 필터링을 하게됩니다.

     

    2.2. IntentFilter 특징

    • 인텐트필터는 영역(category)이라 불리는 필드를 포함하며 이는 액션의 유형을 분류하는 데 사용
      • ex) 영역의 이름이 category.LAUNCHER인 경우에 안드로이드는 이 인텐트필터를 포함하는 액티비티를               홈 스크린에 보여주도록 함
    • 안드로이드 플랫폼은 Intent로 Application Component의 구동이 요청되면, AndroidManifest에 등록된 IntentFilter등의 정보를 보고 매칭되는 Application Component를 찾아서 실행

     


     

    3. PendingIntent

    3.1. PendingIntent란?

    일반적인 인텐트와는 다르게,

    1. 컴포넌트에서 다른 컴포넌트에게 작업을 요청하는 인텐트를 사전에 생성시키고 만든다는 점

    2. “특정 시점"에 작업을 요청시키는 데 사용

     


     

    마무리

    자바나 코틀린이라는 게 객체라는 개념을 어렴풋하게 알고 있는 상황이라 함수나 자세한 상황을 이해하려기 보다는 대략적으로 어떻게 구성되어 있고 크게 크게 이해하려는 식으로 정리.

    대략적인 각각의 구성요소들을 파악하고 나중에 자바나 코틀린을 자세하게 공부하여 클래스에 대한 이해가 좀 확실해진 이후에 공부를 할 것으로 생각.

    어떤 순서대로 프로그램이 짜여져있는지만 고찰해보자.

     

    댓글