6. Context는
앞의 예시의 속성 정보처럼
어떤 Application, Activity 인가를 구별해주는 역할을 한다.
Window 속성 정보 비교에 대한 출처 : 샤핀님의 블로그( http://zxcv5500.tistory.com/258 )
7. Context
비유를 봤으니 정석인 개발자 사이트에 나온 내용을 보자.
개발자 사이트 Context : http://developer.android.com/intl/ko/reference/android/content/Context.html
번역 참고 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
Class Overview
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.
어플리케이션 환경에 관한 글로벌 정보를 접근하기 위한 인터페이스.
Abstract 클래스이며 실재 구현은 안드로이드 시스템에 의해 제공된다.
Context 를 통해, 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있을 뿐만 아니라,
추가적으로, 어플리케이션 레벨의 작업 - Activity 실행, Intent 브로드캐스팅, Intent 수신 등을
수행하기 위한 API 를 호출 할 수도 있다.
8. Context
비유를 봤으니 정석인 개발자 사이트에 나온 내용을 보자.
개발자 사이트 Context : http://developer.android.com/intl/ko/reference/android/content/Context.html
번역 참고 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
Class Overview
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.
어플리케이션 환경에 관한 글로벌 정보를 접근하기 위한 인터페이스.
Abstract 클래스이며 실재 구현은 안드로이드 시스템에 의해 제공된다.
Context 를 통해, 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있을 뿐만 아니라,
추가적으로, 어플리케이션 레벨의 작업 - Activity 실행, Intent 브로드캐스팅, Intent 수신 등을
수행하기 위한 API 를 호출 할 수도 있다.
10. 출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
프로세스
커널(OS)
Application
일반적인 운영체제
프로세스와 어플리케이션이 긴밀한 관계가 있고
커널이 전체적인 관리를 담당한다.
별다른 매개체 없이 시스템 함수를 호출하는 등의 작업을 할 수 있다.
11. 출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
프로세스
커널(OS)
Application
일반적인 운영체제
프로세스와 어플리케이션이 긴밀한 관계가 있고
커널이 전체적인 관리를 담당한다.
별다른 매개체 없이 시스템 함수를 호출하는 등의 작업을 할 수 있다.
12. 프로세스
커널(OS)
Application
안드로이드 운영체제
프로세스와 어플리케이션이 따로 있다.
그렇기 때문에 어플리케이션 관련 정보의 관리는
커널이 아닌
ActivityManagerServic 라는 곳에서 어플리케이션을 관리한다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
13. 프로세스
커널(OS)
Application
안드로이드 운영체제
프로세스와 어플리케이션이 따로 있다.
그렇기 때문에 어플리케이션 관련 정보의 관리는
커널이 아닌
ActivityManagerServic 라는 곳에서 어플리케이션을 관리한다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
14. Context는
자신이 어떤 어플리케이션을 나타내고 있는지 알려주는 ID 역할
ActivityManagerService 에 접근할 수 있도록 하는 통로 역할
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
15. 다시 비유를 해보자.
일반 OS 에서 어플리케이션은 곧 Process 이다.
특정 어플리케이션이 OS 에게 내가 어떤 Process 인지만 알려주면 어플리케이션 관련된
정보를 얼마든지 획득 할 수 있습니다.
이른바 자신의 존재 자체가 자신임을 증명해주는 '지문인식' 혹은 '홍채인식' 등의 '생체인식' 과
비슷한 개념이기 때문에 Context 와 같은 애매한 중간 매개체가 존재할 이유가 없습니다.
하지만 안드로이드에서는 '생체인식' 보다는 'ID카드' 를 통한 보안 시스템과 유사한 구조입니다.
특정 어플리케이션이 자신이 본인임을 확인 받을 수 있는 방법은 자신이 작동중인 Process 를
보여주는 것이 아니라, 자신이 건네 받은 ID카드를 제시하는 것 입니다.
이 때 ID카드의 역할을 수행하는 것이 바로 Context 이고, 당연히 이 카드는 위변조가 가능하기 때문에,
자신의 권한을 제 3의 어플리케이션에게 넘겨주는 PendingIntent와 같은 기능도 가능해집니다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
17. Application Context
Activity Context
Service Context
BroadcastReceiver Context
Context 는 어플리케이션이 시작될 때는 물론이요,
어플리케이션 컴포넌트들이 생성될 때 마다 태어난다.
물론, 새롭게 생성되는 Context 들이 부모와 완전히
독립되어 있는 존재는 아니고 '거의' 비슷한 내용을 담고 있습니다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
ContentProvider Context