Data : 2011-09-21 조원 : 손정일 김태양 Unlocking android chapter.4 Intent&Service.

Slides:



Advertisements
Similar presentations
All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 Version1.0 Authorubivelox Date21-Feb
Advertisements

Information Security 경기대학교 김희열. Cloud Computing Security 보안 관련 뉴스.
03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Unlocking Android 인텐트 (Intent) 2 Unlocking Android 인텐트 클래스 활용 3.
학교안전7대 표준안 편성 운영 광주수창초등학교 교사 김용현.
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
Vision System Lab, Sang-Hun Han
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
11장. 기본 API 클래스.
2017년 스타트Up-청년취Up 매칭사업 개요 □ 사업목적 □ 지원내용 □ 청년인재 정의 □ 스타트업 정의
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
제1강 안드로이드 특징과 개발환경 구축 안드로이드 앱 개발 강좌.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
명품 JAVA Essential.
Kasimov C언어 세미나 1st.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
Intent.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
Java Programming Language (4)
네이버 지식iN 마을변호사 활동 가이드 NHN㈜ 제휴협력실 서비스제휴팀 / 지식iN 서비스팀 #. 외부 배포용
명품 Java Programming.
제 2 장 변수와 상수.
Intent.
[Homework #2] Chapter 5 Chapter 6 Page 110, 문제 13 – 피라미드 높이 구하는 문제
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
안전한 생활 교과용도서의 이해 2015 개정 교육과정 초등학교 1~2학년군 (화)
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
2017년 1학기 국가근로장학금 장학생 교육 1.
DataScience Lab. 박사과정 김희찬 (월)
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
CHAP 13. 서비스와 방송 수신자.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
안드로이드 서비스.
학습목표 Chapter 2-1. 변수와 포인터 변수의 선언과 변수에 대한 메모리 할당을 살펴본다.
7강. 객체지향 프로그램의 본질 메소드 프로그래밍의 한계 객체의 개념 및 클래스의 이해
C 프로그래밍 기초.
Communication 활성화 관련 외부자료 요약
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
어린이집.
자바 5.0 프로그래밍.
포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab..
타인을 내편으로 만드는 12가지 방법 고객서비스팀.
한양인 주차정기권 신청 안내 2018년 2학기 관리처 관재팀.
안드로이드 앱 분석 팀 기반의 설계 프로젝트 박민재
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.
3주차: Control Flow and Others
Spring, 2019 School of CSE Pusan National University
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
코 칭 결 과 센 터 구성센터 (모바일) 코칭대상 프로 (엔지니어) 코칭일시
Choi Younghwan CSE HUFS
자바 가상 머신 프로그래밍 Chapter 3. 메소드 작성하기 Pslab 오민경.
Presentation transcript:

Data : 조원 : 손정일 김태양 Unlocking android chapter.4 Intent&Service

Intent 의 정의 구성 Action – Action 을 가리키는 공인된 문자열 ( 예 : android:intent.action.main) Category – 인텐트에 대한 추가 메타 데이터 Data – URI 형태로 표현되는 작업을 위한 데이터 추가 엘리먼트 Extras – 추가 데이터를 번들 형태의 인텐트로 전달 Component – 인텐트, 옵션, 타입, 그리고 카테고리를 사용하기 위한 명시적 패키지와 클래스 지정 Type – 명시적인 MIME 타입 지정 2

Intent 호출 예제 3 웹 메뉴 항목 설정 지도 메뉴 항목 설정

Intent 호출 예제 4 전화 메뉴 설정

Intent 의 정의 Intent 를 호출하는 두 가지 방법 묵시적 인텐트 (Implicit Intent) 호출 어떤 컴포넌트를 수행시키는 것을 플랫폼이 결정 Action, data, category 를 사용한 Intent resolution 명시적 인텐트 (Explicit Intent) 호출 코드에서 직접 처리할 컴포넌트를 지정 리시버의 특정 클래스 또는 컴포넌트 네임을 통해서 수행 5

Intent resolution 묵시적 인텐트 (Implicit Intent) 의 URI 를 분석하여 지 연 처리 (late binding) Activity, broadcast receiver, service 는 인텐트 핸들러로 등록 가능 인텐트와 인텐트 필터가 대응 액션과 데이터는 대응 관계를 갖는다 특수한 경우 데이터 타입이 대응되거나, 데이터 스키 마, 권한, 그리고 경로의 조합이 대응된다 6

Intent resolution 7 액션 (Action) 과 카테고리 (Category) 문자열 오브젝트 카테고리만 있는 인텐트 필터는 어떠한 액션과도 대 응 가능 액션만 있는 인텐트 필터는 카테고리가 반드시 없는 인텐트만 대응 가능

Intent resolution 8 데이터 (DATA) 액션과 카테고리가 결정된 다음에 사용 MIME 타입, 스키마, 권한 (authority), 경로의 조합으로 구성 ex. content://com.google.provider.NotePad/notes (MIME) ex. Weather://com.msi.manning/loc?zip=12345 ( 그 외 ) 대응 관계 스키마가 존재하고 타입이 존재하지 않으면 인텐트는 어떤 타입 과도 대응 타입이 존재하고 스키마가 존재하지 않으면 인텐트는 어떤 스키 마와도 대응 스키마와 타입이 모두 존재하지 않는다면 인텐트는 스키마나 타 입 중 어떤 것과도 대응되지 않음 권한이 지정되었다면 스키마 또한 반드시 지정 경로가 지정되었다면, 스키마와 권한 또한 반드시 지정

사용자 정의 URI 매칭 9 인텐트 필터 설정 리시버 설정 서비스 정의 퍼미션 설정

사용자 정의 URI 매칭 10

안드로이드 제공 액티비티 11 ActionUri 설명 Intent.ACTION_VIEWgeo:latitude,longitude 지정된 경도와 위도 위치로 지도 프로그램 을 실행 한다. Intent.ACTION_VIEWgeo:0,0?q=street+address 특정 주소로 지도 프로그램을 실행한다. Intent.ACTION_CALLtel:phone_numbe 전화 프로그램을 실행하여 해당 번호로 전 화를 건다. Intent.ACTION_DIALtel:phone_number 전화 프로그램을 실행하고 해당 번호를 누 른다.( 전화를 걸지는 않는다 ) Intent.ACTION_DIALvoic 전화 프로그램을 실행하고 해당 보이스메일 (voic ) 번호를 누른다.( 전화를 걸지는 않 는다 ) Intent.ACTION_VIEWhttp://web_address 해당 URL 로 웹 브라우저를 실행한다. Intent.ACTION_VIEWhttps://web_address 해당 URL 로 웹 브라우저를 실행한다.( 보안 프로토콜 ) Intent.ACTION_WEB_SEARCHplain_text 구글 검색 페이지를 연다

브로드캐스트 리시버 사용한 리스닝 ( 수신대기 ) 인텐트 개념의 오버로딩 12 메서드메서드내용 sendBroadcast(Intent intent) 인텐트를 브로드 캐스팅하기 위한 기본 형식 sendBroadcast(Intent intent, String receiverPermission) 브로드캐스트 수신을 위해 리시버들이 반드시 선언해야 하는 퍼미션 문자열과 함께 인텐트를 브로드캐스팅한다. sendStickyBroadcast(Intent intent) 브로드캐스팅된 뒤 일정기간 동안 수신자들이 데이터를 검색할 수 있 게 한다. 이 기능을 사용하기 위해서는 반드시 ‘BROADCAST_STICKY’ 퍼 미션을 사용하여 선언 해야 한다. sendOrderedBroadcast(Intent intent, String receiverPermission) 인텐트를 브로드캐스팅하여 리시버들을 차례로 호출한다. sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) 인텐트를 브로드캐스팅한 후 ‘BroadcastReceiver’ 로부터 리턴 값을 얻을 수 있다. 모든 리시버들은 ‘BroadcastReceiver’ 리턴 시에 데이터를 추가하 여 보낼 수 있다. 이 메서드를 사용할 때에는 리시버들은 순서대로 호 출 된다.

