Context의 정의
멀티태스킹의 환경에서 하나의 태스킹이 다른 태스킹과 구분되는 최소한의 집합
프로세서에서의 경우 한번에 한가지 일밖에 못하는 반면 멀티태스킹 경우 다른 프로세서를 번갈아 가면
실행하는 다른 프로세서로 바뀔 때 바뀌어야 하는 데이터들의 집합
context는 os의 입장에서 실행 중인 application을 관리하기 위한 자료구조
Class를 생성하거나 정보를 얻고자 할때 context는 parameter로 많이 사용되는다.
context는 Class에 memory를 할당하거나 정보를 얻고자 하는 memory block 정보를 검색하기 위해
어떤 application에서 요청했는지 대한 필요성을 알수 있다.
Context의 역할
자신이 어떤 어플리케이션을 나타내고 있는지를 알려주는 ID역할
ActivityMangerService에 접근 할 수 있도록 하는 통로의 역할
안드로이드 플렛폼은 ID카드를 통한 보안 시스템과 유사한 구조를 가지고 있따
어플리케이션이 자신이 본인임을 확인 받을 수 있는 방법은 자신이 작동중인 Process를 보여주는 것이 아니라
자신이 건네 받았던 ID카들 제시하면 그 ID카드가 context에 대한 역할을 하게 된다.
Context가 필요한 이유
전역적인 어플리케이션 정보에 접근하거나 어플리케이션 연관된 시스템 기능을 수행하기 위해 시스템 할수를
호출하는 일은 안드로이드가 아닌 다른 플렛폼에서 늘 일어나는 일입니다. 직접적으로 시스템API를 호출하는 반면
안드로이드에서는 Context란 인스턴스화 된 매개체를 통해야만 유사한 일들을 수행할 수 있습니다.
Context는 어플리케이션과 관련된 정보에 접근하고자 하거나 어플리케이션과 연관된
시스템 레벨의 함수를 호출하고자 할때 사용합니다.
안드로이드 시스템에서 어플리케이션 정보를 관리하고 있는 것은 시스템이 아닌
ActivityMangerService라는 일종의 다른 어플입니다.
다른 플렛폼과 달리 안드로이드는 어플리케이션 정보에 접근을 할때 ActivityManagerService를 통해야만 합니다.
Context가 태어나는 시기
어플리케이션이 시작될 때 뿐만 아니라, 어플리케이션 컴포넌트들이 생성될때만 태어난다.
Context의 API내용
Object 바로 다음으로 상속되어 있는 최상위 객체이며 추상클래스입니다.
앱 환경 정보를 다루는 인터페이스란 내용을 가지고 있고 액티비티를 실행시키고 인텐트를 받는 것과 같은 레벨명령 호출 담당
Activity의 API내용
Activity란 클래스는 Context를 상속하고 this라는 명령어를 통해 context에서 제공하는 메소드를 접근이 가능합니다.
그외
getBaseContext() 구글맵에서 사용하는 기본적인 환경
getApplicationContext() 헌재 어플의 기본환경
결론 Context는 여러가지 이유로 기존 플렛폼과는 다른 방식으로 어플리케이션을 관리
시스템 API를 통해 할수 있는 일들을 Context 인스턴스라는 강력한 녀석에 통해 대행처리하고 있다고 합니다.
출처
[http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=11977]
[http://nnnyyy.tistory.com/31]
'Mobile > android' 카테고리의 다른 글
내 전화번호 보기 (0) | 2012.09.16 |
---|---|
My Application (0) | 2012.09.13 |
setFlags (0) | 2012.08.30 |
AsyncTask (0) | 2012.08.29 |
Android Api 주소 (0) | 2012.08.29 |