상세 컨텐츠

본문 제목

[Android] Android Context란?

안드로이드

by 삽질하는 개발자 2022. 1. 23. 19:03

본문

Android를 하다보면 정말 많이 보는 context라는 것이 있습니다.

다들 많이들 사용하는데 정확히 뭔지는 모르고 사용하는 경우가 대부분이죠... 저 또한 역시...

일단 context가 뭔지 공식 문서의 설명을 보겠습니다.

 


Interface to global information about an application environment.

This is an abstract class whose implementation is provided by the Android system.

It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.

  • Application 환경에 대한 전역 정보를 접근하기 위한 인터페이스.
  • 추상 클래스이며 실제 구현은 Android 시스템에 의해 제공된다.
  • Context를 통해 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있다.
  • Activity 실행, Intent 브로드캐스팅 그리고 Intent 수신 등과 같은 응용 프로그램 수준의 작업을 수행하기 위한 API를 호출 할 수 있다.

 

먼저 안드로이드는 시스템에서 어플리케이션의 정보를 관리하지 않고, ActivityManagerService에서 관리합니다.

그래서 어플리케이션 관련된 정보에 접근할 때 ActivityManagerService 를 통해서 접근합니다.

context는 ActivityManagerService에게 내가 어떤 어플리케이션인지 알려주는 ID와,  ActivityManagerService 에 접근할 수 있는 통로 역할을 합니다.

 

인터넷에 좋은 예시가 있어서 예를 한 번 들어보겠습니다.

 

아래 크롬을 앱이라고 가정해보겠습니다.

크롬앱에 네이버, 다음, 유튜브라는 Activity가 존재합니다.

 

각각 네이버와 다음탭에 우클릭을 하면 아래의 팝업창이 발생하죠.

  • 네이버 탭을 우클릭

  • 다음 탭을 우클릭

이 팝업창을 context라고 보시면 됩니다.

팝업창은 동일하지만, 네이버탭의 우클릭한 팝업은 네이버의 정보가 담겨있고, 다음탭을 우클린한 팝업창은 다음의 정보가 담겨 있습니다.

이 팝업창을 통해 각 Activity에 대한 정보에 접근할 수 있는 것이죠!

 

 

이해가 좀 가시나요??

 

요악하자면, Android는 시스템 정보에 접근할 때 ActivityManager를 사용하는데,

context는 자신이 어떤 애플리케이션인지 알려주는 ID와 ActivityManager에 접근하는 통로 역할을 합니다.

관련글 더보기