Notice
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- androidstudio
- webflux
- 책리뷰
- rxjava
- 인공지능
- suspend
- 일본어문법
- 일본어기초
- 안드로이드
- 진짜학습지
- GIT
- posting
- 학습지
- 진짜학습지후기
- blog
- github
- Kotlin
- ai
- coroutine
- pullrequest
- Android
- CustomTab
- n3문법
- 진짜일본어
- PR
- 코틀린
- errorhandling
- jlpt
- KotlinInAction
- 책추천
Archives
코딩하는 개굴이
Context란? 본문
반응형
본 내용은 스스로의 정리를 위한 문서임을 알립니다.
Context란?
- Context의 정의
- 애플리케이션 환경에 관한 정보를 접근하기 위한 인터페이스
- Abstract 클래스로 실제 구현은 안드로이드 시스템에 의해 제공된다.
- Context를 통해 애플리케이션에 특화된 리소스, 클래스에 접근할 수 있다.
- 시스템이 관리하고 있는 애플리케이션 정보에 접근
- 안드로이드 시스템 서비스에서 제공하는 API 를 호출
- getResource, get~~ 와 같은 애들, startActivity 등
- Context가 필요한 이유
- C# 등에서는 System.AppDomain... 등의 방법으로 정적 함수로 제공되는 시스템 API 를 호출 할 수 있다.
- 안드로이드에서는 Context에 정의된 인스턴스 함수를 호출해야만 가능하다.
- 차이가 생기는 이유 : OS 커널이 프로세스를 관리해주지만, 안드로이드의 경우는 어플리케이션과 프로세스는 독립적으로 존재하여 멀티태스킹 된다. (프로세스가 없는 상황에서도 애플리케이션은 살아있는 것처럼 사용자에게 표시되거나, 메모리가 부족하면 프로세스가 강제로 종료하는 등)
- 안드로이드 OS 도 커널(리눅스)에서 관리되지만, 어플리케이션 정보는 ActivityManagerService 에서 (key, Value)쌍으로 관리되므로, key 값을 이용해 여기서 정보를 얻는 브릿지의 역할을 한다.
- 애플리케이션 하나하나를 프로세스라고 한다면, 자신임을 인증하고 데이터를 가져오기 위해서 Context를 id 카드와 같이 사용한다. (경우에 따라서 자신의 권한을 다른 애플리케이션에게 너겨줄 수 있다. -> PendingIntent)
Context의 생성
- 하나의 애플리케이션을 구성하는 주 컴포넌트들은 서로 다름을 유의해야한다. (Activity, Service, BroadcastReceiver -> 완전히 다르지는 않지만 다르다.)
- Activity 와 Service 가 생성될 때 만들어지는 Context와 BroadcastReceiver 가 호출될 때 전해지는 Context는 각 애플리케이션 컴포넌트들이 생성될 때 마다 생성된다.
참고 링크
반응형
'안드로이드' 카테고리의 다른 글
LayoutInflater란 (0) | 2021.02.21 |
---|---|
jadx-gui 맥에서 설치하기 (0) | 2021.02.21 |
Retrofit 과 Volley 에 대하여 (0) | 2021.02.21 |
CI / CD (0) | 2021.02.21 |
[안드로이드] 디자인 패턴 겉핥기 (MVC, MVP, MVVM) (0) | 2020.11.05 |
Comments