ch02. 첫 번째 예제

Download Report

Transcript ch02. 첫 번째 예제

첫 번째 예제

안드로이드 프로그래밍 정복(Android Programming Complete Guide)

Contents

 학습목표 

예제를 통하여 Android 개발 과정과 프로젝트 관리 방법을 이해한다.

 내용 

프로젝트 실행

프로젝트 구성

실습 준비

샘플 예제

배포 예제

2/20

1. 프로젝트 실행

새 프로젝트 생성

 [

File – New – Project

] • • • • 프로젝트의 골격을 만들어주는 마 법사가 실행된다.

이클립스로 생성 가능한 프로젝트 의 종류가 나열된다.

앞장에서

ADT

플러그인을 설치하 였으므로 [

Android – Android Project

] 선택 시 안드로이드 프로 젝트 마법사가 실행된다.

같은 종류의 프로젝트를 반복 생성 시 이클립스에서 [ 가능하다.

File

-

New

] 메뉴 하단에 Android Project 항목을 자 동으로 표시하며, 이후 마법사 선택 대화상자를 거치지 않고 바로 생성 3/20

1. 프로젝트 실행

프로젝트 정보 입력

Project name

• 생성할 프로젝트 이름 • 프로젝트를 저장하는 폴더명으로 사용됨 

Contents

• 새로운 프로젝트 or 기존의 소스를 참고하여 프 로젝트를 생성 

Build Target

• Android 버전 선택 • 설치된 SDK 종류에 따라 지원가능 목록 변경 

Properties

• Application name : 응용 프로그램 자체의 이름 • Package name : 프로젝트에서 생성하는 클래스가 저장될 패키지 이름 • Create Activity : 액티비티 생성 • Min SDK Version : 응용 프로그램이 지원하는 최소한의 SDK 버전 4/20

1. 프로젝트 실행

실행 설정

 마법사가 만들어준 프로젝트는 안드로이드가 요구하는 기본 코드와 리소스를 모두 포함 하고 있으므로 그 자체로 이미 실행 가능하다.

 메뉴에서 [

Run

Run

( + ) ] 명령 선택  안드로이드 응용 프로그램이므로 제일 상단의

Android Application

선택  에뮬레이터는 스크린 락 상태로 기동되며, 오른쪽의

MENU

보였다가 설치된 응용 프로그램의 모습이 보인다.

버튼을 누르면 홈 스크린이 5/20

1. 프로젝트 실행

실행 설정

 에뮬레이터를 기동하는데 시간이 오래 걸리므로 프로그램 개발 시 종료하지 않고 사용 하는 것이 좋으며, 프로그램을 수정한 후 재실행을 하면 이미 실행되어 있는 에뮬레이터 에 수정된 프로그램이 다시 설치되어 실행된다.

 패키지 탐색기 ->

AndroidFirst

항목 (프로젝트 이름) -> 마우스 오른쪽 버튼 -> 팝업 메뉴 실행 -> [

Run As – Android Application

] 명령  정밀한 실행 옵션 설정 : [

Run – Run Configuration

] 명령 • • •

Android

: 프로젝트 경로 및 초기 액티비티 설정

Target

: 응용 프로그램 실행 장비 설정

Common

: 기타 옵션 설정 6/20

2. 프로젝트 구성

패키지 탐색기

AndroidManifest.xml

• 프로젝트의 버전 , 이름 , 구성 등에 대한 정보 

src/AndroidFirst.java

• 메인 소스 파일. • 응용 프로그램 동작 기술 

gen/R.java

• 프로젝트내의 각종 개체에 접근할 수 있는 ID 정 의 • 자동 완성됨으로 수정하면 안됨.

Android Library

폴더 • 응용 프로그램이 참조하는 안드로이드의 기본 라이브러리 

assets

폴더 • 리소스 폴더.

• 비디오, 오디오 등의 파일 저장 7/20

2. 프로젝트 구성

패키지 탐색기

res

폴더 • /drawable : 이미지 파일 저장. 해상도별로 세 개의 크기로 제작 • /layout/main.xml

: 개체들의 레이아웃 정의. 응용 프로그램의 모양 디자인 • /values/strings.xml

: 문자열 정의 

default.properties

• 프로젝트의 빌드 타깃 명시 

.classpath

• 소스파일의 위치 , 출력 폴더 , 공통 라이브러리 등 의 위치에 대한 정보 

.project

• 빌드 순서와 방법 등 명시 

bin

폴더 • • 컴파일 된 결과 파일 저장

AndroidFirst.apk :

안드로이드 응용 실행 파일 8/20

2. 프로젝트 구성