브로드캐스트 리시버 사용한 리스닝 ( 수신대기 ) 13 브로드캐스트 액션 액션 (Action) 설명 ACTION_TIME_TICK 매 분마다 현재 시간을 전송 ACTION_TIME_CHANGED 사용하는 기기의 시간이 변경되었을 때 ACTION_TIMEZONE_CHANGED 사용하는 기기의 타임 존이 변경되었을 때 ACTION_BOOT_COMPLETED 플랫폼이 부팅을 완료 했을 때 ACTION_PACKAGE_ADDED 플랫폼에 새로운 패키지가 추가 되었을 때 ACTION_PACKAGE_REMOVED 플랫폼에서 패키지가 삭제 되었을 때 ACTION_BATTERY_CHANGED 사용중인 장비의 배터리 레벨이나 상태변화가 생 겼을 때

브로드캐스트 리시버 사용한 리스닝 ( 수신대기 ) 리시버 (Receiver) 생성 목적 항상 백그라운드에서 실행 되어야 하기 때문에 실행되는 순간부터 서비스를 시작해야 한다 BOOT_COMPLETED 인텐트 브로드캐스트의 수신이 가능해야 한다. 기능 결과 코드를 수신하고 결과 데이터와 기타 번들 형태의 데이터로 설정할 수 있는 메서드를 제공 14

