SlideShare a Scribd company logo
1 of 19
Context
사용 되는 곳은 많다.
그렇다면 Context란 무엇인가?
Window 에서의 마우스 오른쪽 클릭을 하면?
같은 종류의 폴더(또는 파일)에 오른쪽 클릭
메뉴에 나오는 항목들은 같다
[속성]을 들어가 보자.
구성은 같지만
세부 내용이 다르다.
이를 보고 구별할 수
있다.
Context는
앞의 예시의 속성 정보처럼
어떤 Application, Activity 인가를 구별해주는 역할을 한다.
Window 속성 정보 비교에 대한 출처 : 샤핀님의 블로그( http://zxcv5500.tistory.com/258 )
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 를 호출 할 수도 있다.
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 를 호출 할 수도 있다.
Context 왜 필요 할까?
여기서 아주 조금 있는 운영체제 지식을 꺼내보면……
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
프로세스
커널(OS)
Application
일반적인 운영체제
프로세스와 어플리케이션이 긴밀한 관계가 있고
커널이 전체적인 관리를 담당한다.
별다른 매개체 없이 시스템 함수를 호출하는 등의 작업을 할 수 있다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
프로세스
커널(OS)
Application
일반적인 운영체제
프로세스와 어플리케이션이 긴밀한 관계가 있고
커널이 전체적인 관리를 담당한다.
별다른 매개체 없이 시스템 함수를 호출하는 등의 작업을 할 수 있다.
프로세스
커널(OS)
Application
안드로이드 운영체제
프로세스와 어플리케이션이 따로 있다.
그렇기 때문에 어플리케이션 관련 정보의 관리는
커널이 아닌
ActivityManagerServic 라는 곳에서 어플리케이션을 관리한다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
프로세스
커널(OS)
Application
안드로이드 운영체제
프로세스와 어플리케이션이 따로 있다.
그렇기 때문에 어플리케이션 관련 정보의 관리는
커널이 아닌
ActivityManagerServic 라는 곳에서 어플리케이션을 관리한다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
Context는
자신이 어떤 어플리케이션을 나타내고 있는지 알려주는 ID 역할
ActivityManagerService 에 접근할 수 있도록 하는 통로 역할
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
다시 비유를 해보자.
일반 OS 에서 어플리케이션은 곧 Process 이다.
특정 어플리케이션이 OS 에게 내가 어떤 Process 인지만 알려주면 어플리케이션 관련된
정보를 얼마든지 획득 할 수 있습니다.
이른바 자신의 존재 자체가 자신임을 증명해주는 '지문인식' 혹은 '홍채인식' 등의 '생체인식' 과
비슷한 개념이기 때문에 Context 와 같은 애매한 중간 매개체가 존재할 이유가 없습니다.
하지만 안드로이드에서는 '생체인식' 보다는 'ID카드' 를 통한 보안 시스템과 유사한 구조입니다.
특정 어플리케이션이 자신이 본인임을 확인 받을 수 있는 방법은 자신이 작동중인 Process 를
보여주는 것이 아니라, 자신이 건네 받은 ID카드를 제시하는 것 입니다.
이 때 ID카드의 역할을 수행하는 것이 바로 Context 이고, 당연히 이 카드는 위변조가 가능하기 때문에,
자신의 권한을 제 3의 어플리케이션에게 넘겨주는 PendingIntent와 같은 기능도 가능해집니다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
Context에도 종류가 있다?
Application Context
Activity Context
Service Context
BroadcastReceiver Context
Context 는 어플리케이션이 시작될 때는 물론이요,
어플리케이션 컴포넌트들이 생성될 때 마다 태어난다.
물론, 새롭게 생성되는 Context 들이 부모와 완전히
독립되어 있는 존재는 아니고 '거의' 비슷한 내용을 담고 있습니다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
ContentProvider Context
어떤 Context를
언제 어떻게 사용해야하나?
출처 : KMSHACK님의 블로그( http://www.kmshack.kr/2013/10/android-context-what-context/ )

More Related Content

Viewers also liked

02 realm 모델 & 관계
02   realm 모델 & 관계02   realm 모델 & 관계
02 realm 모델 & 관계Lee-Jong-Chan
 
간단한 회원가입 형태 만들기
간단한 회원가입 형태 만들기간단한 회원가입 형태 만들기
간단한 회원가입 형태 만들기Lee-Jong-Chan
 
03 realm 쓰기 & 질의
03   realm 쓰기 & 질의03   realm 쓰기 & 질의
03 realm 쓰기 & 질의Lee-Jong-Chan
 
T아카데미 aws 수강 리뷰
T아카데미 aws 수강 리뷰T아카데미 aws 수강 리뷰
T아카데미 aws 수강 리뷰Lee-Jong-Chan
 
Realm 코딩카페 - 이종찬
Realm   코딩카페 - 이종찬Realm   코딩카페 - 이종찬
Realm 코딩카페 - 이종찬Lee-Jong-Chan
 
Realm: 초고속 데이터베이스
Realm: 초고속 데이터베이스Realm: 초고속 데이터베이스
Realm: 초고속 데이터베이스Leonardo YongUk Kim
 
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?Leonardo YongUk Kim
 

Viewers also liked (8)

02 realm 모델 & 관계
02   realm 모델 & 관계02   realm 모델 & 관계
02 realm 모델 & 관계
 
간단한 회원가입 형태 만들기
간단한 회원가입 형태 만들기간단한 회원가입 형태 만들기
간단한 회원가입 형태 만들기
 
03 realm 쓰기 & 질의
03   realm 쓰기 & 질의03   realm 쓰기 & 질의
03 realm 쓰기 & 질의
 
Realm시작하기
Realm시작하기Realm시작하기
Realm시작하기
 
T아카데미 aws 수강 리뷰
T아카데미 aws 수강 리뷰T아카데미 aws 수강 리뷰
T아카데미 aws 수강 리뷰
 
Realm 코딩카페 - 이종찬
Realm   코딩카페 - 이종찬Realm   코딩카페 - 이종찬
Realm 코딩카페 - 이종찬
 
Realm: 초고속 데이터베이스
Realm: 초고속 데이터베이스Realm: 초고속 데이터베이스
Realm: 초고속 데이터베이스
 
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
 

Similar to Context

[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본Lee Sang-Ho
 
React native development
React native developmentReact native development
React native developmentSangSun Park
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장Seongchan Kang
 
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수Amazon Web Services Korea
 
프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)Devgear
 
PWA (Progressive Web Apps)
PWA (Progressive Web Apps)PWA (Progressive Web Apps)
PWA (Progressive Web Apps)유 성민
 
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게Sungju Jin
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?유명환 FunFun Yoo
 
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트 :: IoT Convergence Conference 2015
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트 :: IoT Convergence Conference 2015Amazon Web Services Korea
 
소프트웨어설계론
소프트웨어설계론소프트웨어설계론
소프트웨어설계론JeongDong Kim
 
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발LGU+
 
IBM 보안솔루션 앱스캔_AppScan Standard 소개
IBM 보안솔루션 앱스캔_AppScan Standard 소개IBM 보안솔루션 앱스캔_AppScan Standard 소개
IBM 보안솔루션 앱스캔_AppScan Standard 소개은옥 조
 
CRUD Pattern in Ajax
CRUD Pattern in AjaxCRUD Pattern in Ajax
CRUD Pattern in AjaxRhio Kim
 
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)Amazon Web Services Korea
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13hungrok
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationDonghyun Seo
 
IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나 IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나 Amazon Web Services Korea
 
20150724 제10회 부산 모바일 포럼 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화
20150724 제10회 부산 모바일 포럼 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화20150724 제10회 부산 모바일 포럼 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화
20150724 제10회 부산 모바일 포럼 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화Amazon Web Services Korea
 
2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...
2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...
2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...Amazon Web Services Korea
 

Similar to Context (20)

[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
 
React native development
React native developmentReact native development
React native development
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장
 
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
 
프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)
 
PWA (Progressive Web Apps)
PWA (Progressive Web Apps)PWA (Progressive Web Apps)
PWA (Progressive Web Apps)
 
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?
 
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트 :: IoT Convergence Conference 2015
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트  :: IoT Convergence Conference 2015
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트 :: IoT Convergence Conference 2015
 
소프트웨어설계론
소프트웨어설계론소프트웨어설계론
소프트웨어설계론
 
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 
IBM 보안솔루션 앱스캔_AppScan Standard 소개
IBM 보안솔루션 앱스캔_AppScan Standard 소개IBM 보안솔루션 앱스캔_AppScan Standard 소개
IBM 보안솔루션 앱스캔_AppScan Standard 소개
 
CRUD Pattern in Ajax
CRUD Pattern in AjaxCRUD Pattern in Ajax
CRUD Pattern in Ajax
 
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나 IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
 
20150724 제10회 부산 모바일 포럼 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화
20150724 제10회 부산 모바일 포럼 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화20150724 제10회 부산 모바일 포럼 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화
20150724 제10회 부산 모바일 포럼 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화
 
2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...
2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...
2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...
 

Context

  • 2.
  • 3. 사용 되는 곳은 많다. 그렇다면 Context란 무엇인가?
  • 4. Window 에서의 마우스 오른쪽 클릭을 하면? 같은 종류의 폴더(또는 파일)에 오른쪽 클릭 메뉴에 나오는 항목들은 같다 [속성]을 들어가 보자.
  • 5. 구성은 같지만 세부 내용이 다르다. 이를 보고 구별할 수 있다.
  • 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 를 호출 할 수도 있다.
  • 9. Context 왜 필요 할까? 여기서 아주 조금 있는 운영체제 지식을 꺼내보면……
  • 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
  • 18. 어떤 Context를 언제 어떻게 사용해야하나?
  • 19. 출처 : KMSHACK님의 블로그( http://www.kmshack.kr/2013/10/android-context-what-context/ )