Manifest

 응용 프로그램의 구성 정보 관리  프로젝트에 상관없이 [

AndroidManifest.xml

]으로 이름 고정  각 페이지는 매니페스트를 구성하는 엘리먼트들을 그래픽 환경에서 편집할 수 있도록 구성  하단의 마지막 탭 [

AndroidManifest.xml

] 클릭 -> 텍스트 형태로 편집 가능 9/20

2. 프로젝트 구성

Layout

 패키지 탐색기 ->

res/layout main.xml

파일 폴더 -> 

GUI

디자인 뷰에서 마우스로 레이아 웃 편집 및 확인 가능  하단의 형태로

main.xml

XML

탭 클릭 시 텍스트 파일 편집 가능  루트 엘리먼트에

android

이스 정의 네임 스페 

Linear Layout

• 가장 흔하게 사용되는 레이아웃 • 차일드를 수평으로나 수직으로 나란히 배열하는 컨테이너  @ : 리소스에서

ID

를 참조함 android:layout_height=“wrap_content” android:text=“@string/hello”/> *네임 스페이스 : 어휘의 중복을 방지하기 위한

XML

표준 장치 10/20

2. 프로젝트 구성

Layout

 패키지 탐색기 ->

values strings.xml

파일 폴더 -> 

GUI

뷰에서 마우스로 편집 및 확 인 가능  하단의 형태로

strings.xml

XML

탭 -> 텍스트 편집 가능  문자열 수정 후 재실행 Hello World, AndroidFirst! AndroidFirst

R.java

• 코드 및 소스

ID XML

정의 파일에서 참조하는 리 • 개발툴이 자동으로 관리하므로 개발 자가 임의로 편집해서는 안되며 그 럴 필요도 없다.

• 비주얼

C++

resource.h

에 해당 /* AUTO-GENERATED FILE. DO NOT MODIFY.

* * This class was automatically generated by the aapt tool from the resource data it found. * It should not be modified by hand.

*/ package exam.AndroidFirst; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x07f040001; public static final int hello=0x7f040000; } } 11/20

2. 프로젝트 구성

strings.xml

:

hello

문자열 정의 

main.xml

: 정의된 문자열을

Linear Layout

Text View

에 넣는다 

AndroidFirst.java

:

setContentView

메서드 호출, 레이아웃을 액티비티에 배치 

R.java

: 각 파일들이 참조하는 객체의

ID

정의

AndroidFirst.java

액티비티 생성

R.layout.main

레이아웃 배치

main.xml

LinearLayout TextView @string/hello R.java

main, hello

등의 명칭 정의

strings.xml

Hello = Hello World, AndroidFirst

12/20

2. 프로젝트 구성

XML

레이아웃의 장점

XML

레이아웃과 코드 레이아웃 모두 사용 가능  패키지 탐색기 ->

src/exam.AndroidFirst

노드 ->

AndroidFirst.java

package exam.AndroidFirst; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class AndroidFirst extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView MyText = new TextView(this); MyText.setText(“ 코드로 문자열 출력하기 ”); setContentView(MyText); } } 

TextView

객체를 생성 및 초기화 한 후

setContentView

매서드로 전달  안드로이드는 유니코드 기반이므로 한글 출력 가능하지만, 에뮬레이터 상에서 한글 입 력은 불가능하다.

13/20

2. 프로젝트 구성

XML

레이아웃의 장점

 코드와 데이터가 완벽하게 분리되므로 개발자와 디자이너의 분담 작업이 용이하다.

 조건에 따라 레이아웃을 통째로 교체할 수 있으므로 호환성 확보, 국제화에 유리하다.

 레이아웃만 수정할 때는 컴파일하지 않아도 되므로 개발 속도가 빨라진다.

 구조와 속성을 함축적으로 기술할 수 있으며 레이아웃 재활용도 가능하다.

 실제 프로젝트에서는 코드 레이아웃과 동시에 적용한다.

XML

레이아웃 모두 사용하며, 때로는 두 방법을  디자인 타임에 결정되는 정적인 레이아웃은 주로

XML

을 사용하고 실행중에 결정해야 하는 동적인 레이아웃은 코드를 사용하는 것이 보편적이다.

14/20

2. 프로젝트 구성

에러 처리

 이클립스는 소스가 편집될 때마다 주기적으로 백그라운드 컴파일을 수행하고, 구문의 타당성 점검, 그 결과를 편집창에 표시한다.

 에러 발생 시 편집기 왼쪽에 을 나타낸다.

표시가 나타나며,

mouse over

