65
“ 구구구 구구구구구 구구구구구” 4 구 구구 구구 구구구구구 구구구구구 구구구구구구구 구구구구 구구구

“ 구글의 안드로이드 프로그래밍 ” 4 강 요약 정리

  • Upload
    seanna

  • View
    204

  • Download
    0

Embed Size (px)

DESCRIPTION

“ 구글의 안드로이드 프로그래밍 ” 4 강 요약 정리. 서강대학교 게임교육원 게임소프트웨어 개발학과 김성애. Chapter 04. 애플리케이션의 구조와 사용자 인터페이스. 02. Intent receiver Service Content provider. 01. ACTIVITY. 03. 프로세스 라이프 사이클. 07. 후킹 , 이벤트 , 테마. 04. 화면 구성 요소들의 계층구조. 05. 레이아웃 객체. 06. XML 을 이용한 화면 디자인. Chapter 04. - PowerPoint PPT Presentation

Citation preview

Page 1: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

“ 구글의 안드로이드 프로그래밍” 4 강 요약 정리

서강대학교 게임교육원 게임소프트웨어 개발학과 김성애

Page 2: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 3: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

01. ACTIVITY

Page 4: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY

ACTIVITY 란 윈도우 OS 의 ‘윈도우’와 같은

애플리케이션의 화면을 칭한다 . 윈도우 OS 처럼 안드로이드 애플리케이션도

여러 개의 ACTIVITY 를 가질 수 있다 .

Page 5: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY

SYSTEMACTIVITY

USER

ACTIVITY 는 UI COMPONET 를 화면에

표시하고

시스템 , 유저와 프로세싱 한다 .

Page 6: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY

새로운 화면이 열리면 이전화면은

히스토리 스택 [Task stack] 에

저장된다 .

Page 7: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

액티비티 생성

Page 8: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

onCreate()

액티비티가 생성될 때

처음 호출되는 메소드 .리소스를 초기화한다 .

Page 9: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

onStart()

ACTIVITY 가 사용자에게

보여줄 준비가 되었을

때 호출된다 .

Page 10: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

onResume()

ACTIVITY STACK 의

맨 위에 있다 . 사용자의 입력처리가

가능할 때 호출된다 .

Page 11: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

액티비티 활성화

Page 12: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

다른 액티비티가

위로 올 경우

Page 13: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

onPause()

데이터의 저장 , 애니메이션의 중지 ,CPU 소비 중단 수행 .이전 액티비티가

Resume 되기 전 호출

된다 .

Page 14: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

액티비티가 최상위로

온다 .

Page 15: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

액티비티가 화면에

보이지 않을 경우

Page 16: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

onStop()

액티비티가 스택의

최상위에 있지 않으므로

보여지지 않는다 .

Page 17: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

Stop 된 ACTIVITY 가

다시 최상위 화면으로

올 경우

Page 18: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

onRestart()

ACTIVITY 가 멈췄을

경우에 재시작하고자

할 때 호출된다 .

Page 19: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

onDestroy()

호출되면 ACTIVITY 를

파기한다 .

Page 20: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

다른 어플리케이션에서

메모리가 필요할 때

Page 21: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

프로세스가 종료된다 .

Page 22: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + 액티비티 라이프 사이클

유저가 해당

ACTIVITY 로

돌아가고자 할 때

Page 23: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

01. ACTIVITY + INTENT

ACTIVITY ACTIVITYintent

INTENT 란 안드로이드에서 화면과 화면사이를

이동할 때 쓰는 클래스로 어플리케이션이 해야

하는 정보가 담겨있다 .

ACTIVITY

Page 24: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

01. ACTIVITY

Page 25: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 26: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

02. Intent receiver, Service, Content provider

Page 27: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

02. Intent receiver, Service, Content provider

INTENT Receiver 란 네트워크 접속의 활성화나

전화가 걸려오는 등 외부에서 이벤트가 발생했을

때 처리하기 위해 사용된다 . Notification Manager 를 이용해서 사용자에게

어떤 일이 발생했는지를 알려준다 .

Page 28: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

02. Intent receiver, Service, Content provider

ACTIVITY

SER-

VICE

ACTIVITY ACTIVITY

Service 는 화면으로 보여지는 것과 상관 없이

