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
] 클릭 -> 텍스트 형태로 편집 가능
2. 프로젝트 구성
Layout
패키지 탐색기 ->
res/layout main.xml
파일 폴더 ->
GUI
디자인 뷰에서 마우스로 레이아 웃 편집 및 확인 가능 하단의 형태로
main.xml
XML
탭 클릭 시 텍스트 파일 편집 가능 루트 엘리먼트에
android
이스 정의 네임 스페
Linear Layout
• 가장 흔하게 사용되는 레이아웃 • 차일드를 수평으로나 수직으로 나란히 배열하는 컨테이너 @ : 리소스에서
ID
를 참조함
XML
표준 장치 10/20
2. 프로젝트 구성
Layout
패키지 탐색기 ->
values strings.xml
파일 폴더 ->
GUI
뷰에서 마우스로 편집 및 확 인 가능 하단의 형태로
strings.xml
XML
탭 -> 텍스트 편집 가능 문자열 수정 후 재실행
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