시 에러에 대한 상세 설명  에러가 있는 채로 소스 저장 시, 전체를 컴파일 해

Problems View

에 에러 내용을 보고서 로 정리하여 나타낸다.

15/20

3. 실습 준비

에뮬레이터 사용법

 이클립스에서 예제 실행, 또는

AVD

관리자 ->

Start

버튼  터치 스크린 지원을 지원하지만, 에뮬레이터가 실행되는 호스트 컴퓨터는 터치 입력을 받지 못하므로 마우스로 스크린을 눌러야 한다.

 홈 스크린 : 왼쪽의 LCD 창, 320 * 480의 해상도를 가짐  오른쪽 상단 • : 홈 스크린으로 돌아감 • • • • • • • • : 메뉴 출력 : 이전 화면으로 돌아감 : 구글 검색 툴바 실행 : 전화 걸기 화면 실행 : 통화 종료, 통화중이 아닐 때는 스크린 lock : 4방향으로 이동, PC 키보드의 커서 이동키 : 전원 off, 에뮬레이터에서는 화면을 잠근다.

: 볼륨 조절 • : 카메라 동작  오른쪽 하단 : Qwerty 키패드 [ 안드로이드 에뮬레이터 ] • 문자를 입력 받음 • 실제 장비에서 키패드가 없을 수도 있다.

16/20

3. 실습 준비

에뮬레이터 사용법

 설치된 응용 프로그램 목록 확인  호스트의 네트워크를 통해 인터넷에 연결되므로 별도의 비용이 들지 않는다.

 풀 브라우징 가능  확대 버튼으로 줌 배율 조절 가능 *플리킹 : 홈 스크린을 드래그 하여 아래 위로 스크롤 하는 동작 17/20

3. 실습 준비

에뮬레이터 사용법

 자주 사용하는 프로그램은 목록에서 드래그하여 바탕화면에 빼놓을 수 있다.

 너무 빨리 드래그하면 플리킹으로 간주됨으로 홀드 다운해야 한다.

 바탕화면의 아이콘 삭제 동일한 과정으로 진행한다.

*홀드 다운(

Hold Down

) : 누른 상태에서 잠시 기다리는 동작 18/20

3. 실습 준비

에뮬레이터 사용법

 홈 스크린 ->

MENU

버튼 ->

WallPaper

선택 

WallPaper gallery

선택 -> 좌우로 플리킹하여 원하는 이미지 선택 

Set wallpaper

버튼으로 바탕화면 배경 선택 19/20

3. 실습 준비

에뮬레이터 사용법

 홈 스크린 ->

MENU

버튼 ->

Settings

선택  윈도우의 제어판에 해당하는 기능 

ex : Sound & Display

: 볼륨 조절, 화면 밝기 조절 20/20

3. 실습 준비

에뮬레이터 사용법

Screen lock

: 스크린 세이버에 해당하는 기능으로 일정 시간이 지나면 화면이 어두워지 므로 해제하는 것이 좋다. (에뮬레이터는 배터리를 소모하지 않으므로 제외) 

Settings

->

Sound & Display

->

Screen timeout

->

Never timeout

선택  최신 버전의 에뮬레이터에서

Never timeout

항목 제거됨 21/20

3. 실습 준비

에뮬레이터 사용법

Settings

->

Application

->

Development

선택 •

USB debugging

: 장비의 프로그램 디버깅 관련 기능, 옵션이 설정되어야 디버깅 시 중단점 설정, 단계 실행 등의 기능 사용 가능 •

Stay awake

: 디버깅 중 장비를 슬립 모드로 전환하지 않도록 금지하는 기능 •

Allow mock locations

22/20

3. 실습 준비

프로젝트 관리

 새 프로젝트 생성 시 마법사 이용 • 프로젝트 별로 디렉토리를 구성하고 관련 파일들을 계층적으로 생성  새 프로젝트는 항상 현재 열려진 워크스페이스에 소속  패키지 탐색기는 워크스페이스에 포함된 모든 프로젝트의 구성 파일을 나타냄  특정 프로젝트 실행 시 패키지 탐색기의 팝업 메뉴

Run

명령 실행  프로젝트를 닫는 별도의 명령은 필요하지 않음  프로젝트 삭제 시 패키지 탐색기를 통해야 한다.

Delete

항목에서 체크 박스 선택 시 프로젝트 구성 파일 전체 삭제 (체크하지 않으면 프로젝트 목록에서만 삭제됨) 23/20

3. 실습 준비

프로젝트 관리

Export

• • • • 이클립스에서 워크스페이스간의 프로젝트 이동 관리 기능 대상 프로젝트의 팝업 메뉴

