Hello World 분석하기

Posted in 모바일 // Posted at 2010. 7. 13. 10:47
728x90
글 작성일: 2010/02/12 , 옮긴 날: 2010/07/13

Hello World 프로젝트를 통해 안드로이드 기본 구조에 대해 이해해 보기로 했습니다

Hello World 프로젝트는 모든 프로그램 공부를 시작할 때 제일 처음 접하게 되는 데모로써
기본적인 동작 방식 이해, 실행 코드 이해, 프로그래밍 모델 이해를 목적으로 합니다
따라서 우선 이 프로젝트를 분석하여 안드로이드 어플의 기본 구조에 대해 알아 보기로 했습니다

Hello World 프로젝트에 보면 src -> package명 -> MyActivity.java 파일이 있네요
까 보겠습니다

package my.androiddemo;

import android.app.Activity;
import android.os.Bundle;

public class MyActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}


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>

안드로이드 샘플 훓어보기

Posted in 모바일 // Posted at 2010. 7. 13. 10:46
728x90

글 작성일: 2010/02/10 , 옮긴 날: 2010/07/13

안드로이드 SDK를 설치하면 샘플 프로젝트가 같이 설치되는데요

아래 위치에 샘플이 있습니다
안드로이드 SDK 설치폴더 -> platforms -> 각 버전별 폴더(ex: android-2.1) -> samples

android2.1의 샘플은 총 16개 있네요
이 샘플 프로젝트 중 하나를 이클립스에 불러와 보겠습니다
이클립스의 상단 메뉴에서  File -> New -> Project 선택한 후, Android Project 타입을 선택합니다
그리고 Next를 하면 아래 창이 나오는데요

이미 만들어진 샘플 프로젝트를 불러오는 것이니까, Create project from existing source
선택합니다. 그리고 Location 에 샘플 프로젝트 중 하나를 지정해 주는데요, 저는 ApiDemos 라는 샘플을 지정했습니다. 그러면 나머지는 자동으로 입력되구요.. Next->Finish 하면 완료됩니다



프로젝트가 정상적으로 생성되었으면, 이클립스 좌측에 프로젝트 파일 리스트가 나옵니다


자.. 이제.. 샘플을 실행해 볼께요
에뮬레이터에 아래 그림과 같이 나오는데요, ApiDemos 샘플 프로젝트는 안드로이드 개발을 돕기 위해 학습용으로 만들어 진듯 하네요. 각 메뉴를 들어가보면 안드로이드에서 사용되는 각종 개체 및 컨트롤들의 샘플이 나타납니다. 좋네요.. 이 샘플을 기반으로 공부 좀 해야 것습니다



'모바일' 카테고리의 다른 글

PhoneGap 코드구성 살펴보기  (0) 2010.07.13
Hello World 분석하기  (1) 2010.07.13
첫 번째 안드로이드 데모 만들기  (0) 2010.07.13
안드로이드 소프트웨어 스택  (0) 2010.07.13
안드로이드의 특징  (0) 2010.07.13

첫 번째 안드로이드 데모 만들기

Posted in 모바일 // Posted at 2010. 7. 13. 10:45
728x90
글 작성일: 2010/02/09 , 옮긴 날: 2010/07/13

Hello World 프로그램이 완성되는 과정을 간단히 정리 합니다
모든 프로그램의 시작은 Hello World 이죠 ㅎㅎ

이클립스 실행합니다
상단 메뉴에서 File->New->Project 를 순서대로 실행하면 아래 그림처럼 New Project 를 위한 창이
뜹니다. Android Project 선택하고 Next 합니다




그러면 아래 그림처럼 안드로이드 프로젝트를 설정하는 창이 뜹니다
아래와 같이 입력 했는데요, 기존에 이클립스를 통해 자바개발 경험이 있는 경우 아래 내용들이
익숙할 것입니다. Application Name 은 안드로이드에 표현될 이 응용프로그램 이름이 됩니다

그리고 중요한 것은 Build Target인데요. 
이 프로그램이 안드로이드 SDK의 어느 버전으로 빌드 할지 선택해 주는 것입니다
전 현재 최신 버전인 2.1 선택했습니다

그리고 Activity 란게 있네요. 안드로이드 프로그램이 이 Activity 단위로 이루어 지나봐요
Class하고 유사하다고 일단 보고 있습니다. 저는...
그리고 Next->Finish 합니다




프로젝트 생성이 완료되었으면 이클립스의 좌측에 아래와 같이 프로젝트 파일들이 나타납니다


여기까지 프로젝트 생성이 완료되었습니다
이제 실행환경을 설정해야 하는데요

이클립스 상단 메뉴에서 Run->Run Configurations 선택합니다
왼쪽 리스트에서 Android Application 에서 마우스 우클릭 -> New 해서 새로운 빌드 환경을 만듭니다
오른쪽 설정화면에서 Project 를 선택하고 Launch를 선택해 줍니다



그리고 Target 탭으로 가서 AVD를 선택해 줍니다


