Download presentation
Presentation is loading. Please wait.
1
CHAP 3. 첫번째 애플리케이션 예제 #1: text 문자를 출력 예제 #2: UI를 XML로 표현 – main.xml
예제 #3: string을 resource로 표현 – string.xml -> 코드 독립성/유지보수
2
마법사를 이용한 예제 프로그램 [File]->[New]->[Android Application Project] 메뉴
응용프로그램 이름 프로젝트 이름 페키지 이름 애플리케이션이 실행될 수 있는 최소 SDK 버전 컴파일 버전 장치의 죄대 SDK 버전
3
마법사를 이용한 예제 프로그램
4
아이콘 지정 대화 상자
5
액티비티 종류 지정
6
액티비티 이름
7
코드 입력
8
애플리케이션 실행
9
에뮬레이터 동작
10
애플리케이션 실행 화면
11
애플리케이션의 구성
12
패키지 폴더의 설명
13
실제 장치와의 연결 USB 드라이버 설치: 이클립스가 실제장치를 인식함. 삼성 통합 USB 드라이버 tion/USB/ Android 장치에서 "USB 디버깅"을 항목을 켠다. 환경설정>개발자옵션>USB 디버깅 애플리케이션 실행시: 이클립스에서 실행하기를 원 하는 장치 선택 - Device Chooser 화면
14
USB 디버깅
15
실제 장치에서 실행하기
16
자동 생성된 코드를 수정 (예제 #1) “자바” 과목에서 학습하였던 친근한 방식으로 화면 을 생성하여 보자.
코드를 사용하여서 사용자 인터페이스(UI)를 생성하 여 본다.
17
수정된 소스 onCreate() : chap 11 Android는 onCreate()를 호출하여 액티비티 객체 생성
딱 한번만 실행되는 초기화 코드 포함
18
TIP 필요한 패키지를 가장 쉽게 프로젝트에 추가하는 방 법은 Ctrl-Shift-O 를 누르는 것이다.
-> 이클립스가 자동으로 필요한 패키지를 찾아서 import 문을 추가하여 준다. 앞으로는 무조건 소스만 입력한 후에 Ctrl-Shift-O를 눌러보자.
19
실행 화면
20
package kr.co.company.hello;
클래스 이름의 충돌을 막기위해 도안됨 일반적으로 인터넷의 도메인 이름을 역순으로 사용
21
import android.app.Activity;
22
public class MainActivity extends Activity { ... }
클래스의 정의 Activity로부터 상속 받았으므로 액티비티가 된다. 액티비티는 안드로이드에서 애플리케이션을 구성하 는 4가지의 컴포넌트 중의 하나이다.
23
@Override 어노테이션의 하나 어노테이션은 컴파일러에게 추가적인 정보를 주는 것
어노테이션은 컴파일러에게 추가적인 정보를 주는 것 @Override은 메소드가 부모 클래스의 메소드를 재 정의(오버라이드)하였다는 것을 나타낸다.
24
public void onCreate() { … }
모든 초기화와 사용자 인터페이스 설정이 여기에 들 어간다. ->Chap 11. 일시 중단되었던 앱을 다시 실행시키면 이전 상태에 서 실행됨 ->매개변수: savedInstanceState
25
super.onCreate(…); 부모 클래스인 Activity 클래스의 onCreate()를 호출
26
TextView tv = new TextView(this);
TextView는 안드로이드에서 제공하는 UI의 컴포넌 트 객체로서 와 같이 화면에 텍스트를 표 시할 때, 사용한다.
27
setContentView(tv); 액티비티의 화면을 tv로 설정
28
복습 package kr.co.company.hello; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello, world!"); setContentView(tv); }
29
안드로이드 애플리케이션의 실행이 시작되는 곳
안드로이드에는 main()이 없음. 액티비티별로 실행된다. 액티비티 중에서는 onCreate() 메소드가 가장 먼저 실행된다.
30
XML을 이용해서 사용자 인터페이스 기술 (예제#2)
사용자 인터페이스 작성 방법 코드를 사용하는 방법(기존의 자바) XML을 사용하는 방법(안드로이드 선호 방법) 안드로이드에서는 UI 화면의 구성을 XML을 이용하 여서 선언적으로 나타내는 방법을 선호 애플리케이션의 외관과 애플리케이션의 로직을 서로 분리 빠르게 UI를 구축
31
일반적인 애플리케이션 작성 절차 사용자 인터페이스 작성(XML) 자바 코드 작성(JAVA) 매니페스트 파일 작성(XML)
32
XML을 이용한 사용자 인터페이스 작성 앞에서 코드로 작성하였던 UI를 XML로 표현하면
TextView tv = new TextView(this); tv.setText("Hello, world!");
33
XML을 이용한 사용자 인터페이스 작성 UI 컴포넌트 들은 XML의 하나의 엘리먼트로 표현된 다.
TextView 컴포넌트는 <TextView ... /> 엘리먼트로 표현된다.
34
XML 파일의 분석 <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android=" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello, world!" />
35
<TextView>의 어트리뷰트 설명
36
XML 시작 태그로 시작되어 종료 태그로 끝나는 논리적인 구성 요소를 엘리먼트(element)
<Greeting>Hello, world.</Greeting>가 엘리먼트 어트리뷰트(attribute)는 엘리먼트의 속성으로서 “이름/값”의 쌍으로 구성 <img src="madonna.jpg" alt='by Raphael'/>에서는 img 엘리먼트는 src와 alt라는 2개의 어트리뷰트를 가진다.
37
XML 파일의 위치 (/res/layout/main.xml)
38
XML UI 파일과 Java코드와의 연결
39
자동 생성되는 R.java에 리소스 ID값 정의
40
코드에서 리소스를 참조하는 방법 앱에서 사용하는 resource들은 R 클래스에 정의됨
다시 각 타입별로 내부 클래스가 정의되어 있고 각 각의 resource는 이 클래스 안에서 상수 ID가 부여됨 attr/dimen/drawable/id/layout/menu/string
41
리소스 (예제 #3) Android에서는 레이아웃, 이미지, 문자열 들을 리소 스로 취급 drawable: 이미지
layout: layout (UI) values: 문자열 등 Android에서는 가능하면 앱에서 사용하는 리소스들 을 코드 바깥에 위치시킴
42
코드와 리소스를 분리하는 이유 안드로이드가 탑재된 장치들이 다양해지면서 언어 나 화면 크기에 따라서, 리소스를 다르게 하는 것이 필요 코드는 프로그래머가 작성, UI는 디자이너가 작성 독립성: 개발/유지보수
43
문자열 리소스 문자열도 XML로 기술하는 것이 바람직하다. android:text=“Hello. World!” 대신에
는resource폴더 참조
44
실습 (p. 88 – Hello3) Hello3 애플리케이션 생성
/res/layout/main.xm에서 android:text 변경 /res/values/string.xml 화면에 나오는 문자열을 한글로 변경한다. 문자열을 리소스로 기술한다. app_name/hello_world값 변경
45
매니페스트 파일
46
매니페스트 파일 적재목록: 애플리케이션에 적재된 모든 컴포넌트를 기술함. AndroidManifest.xml
Android에게 애플리케이션의 컴포넌트들을 알려줌 으로써 다른 애플리케이션이 내 컴포넌트를 실행할 수 있게함 -> intent (chap 11)
47
매니페스트 파일의 분석
48
Summary 디버깅 : p.98 ~ 이클립스 사용팁: p.101 ~ 애플리케이션은 컴포넌트들의 조합으로 만들어진다.
코드와 리소스는 철저하게 분리된다. 코드와 리소스는 개발 도구에 의하여 자동으로 생성 되는 R.java에 의하여 서로 연결된다.
Similar presentations