오랫동안 존재하면서 실행되는 코드이다 . Activity 의 Context.startService() 문장을

실행하면 해당 서비스를 멈출 때까지 Service 로

실행한다 .

Page 29: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

02. Intent receiver, Service, Content provider

APPLICATION APPLICATION

Data Sharing

Content Provider 클래스를 이용하면 애플리케이션에서 SQLite 데이터베이스에 저장하지 않고 데이터를 저장하거나 다른 애플리케이션과 데이터를 공유할 수 있다 .

Page 30: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 31: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 32: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

03. 프로세스 라이프 사이클

FOREGROUND ACTIVITY

VISIBLE ACTIVITY

BACKGROUND ACTIVITY

사용자가 현재 조작중인

최상위 화면의 ACTIVITY.가장 중요한 프로세스로

메모리가 부족해도 가장

마지막에 제거된다 . EMPTY PROCESS

Page 33: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

03. 프로세스 라이프 사이클

FOREGROUND ACTIVITY

VISIBLE ACTIVITY

BACKGROUND ACTIVITY

사용자 화면에는 보여지지만

최상위화면이 아닌 화면 . FOREGROUND ACTIVITY다음으로 중요하다 .

EMPTY PROCESS

Page 34: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

03. 프로세스 라이프 사이클

FOREGROUND ACTIVITY

VISIBLE ACTIVITY

BACKGROUND ACTIVITY

사용자에게 보여지지 않고

멈춘 화면 . 상위 , 차상위

프로세스가 메모리 요구 시

제거된다 .

EMPTY PROCESS

Page 35: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

03. 프로세스 라이프 사이클

FOREGROUND ACTIVITY

VISIBLE ACTIVITY

BACKGROUND ACTIVITY

Service, BroadcastRe-ceiver클래스와 같이 ACTIVITY 도

없고

애플리케이션 컴포넌트도

없는

것을 EMPTY PROCESS 라고

한다 . 메모리가 부족해지면

시스템에 의해 즉시 제거된다 .

EMPTY PROCESS

Page 36: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 37: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 38: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

04. 화면 구성 요소들의 계층구조

View 클래스는 직사각형 형태의

레이아웃과 각종 정보를

저장하는 자료구조이다 .화면의 크기 , 레이아웃 , 그리

기 , 포커스 변화 , 스크롤링과 키

처리 등을 위해 사용된다 .

VIEW

+ View

Page 39: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

VIEW

04. 화면 구성 요소들의 계층구조

ViewGroup 은 다양한 형태의

View 들의 집합이다 . ViewGroup 은 View 안에 또

다른 View 를 포함하는

구조적 형태를 지원한다 . VIEW VIEW

VIEW VIEW

+ ViewGroup

Page 40: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

04. 화면 구성 요소들의 계층구조

안드로이드에서는 Activity 의 UI 를 View 와

ViewGroup 의 트리구조를 이용하여 구성한다 .각 ViewGroup 은 가용 공간 계산 후 하위의 View를 배치한다 .

+ 트리구조의 사용자 인터페이스

Page 41: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

04. 화면 구성 요소들의 계층구조+ LayoutParams

LayoutParams 의 서브

클래스는

뷰 객체들을 어떻게 그려야

하는 지에 대한 정보를 부모

객체에게 알려준다 . 각 하위 요소들은 부모의

속성에 맞는 LayoutParams를 정의해야 한다 . 모든

뷰그룹은 가로 , 세로 , 여백 , 테두리 속성을 가지고 있다 .

Page 42: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

04. 화면 구성 요소들의 계층구조

-WRAP_CONTENT 콘텐츠를 표시하는 데

필요한 최소한의

크기로

그린다 .

+ LayoutParams

WRAP_CONTENT FILL_PARENT

-FILL_PARENT부모 객체와의 패딩

( 여백 )을 제외한 나머지 모든

공간을 차지한다 .

Page 43: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 44: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 45: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

05. 레이아웃 객체+ FrameLayout

가장 단순한 레이아웃 객체로 , 모든

객체들이 화면의 왼쪽 위를 기준으로

그려진다 . 기준점을 설정할 수 없으며 특정

객체를 그린 후 다른 객체를 그리면

먼저 그린 객체는 가려진 만큼

지워진다 .

Page 46: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

05. 레이아웃 객체+ LinearLayout