설정이 완료되었으므로 Apply 하고 Run 합니다

실행을 하면 안드로이드 에뮬레이트가 뜨고 우리가 작성한 Hello World 가 화면에 나타납니다


이후 부터는 이 설정을 이용해서 계속 실행하면 됩니다

'모바일' 카테고리의 다른 글

Hello World 분석하기  (1) 2010.07.13
안드로이드 샘플 훓어보기  (0) 2010.07.13
안드로이드 소프트웨어 스택  (0) 2010.07.13
안드로이드의 특징  (0) 2010.07.13
안드로이드(Android)?  (0) 2010.07.13

안드로이드의 특징

Posted in 모바일 // Posted at 2010. 7. 13. 10:40
728x90

글 작성일: 2010/01/21 , 옮긴 날: 2010/07/13

어제 구입한 책 프로페셔널 안드로이드 애플리케이션 개발 을 저녁에 집에서 한 챕처 훓어 봤습니다
안드로이드 소개와 비전 그리고 개발 프레임워크, 특징 등을 개괄적으로 기술하고 있더군요

물론 안드로이드가 주제인 책인만큼, 좋은 글.. 상당히 많죠
살짝 홍보성 느낌이 있을지언정, 아주 매력적입니다

많은 내용 중 안드로이드의 특징에 대해 요약해 봅니다
일단 안드로이드 폰에 탑재되는 기본 기능에 대한 차별성은 역시 구글 자체 컨텐츠와의 긴밀한
통합입니다. 예를 들어 G메일 호환, 구글 캘린더, 연락처 등의 개인 온라인 서비스, 구글 검색등을
들 수 있습니다

개발환경의 특징으로 보면,
자바 기반 개발 환경을 지원하며 기존 자바가상머신(JVM)이 아닌 모바일 전용 자바가상머신인 Dalvik
위에서 된다고 하네요. 물론 자바통합개발환경인 이클립스와의 연동도 가능하구요

참고로 전 닷넷 개발자인데요, 자바개발자들이 부럽군요. 익숙한 개발 환경으로 인한 진입장벽이 저 보다는 낮을테니깐요. 그러나 뭐 자바면 어떻습니까? 개발이야 다 비슷하죠

마지막으로 책에 기술된 내용중, 안드로이드에만 있는 것이 소개되어 있군요

- 구글 맵 어플리케이션
구글 맵은 유명하죠. 우리가 만드는 어플리케이션에서 사용할 수 있도록 컨트롤 형태로 제공된다고 합니다. 구글 맵을 응용한 다양한 컨텐츠를 개발할 수 있겠네요

- 백그라운드 서비스
폰에서 다른 기능을 이용하고 있는 중에도 이벤트를 발생시켜 백그라운드에서 돌아가는 어플리케이션을 만들 수 있습니다

- 공유 데이터와 프로세스 간 통신
안드로이드에 기본 탑재되는 네이티브 어플리케이션의 데이터를 공유할 수 있고 그 기능을 이용할 수 있다고 하네요

- 네이티브 플랫폼에 대한 접근 허용
안드로이드는 네이티브 어플리케이션과 서드파티 어플리케이션을 차별하지 않는다고 합니다
이는 폰에 기본 제공되는 기능을 서드파티 대체물로 전부 교체할 수 있도록 허용한다고 하네요
장치가 가진 룩앤필을 바꾸는 전례없는 능력이 제공됩니다

- P2P 메시징
폰 대 폰, 어플 대 어플간 P2P 메시징을 지원하다고 합니다


이러한 특징들을 조합하면 다앙한 컨텐츠가 개발될 수 있겠네요
책에도 언급되어 있는 것 처럼, 친한 친구가 몇 m내에 있으면 알림을 한다던가 근처 주요 장소를 알려
준다던가..

생각만 해도 재미있네요...

안드로이드(Android)?

Posted in 모바일 // Posted at 2010. 7. 13. 10:37
728x90
글 작성일: 2010/01/20 , 옮긴 날: 2010/07/13

안드로이드: 인간의 모습을 한 로봇

안드로이드는, '인간을 닮은 것' 이라는 그리스 말에서 유래된 SF용어로서 인간의 모습을 한 로봇을
뜻한다고 합니다.

그리고 또 하나의 의미가 더 생겼죠. 바로 구글이 만든 모바일용 운영체제(OS)의 이름이기도 하죠

그런데, 구글은 왜 이름을 안드로이드라고 했을까요?

보통 제품의 이름은 그 제품 자체를 추상화하고 이념화하여 짓게 마련인데요
그래서 제품 이름의 뜻을 알면 제품의 특징은 물론이고 추구하는 이상도 엿 볼수 있는 경우가 많죠

SF적인 느낌이 물씬 풍기는 미래지향적 이름이 필요했던걸까요?
간혹 그리스 신화에 나오는 신들의 이름이 채택되는 경우는 몇 번 봤는데, 그러한 산물의 일종으로
보이기도 하네요. 스마트 폰, 말 그대로 로봇처럼 지능적인 모바일 환경의 총칭.. 뭐 그건거겠죠?

  구글 안드로이드의 아이콘 입니다. 확실히 원 뜻인 로봇을 직설적으로(?) 상징하네요

