Context
일반 OS kernel
Application -> System Call -> System 함수 -> 프로세스 정보 제공
자신의 존재가 자신으로 인증
Android
OS가 프로세스 관리
Android system service 중의 ActivityManagerService에서 Application 정보 관리
Key-Value 의 배열로 현재 작동 중인 Application 정보 관리
ActivityManagerService 또한 일종의 Appcliation
Application은 인증된 ID 카드를 가지며, 전달도 가능함
Context
Application과 관련된 정보에 접근하거나 System 레벨의 함수를 호출할 때 사용됨
즉 ActivityManagerService를 통해야 가능
두 가지 역할을 가짐
Application의 ID
ActivityManagerService에 접근할 수 있도록 하는 역할
Activity, Service에서 생성되거나, BroadcastReceiver에 전해지는 Context는 모두 다른 인스턴스
Context는 Application이 시작될 때, 그리고 컴포넌트들이 생성될 때마다 생성됨
Dialog나 새로운 View를 화면상에 표시하기 위해서는 Activity의 Context가 필요한 이유는
표시하기 위한 Window에 대한 정보가 필요하기 때문
Activity Context
Activity와 Activity에 포함된 그 밖의 요소(View의 전체적인 계층 구조)
Application Context
Application Context에 대한 참조를 누군가가 계속 유지하고 있으면 메모리 Leak
댓글