LinearLayout 은 모든 하위

구성요소를

수직 , 수평 형태 중 하나로 정렬하여

그리는 형식이다 . 하위 구성 요소들 간의 마진과 정렬 , 가중치값을 지정할 수 있다 .

LinearLayout

Click to addName

Comments

Page 47: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

05. 레이아웃 객체+ LinearLayout

가중치 값은 화면

구성 요소들이 남는

공간을 어떻게

활용할지 결정하는

값으로 , 가중치값이

다르면 남는 공간을

가중치 비율별로

배분한다 .

LinearLayout

Click to addName

Comments

LinearLayout

Click to addName

Comments

가중치 기본 값이 전부 0 일

Comments 에 가중치 값을

1 로 주었을 경우

Page 48: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

05. 레이아웃 객체+ TableLayout

TableLayout 에서는

테이블의 행과 열을

기준으로 하위

구성요소들을 배치한

다 . TableLayout 컨테이너는 테두리

라인을 표시하지 않는

다 .

5:57 PMGViews/Layouts/TableLayout/Ex 4

Open…Save As… Ctrl-Shift-S

Ctrl-O

Page 49: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

05. 레이아웃 객체+ AbsoluteLayout

AbsoluteLayout 에서는 하위

구성 요소들을 화면에 표시하기

위해서 x,y 좌표를 직접

설정해주어야 한다 . 좌측상단을 기준으로 (0,0) 이나

서로 다른 단말기 환경에서는

예상과 다르게 그려질 수 있기

때문에 가급적 사용하지 않는다 .

AbsoluteLayout

Click to addName

Comments

(0,0)(x1,y1)

(x2,y2)

(xn,yn)

Page 50: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

05. 레이아웃 객체+ RelativeLayout

RelativeLayout 에서는 하위 구성 요소들이 다른 구성

요소의 상대적인 위치에 그려진다 .

Views/Layouts/RelativeLayout/Example

Can-cel OK

Type here:

Page 51: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

05. 레이아웃 객체+ RelativeLayout

Views/Layouts/RelativeLayout/Example

Can-cel OK

Type here:

Button•Width : wrap_content•Height : wrap_content•toLeft : “okButton”•alignTop : “okButton”•Text : “Cancel”

Button•ID : okButton•Width : wrap_content•Height : wrap_content•Below : “textEntry”•alignParentRight : true•marginLeft : 10•Text : “OK”

RelativeLayout•Width : fill_parent•Height : wrap_content•Background : gray•Padding : 10

EditText•ID : textEntry•Width : fill_parent•Height : wrap_content•Below : “label1”

TextView•ID : label1•Width : fill_parent•height: wrap_content•Text : Type here:

Page 52: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 53: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 54: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

06. XML 을 이용한 화면 디자인

화면 디자인을 하드 코딩하는 번거로운

작업을 피하기 위해 화면디자인을 XML파일로 표현하고 프로그램 소스와 분리하여

작업한다 . 안드로이드 GUI 클래스와 일치하는 태그로

구성되며 , 각 클래스들의 메소드와 대부분

유사한 속성을 가지고 있다 . 이러한 태그를 엘리먼트라고 하며 , 엘리먼트의 속성들은 클래스의 메소드와

유사한 개념이다 .

<?xml version = “1.0” encoding = “utf-8”?><!– Demonstrate using a relative layout to create a form --> <RelativeLayout xmlns:android = “http://schemas. android.com/apk/res/android android:layout_width = “fill_parent” android:layout_height = “wrap_content” android:padding = “10px” >

<TextView android:id = “@+id/label” android:layout_width android:layou andro

Page 55: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

06. XML 을 이용한 화면 디자인

TextView, EditText, Button, Button엘리먼트들의 나열 및 설정을 통해 화면

디자인 .

Views/Layouts/RelativeLayout/Example

Can-cel

Type here:

OK

Page 56: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

06. XML 을 이용한 화면 디자인

<?xml version=“1.0”encoding=“utf-8”?><!-- Demonstrates using a relative layout to create a form --><RelativeLayout xmlns:android=“http://schema.android.com/apk/res/android

android:layout_width = “fill_parent”android:layout_height= “wrap_content”android:padding = “10px”>