아이폰의 깨물다 만 사과 아이콘 보다는 조금 장난스런 느낌이지만 귀엽네요 ^^;

안드로이드라는 이름이 결정된 구체적인 구글의 과정이 궁금하네요. 관련해서 자료를 좀 찾아봐야
겠네요. 뭐... 이유야 어떻게 되었건 .. 안드로이드.. 괜찮네요 ㅎㅎ

제일 처음 이 이름을 접했을 때, 안드로메다가 먼저 생각난 저는 뭐일까요???

추가>> 2009.01.21 오전 10:30
이름 유래에 대한 다음 기사를 우연히 봤네요

역시 예상대로,
"인간의 두뇌에 버금가는 안드로이드의 똑똑한 업무처리와 빠른 속도를 강조하기 위한 작명인 셈" 이라고 하네요

Android 개발환경 구축

Posted in 모바일 // Posted at 2010. 7. 12. 17:59
728x90
안드로이드 개발 환경 셋팅.
올 해, 2월에 안드로이드 공부를 시작하면서 정리한 글이다. 당시 최신 버전은 2.1 이었지만,
현재는 2.2 이다. 2.1 최신 버전을 설치하더라도 설치 과정은 동일하다

아래 글을 참고하자
------------------------------------------------------------------------------------------

이제 본격적으로 안드로이드 개발 세상으로 뛰어 들기 위해 개발 환경을 설정 합니다

안드로이드 SDK는 아래, 안드로이드 개발자 웹사이트에서 다운로드 제공하는 군요
>> 안드로이드 SDK 다운로드
안드로이드 SDK 윈도우, 맥, 리눅스를 모두 지원한댑니다
압축파일로 제공이 되는데 원하는 폴더에 압축을 푸는 것으로 설치가 완료되구요

그리고 안드로이드는 개발은 자바기반입니다. 자바 개발 킷인 JDK도 설치해야 하네요
>> JDK 다운로드
저는 JDK 6 버전을 설치했습니다

마지막으로 안드로이드 개발을 편하게 하기 위해 통합개발툴인 이클립스를 다운바다 설치 합니다
>> 이클립스 다운로드
Eclipse IDE for java Developers 버전을 다운받고, 안드로이드 SDK처럼 압축을 해제하는 것으로 설치가 완료되구요

이제 이클립스를 통해 안드로이드 개발이 가능하도록 ADT(Adnriod Developement Tools)라는
이클립스 플러그인을 설치합니다.
이클립스가 설치된 폴더의 eclipse.exe를 처음 실행하면 다음 그림과 같이 workspace를 설정하라고 나오네요
안드로이드 개발을 위한 workspace를 원하는 제가 지정한 폴더로 선택했습니다



이클립스가 실행되면, 상단 메뉴에서 Help -> Install New Software 메뉴로 들어가서 Add 버튼을 클릭하고
아래 그림과 같이 적당한 이름을 주고 url을 입력합니다
https://dl-ssl.google.com/android/eclipse/


OK버턴을 클릭하면 다음과 같은 창이 뜨는데 Developer Tools 를 체크한 후 Next 하다가 약관 동의하고
Finish 합니다. 그러면 ADT 설치가 진행됩니다





설치 과정 중에 Security Warning 가 나오면 그냥 OK 하시고 설치가 완료되면 이클립스를 재 시작합니다

이제 이클립스를 위한 안드로이드 개발 플러그인인 ADT를 설치 완료 하였습니다

다음으로 이클립스에 안드로이드 SDK 위치를 지정해 줘야 하는데요..
이클립스의 상단 메뉴에서 Windows -> Preference를 실행하면 다음과 같은 창이 나오는데
이전에 설치한 안드로이드 SDK 위치를 지정해 줍니다



다음으로 안드로이드 버전별 SDK와 에뮬레이트를 다운 받습니다
이클립스 상단 메뉴에 Window -> Android SDK and AVD Manager 를 실행 한후,
Available Packages 메뉴에서 설치를 원하는 API 버전을 선택합니다. 전 모두 선택했습니다


그리고 우측 하단의 Install Selected 버튼을 클릭하고 Accept All 하고 설치를 시작합니다



자.. 이제 마지막 하나, 에뮬레이터 AVD를 설정하고 설치를 완료합니다
역시 이클립스 상단 메뉴 Window -> Android SDK and AVD Manager 를 실행한 후 왼쪽의 Virtual Devices를 선택한 후 New 버턴을 클릭합니다. 아래와 그림과 같이 새로운 AVD를 생성합니다




이제 드디어 설치가 완료 되었네요~
아.. 지루한 작업이었습니다 ㅎㅎ;

그럼. Hello World 를  찍어 보도록 해야 겠네요 ~~