Android/Android 일반

Context

lipnus 2019. 3. 11. 10:28
반응형

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를 호출 할 수 있다.

어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근

  • Context 인터페이스가 제공하는 API 중 getPackageName(), getResource() 등의 메서드


안드로이드 시스템에서 제공하는 API 를 호출할 수 있는 기능

  • startActivity(), bindService() 와 같음 메서드


Context 역할

Context는 어플리케이션과 관련된 정보에 접근하고자 하거나 어플리케이션과 연관된 시스템 레벨의 함수를 호출하고자 할 때 사용된다. 
그런데 안드로이드 시스템에서 어플리케이션 정보를 관리하고 있는 것은 시스템이 아닌, AcitivityManagerService 라는 일종의 또 다른 어플리케이션이다. 
따라서 다른 일반적인 플랫폼과는 달리, 안드로이드에서는 어플리케이션과 관련된 정보에 접근하고자 할 때는 AcitivityManagerService를 통해야만 한다. 
당연히 정보를 얻고자 하는 어플리케이션이 어떤 어플리케이션인지에 관한 키 값도 필요하다.

즉, 안드로이드 플랫폼 관점에서 Context는 다음과 같은 두 가지 역할을 수행하기 때문에 꼭 필요하다.

  • 자신이 어떤 어플리케이션을 나타내고 있는지 알려주는 ID 역할
  • ActivityManagerService에 접근할 수 있도록 하는 통로 역할



출처: https://shnoble.tistory.com/57 [노블의 개발이야기]

반응형

'Android > Android 일반' 카테고리의 다른 글

In App Purchase  (0) 2019.03.13
Thread, Looper, Handler  (0) 2019.03.11
View가 그려지는 과정  (0) 2019.03.10
그림자 나인패치 생성사이트  (0) 2019.03.05
[Kotlin] 소스코드로 TextView 색상 바꾸기  (0) 2019.02.28