<TextView android:id=“@+id/label”android:layout_width=“fill_parent”android:layout_height= “wrap_content”android:backgroud=“@android:drawable/editbox_backgroud”android:layout_below=“@id/label”/>

<EditText id=“@+id/entry”android:layout_width=“fill_parent”android:layout_height=“wrap_content”android:backgroud=“@android:drawable/editbox_backgroud”android:layout_below=“@id/label”/>

Page 57: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

06. XML 을 이용한 화면 디자인

<Button id=“@+id/ok”android:layout_width=“wrap_content”android:layout_height=“wrap_content”android:layout_below=“@id/entry”android:layout_alignParentRight=“true”android:layout_marginLeft=“10px”android:text=“OK”/>

<Button android:layout_width=“wrap_content”android:layout_height=“wrap_content”android:layout_toLeftOf=“@id/ok”android:layout_alignTop=“@id/ok”android:text=“Cancel”/>

<RelativeLayout>

Page 58: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 59: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

Chapter 04 애플리케이션의 구조와 사용자 인터페이스

01. ACTIVITY02. Intent receiver Service Content provider

03. 프로세스 라이프 사이클

04. 화면 구성 요소들의 계층구조

05. 레이아웃 객체

06. XML 을 이용한 화면 디자인

07. 후킹 , 이벤트 , 테마

Page 60: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

07. 후킹 , 이벤트 , 테마

Page 61: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

07. 후킹 , 이벤트 , 테마

화면을 구성하는 xml 파일 내의 엘리먼트를 자주 접근해야 하기 때문에

애플리케이션 실행중에 텍스트 박스의 내용을 변경하려면 프로그램소스에서

접근해야 한다 . <TextView android:id=“@+id/label”

android:layout_width=“fill_parent”android:layout_height= “wrap_content”android:backgroud=“@android:drawable/editbox_backgroud”android:layout_below=“@id/label”/>

Label 아이디가 가리키는 엘리먼트의 주소는 R 클래스에 기록된다 . R 클래스를 살펴보면 엘리먼트를 구할 수 있다 .

안드로이드에서 특정 엘리먼트를 검색하는 것을 ‘후킹 (hooking)’ 이라고 한다 . 엘리먼트를 검색하는 것은 엘리먼트의 핸들을 얻는 것으로 Activity.findView-ById() 메소드를 호출해 화면 엘리먼트의 핸들을 얻는다 .

Page 62: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

07. 후킹 , 이벤트 , 테마

Public class SendResult extends Activity{ protected void onCreate(Bundle savedValue){

…//Listen for button clicks.Button button =

(Button)findViewById(R.id.corky);button.setonClickListner(mCorkyListener);

}//Create an anonymous class to act as a button click list-ner.Private onClickListener mCorkyListener = new OnClickLis-tener() { public void onClick(View v) {

Intent data = new Intent();Data.setAction(“Corky!”);setResult(RESULT_OK, data);finish();

}};

사용자 인터페이스를 위한

이벤트 처리 메소드는

외부에 노출되어 있다 . 그러나 버튼과 같은 몇몇

컴포넌트들은 이벤트 처리

메소드가 별도로 제공되지

않기 때문에 왼쪽과 같이

콜백 (callback) 메소드를

수동으로 등록해야 이벤트를

처리할 수 있다 .

Page 63: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

07. 후킹 , 이벤트 , 테마

<!-- AndroidManifest.xml --><manifest xmlns:android = http://schemas.an-droid.com/apk/res/android package = “com.android.home”> <application android:theme = “android:style/Theme_Black”>

<activity class = “.Home”…

</activity> </application></manifest>protected void onCreate(Bundle icicle) { super.onCreate(icicle);

… setTheme(android.R.style.Theme_Light); setContentView(R.layout.linear_layout_3);}

5:57 PMGHello, Android

Hello World, HelloAndroid

테마는 애플리케이션의 전체적인 분위기를 설정한다 . 테마를 설정하려면 ‘ AndroidMani-fest.xml’ 파일을 수정해야 한다 .

// 하드코딩을 통해 테마적용

Page 64: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

이미지 출처

https://people.chem.umass.edu/wiki/imageshttp://androidkr.blogspot.com/2009/03/android-activity-task.html

Page 65: “ 구글의 안드로이드  프로그래밍 ”  4 강 요약 정리

감사합니다 .