728x90
글 작성일: 2010/02/12 , 옮긴 날: 2010/07/13
Hello World 프로젝트를 통해 안드로이드 기본 구조에 대해 이해해 보기로 했습니다
Hello World 프로젝트는 모든 프로그램 공부를 시작할 때 제일 처음 접하게 되는 데모로써
기본적인 동작 방식 이해, 실행 코드 이해, 프로그래밍 모델 이해를 목적으로 합니다
따라서 우선 이 프로젝트를 분석하여 안드로이드 어플의 기본 구조에 대해 알아 보기로 했습니다
Hello World 프로젝트에 보면 src -> package명 -> MyActivity.java 파일이 있네요
까 보겠습니다
package는 프로젝트 만들 때 제가 지정한 이름이고...
안드로이드 SDK가 제공해 주는 API를 사용하기 위해 두 개 import 하네요
자세한 건 담에 알아보기로 하구....
다음으로 Activity 란게 있네요. 안드로이드는 기본 단위는 Activity 인가 봅니다
(음.. 문득.. UML 의 액티비티가 떠오르네요 ㅋ)
닷넷환경에서 윈도우 응용프로그램은 폼(Form) , 웹은 페이지(Page) 가 기본 실행단위입니다
즉 Form 클래스 , Page 클래스를 상속받아서 구현하도록 되어 있죠
이와 유사한 구조로, 안드로이드에서는 Activity 라는 클래스를 상속받아야 하는군요
그리고 onCreate 를 부모 Activity 로부터 오버라이딩 하는구요
Activity 가 생성될 때 호출되는 이벤트 메서드 인가 봅니다
부모 클래스의 onCreate 호출해 주고, 안드로이드 화면에 Activity의 컨트롤들이 표시되록 해 주는군요
간단하네요
근데 이 파일에는 UI 와 관련된 내용이 없네요
Hello World 라는 문자가 어딘가에 있어야 하는데 말이죠...
역시 생산성과 유지보수설을 좋게 하기 위해 UI 파일과 로직파일을 분리하고 있군요
프로젝트에서 res -> layout -> main.xml 파일이 있네요
이 넘이 UI 구성을 위한 파일이네요
(실버라이트 응용프로그램과 굉장히 유사한 구조이네요. 실버라이트의 경우 UI코드는 xaml 파일에,
로직은 .xaml.cs 파일에 있죠)
- UI 정의파일 : res->layout->xxx.xml
- 로직 정의파일 : src -> package명 -> xxx.java
main.xml 파일을 열어 보면, 아래처럼 UI 구성을 할 수 있는 창이 뜹니다
왼쪽에는 각종 컨트롤들이 있고 오른쪽에는 작업하는 화면이군요
그리고 이클립스 오른쪽 Outline에 보니 이 Activity에는 총 두개의 컨트롤이 올라가 있는 것을 보여줍니다
LinearLayout 와 TextView 컨트롤.
즉 화면의 배치를 위한 레이아웃 컨트롤과 Hello World 문자를 위한 TextView 군요
이 main.xml 코드를 보면 아래와 같습니다
LinearLayout 컨트롤이 TextView 컨트롤을 포함하고 있네요.
LinearLayout 의 속성에는 수직분할(vertical)을 하고 크기와 높이가 화면 전체를 꽉 차지하도록(fill_parent)
설정했네요.
그리고 TextView 의 속성에는 넓이는 역시 부모 컨트롤 크기에 차도록(fill_parent) 하고 높이는 이 컨트롤의 내용에 맞도록 구성하고(wrap_content) 있네요
그리고 표시될 텍스트(text)는 Hello World 라는 예약 문자인가 봅니다(@string/hello) .. 친절하군요.
이런문자까지 예약해 두다니...
Hello World 프로젝트를 통해 안드로이드 기본 구조에 대해 이해해 보기로 했습니다
Hello World 프로젝트는 모든 프로그램 공부를 시작할 때 제일 처음 접하게 되는 데모로써
기본적인 동작 방식 이해, 실행 코드 이해, 프로그래밍 모델 이해를 목적으로 합니다
따라서 우선 이 프로젝트를 분석하여 안드로이드 어플의 기본 구조에 대해 알아 보기로 했습니다
Hello World 프로젝트에 보면 src -> package명 -> MyActivity.java 파일이 있네요
까 보겠습니다
package my.androiddemo; import android.app.Activity; public class MyActivity extends Activity { |
package는 프로젝트 만들 때 제가 지정한 이름이고...
안드로이드 SDK가 제공해 주는 API를 사용하기 위해 두 개 import 하네요
자세한 건 담에 알아보기로 하구....
다음으로 Activity 란게 있네요. 안드로이드는 기본 단위는 Activity 인가 봅니다
(음.. 문득.. UML 의 액티비티가 떠오르네요 ㅋ)
닷넷환경에서 윈도우 응용프로그램은 폼(Form) , 웹은 페이지(Page) 가 기본 실행단위입니다
즉 Form 클래스 , Page 클래스를 상속받아서 구현하도록 되어 있죠
이와 유사한 구조로, 안드로이드에서는 Activity 라는 클래스를 상속받아야 하는군요
그리고 onCreate 를 부모 Activity 로부터 오버라이딩 하는구요
Activity 가 생성될 때 호출되는 이벤트 메서드 인가 봅니다
부모 클래스의 onCreate 호출해 주고, 안드로이드 화면에 Activity의 컨트롤들이 표시되록 해 주는군요
간단하네요
근데 이 파일에는 UI 와 관련된 내용이 없네요
Hello World 라는 문자가 어딘가에 있어야 하는데 말이죠...
역시 생산성과 유지보수설을 좋게 하기 위해 UI 파일과 로직파일을 분리하고 있군요
프로젝트에서 res -> layout -> main.xml 파일이 있네요
이 넘이 UI 구성을 위한 파일이네요
(실버라이트 응용프로그램과 굉장히 유사한 구조이네요. 실버라이트의 경우 UI코드는 xaml 파일에,
로직은 .xaml.cs 파일에 있죠)
- UI 정의파일 : res->layout->xxx.xml
- 로직 정의파일 : src -> package명 -> xxx.java
main.xml 파일을 열어 보면, 아래처럼 UI 구성을 할 수 있는 창이 뜹니다
왼쪽에는 각종 컨트롤들이 있고 오른쪽에는 작업하는 화면이군요
그리고 이클립스 오른쪽 Outline에 보니 이 Activity에는 총 두개의 컨트롤이 올라가 있는 것을 보여줍니다
LinearLayout 와 TextView 컨트롤.
즉 화면의 배치를 위한 레이아웃 컨트롤과 Hello World 문자를 위한 TextView 군요
이 main.xml 코드를 보면 아래와 같습니다
LinearLayout 컨트롤이 TextView 컨트롤을 포함하고 있네요.
LinearLayout 의 속성에는 수직분할(vertical)을 하고 크기와 높이가 화면 전체를 꽉 차지하도록(fill_parent)
설정했네요.
그리고 TextView 의 속성에는 넓이는 역시 부모 컨트롤 크기에 차도록(fill_parent) 하고 높이는 이 컨트롤의 내용에 맞도록 구성하고(wrap_content) 있네요
그리고 표시될 텍스트(text)는 Hello World 라는 예약 문자인가 봅니다(@string/hello) .. 친절하군요.
이런문자까지 예약해 두다니...
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> |
'모바일' 카테고리의 다른 글
PhoneGap, 결국은 네이티브 앱인가? (1) | 2010.07.13 |
---|---|
PhoneGap 코드구성 살펴보기 (0) | 2010.07.13 |
안드로이드 샘플 훓어보기 (0) | 2010.07.13 |
첫 번째 안드로이드 데모 만들기 (0) | 2010.07.13 |
안드로이드 소프트웨어 스택 (0) | 2010.07.13 |