서비스 서비스의 목적 백그라운드 작업을 수행 사용자 인터페이스를 사용하지 않는 프로세스 IPC(Inter-Process Communication) 원격접속 가능한 오브젝트를 만들어내는 것 프로세스가 협업 15

백그라운드 서비스 생성 16 Service Class 확장 NotificationManager 설정 ‘WeatherReporter’ 로 콜백되는 인텐트를 가진 Notification 이 실행

IPC 서로 다른 프로세스들에 포함된 애플리케이션 컴포 넌트 간의 커뮤니케이션이 가능 안드로이드 인터페이스 정의언어 (AIDL) 17

IPC 18 AIDL 에서 사용 가능한 타입들 TYPE 설명 Import 필요여부 Java primitives boolean, byte, short, int, float, double, long, char No Stringjava.lang.StringNo CharSequencejava.lang.CharSequenceNo List 반드시 IDL 에서 허용한 타입들만 사용. ArrayLi st 로 구현 No Map 반드시 IDL 에서 허용한 타입들만 사용. HashM ap 형태로 구현 No Other AIDL interfaces 기타 AIDL 인터페이스 타입으로 만들어진 모든 것 Yes Parcelable objects 안드로이드 Parcelable 인터페이스를 구현한 오브젝트들 Yes

IPC 원격 인터페이스 Publishing 19 원격 인터페이스 구현 Ibinder 리턴

IPC 서비스 바인딩 액티비티에 의해 bindService 가 호출되면 ServiceConnection 오브젝트는 여러 콜백들을 서비스로 부터 액티비티에 반환 콜백은 onServiceConnected(ComponentName ClassName, IBinder binder) 메서드 형태로 발생 플랫폼에서는 IBinder 타입의 onBind 결과를 onServiceConnected 메서드로 넘겨서 호출자로 하여금 사용을 가능하게 함 20

IPC 21 서비스 바인딩 서비스에 대한 바인딩이 해제 되었을 때 콜백 처리 원격 인터페이스 생성 서비스가 바인딩 되었을 때 콜백 처리 원격 인터페이스 변수 정의

IPC 22 서비스 바인딩 바인딩 수행 바인딩 해제 원격 객체 사용

IPC 서비스 바인딩 절차 [INTERFACE_NAME].aidl 의 형태로 인터페이스 정의.aidl 파일에 필요한 자바 인터페이스 생성 ( 이클립스 에서는 자동으로 생성됨 ) 생성한 [INTERFACE_NAME].stub 클래스를 확장하여 인 터페이스 메서드 구현 onBind() 메서드를 사용하여 클라이언트에 인터페이스 노출 ServiceConnection 으로 서비스를 바인딩하여 원격접속 가능한 오브젝트의 핸들을 얻고 사용 23

IPC 서비스 라이프사이클 24

IPC Binder 와 Parcelable IPC 를 가능하게 하는 IBinder 와 Binder 의 핵심은 IBinder.transact 와 Binder.onTransact 메서드 AIDL 을 사용하여 정의한 메서드는 트랜잭션 처리를 통해 동기적으로 처리 AIDL 로 정의한 인터페이스 메서드들을 통해서 보내고 받 는 모든 오브젝트들은 트랜잭트 (transact) 사용 전달되는 오브젝트들은 바인더 트랜잭트 메서드에서 로컬 / 원격 프로세스의 경계를 넘어 데이터를 보내기 위해 반드 시 파서러블 (Parcelable) 형태로 처리되어야 함 AIDL 이 지원하는 타입 이외의 데이터 처리를 위해서는 파 서러블 구현이 요구됨 25

Q&A 26