Export

명령 선택

Archive File

: 프로젝트를 압축 파일로 생성

File System

: 프로젝트 폴더의 사본 생성 

Import

• 백업 된 파일 복원 기능 • 팝업 메뉴

Import

명령 선택 • 압축 파일 선택 후 압축을 해제할 폴더 지정 시 압축 해제 및 패키지 탐색기에 등록됨 24/20

4. 샘플 예제

Samples

 안드로이드

SDK

에 샘플 예제 포함  제공되는 샘플은 특정한 개발툴에 종속적이지 않고, 소스로만 제공됨으로 이클립스에서 새로 운 프로젝트를 생성하여 사용한다.

 [

File – New - Project

] 명령 ->

Android Project

선택 

Create project from existing source

선택 

Location

지정 • •

Browse

버튼 -> 소스가 있는 디렉토리 지정

SDK

의 있다.

platforms

폴더에 버전 별로 예제 저장되어 • 워크스테이션의 열어야 한다.

SDK

버전과 맞는 폴더에서 예제를 

Android-2.1/samples

더 선택 폴더 -> 실행할 예제의 폴 Location : C:\Program Files\android-sdk-windows\platforms\android-2.1\samples\LunarLander 25/20

4. 샘플 예제

Samples

LunarLander

: 주어진 연료를 활용하여 우주선을 달에 안전하게 착륙시키는 게임 

Sanke

: 꼬리를 말고 돌아다니며 과일을 먹는 게임 

NotePad

: 간단한 메모장. 데이터베이스의 활용법을 보여준다.

[

LunarLander

] [

Sanke

] 26/20

4. 샘플 예제

ApiDemos

 안드로이드가 가진 모든 기능이 대부분 구현되어 있고, 예제의 길이가 짧아 소스를 참고 하기 수월하다.

 리스트는 계층식으로 되어 있으며, 클릭해 안쪽으로 들어가고

Back

깥 메뉴로 이동한다.

버튼을 이용하여 바  리스트 뷰 하나에 여러 개의 예제를 넣어, 매번 프로젝트를 열어 확인할 필요 없이 신속 하게 살펴볼 수 있다.

27/20

4. 샘플 예제

ApiDemos

 안드로이드 입문자들이 배워야 할 거의 모든 기법들이 사용되어, 토탈 코드 레퍼런스라 할 수 있다.

 기본적인 그래픽 처리와 관련된 예제 -

Arcs, FingerPaint

[

Arcs

] [

FingerPaint

] 28/20

5. 배포 예제

AndroidExam.zip

파일에서 이 책에서 사용되는 모든 예제 제공한다.

 온라인 배포 페이지 :

http://www.winapi.co.kr/android

 인터넷 검색으로 다운받은 예제의 컴파일 방법도 포한 형태에 따라 설치 방법이 달라진다.

SDK

의 예제와 동일하되 작성자가 배  실행 중 워크스페이스 변경 : [

File-switch workspace

] 명령  워크스페이스가 변경되면 이클립스가 재시작되며, 두 개 이상의 이클립스를 실행해 놓 고 다른 워크스페이스를 사용하는 것도 가능하다.

 이클립스나

SDK

의 버전이 업그레이드 되어 배포되는 그대로 워크스페이스를 열 수 없 다면, 새로운 프로젝트를 생성하여 사용한다.

29/20

5. 배포 예제

 예제들은 장별로 또는 큰 주제별로 하나의 프로젝트를 구성  프로젝트 내에 개별 예제들이 리스트 형태로 제공  3장의 예제들은

Layout

프로젝트로 제공되며, 예제 실행 시 개별 예제들의 목록이 나타 나고, 예제를 선택하면 바로 실행된다.

 이러한 예제 배포 방법을 사용하는 이유는 에뮬레이터나 실장비의 메모리가 넉넉하지 않기 때문에 설치 가능한 예제의 개수에 제한이 있기 때문이다.

30/20

6. 도움말

SDK

에도 도움말 문서가 포함되어 있지만

SDK

발표 시점의 자료일 뿐이므로 가급적이 면 웹에서 최신 자료를 보는 것이 좋으며, 구글에서 개발자 지원을 위한 사이트를 제공 한다.

Dev Guide

: 안드로이드의 주요 구조에 대한 개론을 설명해 놓은 일종의 자습서 

Reference

: 안드로이드의 시스템 클래스에 대한 레퍼런스 제공 패키지 목록 패키지에 포함된 클래스 목록 [ 구글 안드로이드 :

http://developer.android.com

] 31/20

안드로이드 프로그래밍 정복(Android Programming Complete Guide)