2010년 1월 30일 토요일

Hello Table Layout

오늘은 간단히 테이블 레이아웃에 대한 코딩을 포스팅 하겠습니다.

테이블 레이아웃은 HTML 코딩을 좀 하셨던 분이라면 머 별거 아니네 하고 바로 넘어가실 수 있을거라 생각이 되네요.

레이아웃은 앞선 LinearLayout의 경우처럼 main.xml 파일을 수정해주시면 됩니다.

코드는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
android:layout_width="fill_parent"
   
android:layout_height="fill_parent"
   
android:stretchColumns="1">

   
<TableRow>
       
<TextView
           
android:layout_column="1"
           
android:text="Open..."
           
android:padding="3dip" />
       
<TextView
           
android:text="Ctrl-O"
           
android:gravity="right"
           
android:padding="3dip" />
   
</TableRow>

   
<TableRow>
       
<TextView
           
android:layout_column="1"
           
android:text="Save..."
           
android:padding="3dip" />
       
<TextView
           
android:text="Ctrl-S"
           
android:gravity="right"
           
android:padding="3dip" />
   
</TableRow>

   
<TableRow>
       
<TextView
           
android:layout_column="1"
           
android:text="Save As..."
           
android:padding="3dip" />
       
<TextView
           
android:text="Ctrl-Shift-S"
           
android:gravity="right"
           
android:padding="3dip" />
   
</TableRow>

   
<View
       
android:layout_height="2dip"
       
android:background="#FF909090" />

   
<TableRow>
       
<TextView
           
android:text="X"
           
android:padding="3dip" />
       
<TextView
           
android:text="Import..."
           
android:padding="3dip" />
   
</TableRow>

   
<TableRow>
       
<TextView
           
android:text="X"
           
android:padding="3dip" />
       
<TextView
           
android:text="Export..."
           
android:padding="3dip" />
       
<TextView
           
android:text="Ctrl-E"
           
android:gravity="right"
           
android:padding="3dip" />
   
</TableRow>

   
<View
       
android:layout_height="2dip"
       
android:background="#FF909090" />

   
<TableRow>
       
<TextView
           
android:layout_column="1"
           
android:text="Quit"
           
android:padding="3dip" />
   
</TableRow>
</TableLayout>

앞선 글들을 보셨다면 안의 내용이 크게 힘들거나 하진 않으실 듯 하네요. 우선 크게 TableLayout 을 잡고 그 안에 HTML의 <tr>과 같은 TableRow로 테이블을 나눠주시면 됩니다. 로우안에 들어가는 내용은 View 속성을 가진 객체라면 상관없이 배치할 수 있습니다. 그 예로 위의 코드에서는 간단히 TextView 를 사용하고 있죠. 다르게는 ImageView 도 넣어볼 수 있을 것입니다.

그럼 실행을 한번 해볼까요? 코딩을 실 수 없이 하셨다면 아래와 같은 실행결과를 보 실 수 있을 듯 합니다.(복사 붙여넣기 하지 마시고 직접 읽어보시면서 손으로 코딩하시는게 좋을 듯 합니다. 예제이긴 하지만 그래도 직접 쓰는거랑 붙여넣기 하는 거랑은 이해하는 부분에서 크게 차이가 생기니깐요)


다음에도 역시 View와 관련된 글을 마지막으로 하나더 포스팅하겠습니다.

즐거운 주말 되세요. ^^

2010년 1월 28일 목요일

애플 차기제품 iPad


드디어 애플의 새로운 차기제품에 대한 발표가 있었는데요. 제품이름이 iPad 라고 하네요.
어떤 제품인지 한번 동영상으로 스티브잡스의 프레젠을 한번 보시죠.






















각가지 기능들이 탑재된 타블릿인것 같은데..... 디자인은 그냥 iPhone 하고 똑같다고 볼 수 있군요.
좀 큰 아이폰?? 디자인을 너무 오래 해먹는거 아닌가 하는 짧은 생각입니다.

Capilano Suspension Bridge

저번 크리스마스 시즌, 휴가기간이 자그만치 2주나 주어져서 집에서 뒹굴뒹굴 거리다가 친구의 전화로
가게된 Capilano Suspension Bridge!!!

그냥 엄청난 길이의 흔들다리가 있다는 말 밖에 못 들었습니다. 그래서 별 흥미없어서 안 가고 있다가
그래도 한번 가보자 하는 마음으로 찾아갔었습니다. ㅎㅎ

겨울의 벤쿠버는 별로 유명하지 않지만 그래도 한번 오시게 되는 기회가 생기신다면 Capilano Suspension Bridge를 찾아가보는 것도 괜찮지 않나 생각됩니다.

열기





레이아웃을 쉽게 만들어보자

앞선 포스팅에서 알려드린바와 같이 레이아웃을 설계할때에는 xml 코드를 사용합니다.

저 역시 xml 코드를 사용한 적이 거의 없기 때문에 설계시 곤란한 점이 많은데요.

저같은 분들을 위해 괜찮은 프로그램을 하나 소개합니다.

DroidDraw(http://www.droiddraw.org/) 라는 프로그램입니다. 해당 사이트로 접속하셔서 자신의 운영체제에 맞는걸 다운로드 받으시면 됩니다.

C++ 의 MFC 나 JAVA 의 JFC 같다고 할까요? ㅎㅎ

이제 레이아웃 설계 손쉽게 해보세요.





2010년 1월 27일 수요일

Vancouver Olympics -Granville Street-

저번에 포스팅한 것처럼 오늘 점심시간에 올림픽을 위해 장식해놓은 거리인 Granville Street 를 다녀왔습니다.

머 그렇게 화려하게 해놓지는 않았지만 사진찍을 거리는 생겼더군요 ㅎㅎ

사진 보실 분들은 아래를 클릭!!!

열기



모토로이 예약판매 실시


드디어 모토로이 예약판매가 실시 되었습니다. 이번 이벤트는 T월드 홈페이지내의 T숍, 오픈마켓 11번가, G마켓, 옥션 등 온라인 쇼핑몰 과 전국 SK텔레콤 대리점 에서 가능하다고 합니다.

기간은 지난 26일부터 2월 4일까지 접수를 받고 2월 5일부터 배송이 시작된다고 하네요.

저는 예약판매 따위는 상관 없고 요금제가 제일 궁금했습니다. 어차피 지금바로 살 수도 없거니와
가격을 알아야 구매여부를 알 수 있으니까요.

그럼 요금제를 한번 살펴보죠.

제가 SK를 한번도 써보지 않아서 이 요금제가 어떠한지는 잘 모르겠네요. 그냥 저는 그렇게 나쁘지는
않다고 생각이 됩니다. 여러분들 생각은 어떠신지?

애기를 들어보니 이 요금제로 계속 가야 하는게 아니라고 하네요. 요금제를 1~2달 지난후에 변경이 가능하다고 하나 기기값 할인가격이 추가되어 한달요금이 청구된다고 하니 나중에 자신한테 맞고 저렴하다고 생각되는 걸로 바꾸시면 될 듯 합니다.

실 사용기는 2월 5, 6일 이후에나 알 수 있을 것 같습니다.

모토로이 예약구입 하신분들 실 사용기 빨리 올려주길 기대하면서 ㅠ.ㅠ

Hello LinearLayout 살펴보기

자~ 오늘은 이전에 작성해보았던 LinearLayout 에 작성된 코드에 대해 알아보도록 하죠

기본적으로 레이아웃은 XML 코드로 작성이 되어 있습니다.

인터페이스를 구성하기 위해선 이 xml 코드를 작성할 필요가 있지요.

먼저 LinearLayout 은 자식 뷰 요소들이 수평 또는 수직적으로 배치되는 GroupView 라고 합니다.


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
android:orientation="vertical"
   
android:layout_width="fill_parent"
   
android:layout_height="fill_parent">

LinearLayout 의 배치는 orientation 으로 vertical(수평) 또는 horizontal(수직) 로 결정해주시면 됩니다.

layout_width 와 layout_height 에서 액티비티 내의 뷰의 크기를 설정해줄 수 있습니다.

기본적으로 fill_parent 와 wrap_content 가 제공됩니다.

fill_parent 는 화면에 꽉 차도록, wrap_content는 각 View에 필요한만큼만 화면을 차지하도록 하게 합니다.

<TextView
           
android:text="red"
           
android:gravity="center_horizontal"
           
android:background="#aa0000"
           
android:layout_width="wrap_content"
           
android:layout_height="fill_parent"
           
android:layout_weight="1"/>

각각의 LinearLayout에는 위에서 언급했듯이 각각의 View들을 배치할 수 있습니다. 여러View가 있지만 먼저 TextView를 보도록 하지요.(차후에 다른 View들에 대한 언급도 하도록 하겠습니다.)

TextView는 이름에서 알 수 있듯이 텍스트, 즉 글을 표시하기 위한 View 입니다. 각 속성에 의해서 화면에 표시할 값을 정해줄 수 있죠.

public void onCreate(Bundle savedInstanceState) {
   
super.onCreate(savedInstanceState);
    setContentView
(R.layout.main);
}

Hello LinearLayout 클래스의 onCreate 메소드입니다.

기본적인 코드인걸 알 수 있습니다. 이 메소드 안의 setContentView 는 xml파일을 읽어들여 화면에
표시해주는 역할을 하는 메소드 입니다. R.layout.main 은 main.xml 파일을 가리키고 있지요. 즉 나중에 여러개의 액티비티를 생성하실 경우 layout에 새로운 xml 을 작성하셔서 R.layout.해당파일이름 으로 연결하시면 사용이 가능합니다.

2010년 1월 26일 화요일

Hello LinearLayout

오래간만에 이렇게 안드로이드글을 쓰네요. 원래 약속같은거 잘 안생기는데 이번 주말은 특이하게


약속이 잡혀버렸네요. ㅎㅎ


머 상관도 없는 말은 접어두고 본론으로 들어가죠.


이번에는 LinearLayout에 대해 포스팅 해보겠습니다.


간단히 소스코드 부터 들어가보도록 하죠.


먼저 안드로이드 프로젝트를 하나 생성해 주세요. 프로젝트 생성하는 방법을 모르신다면


앞서 포스팅한 Hello Android 를 참고해 주시기 바랍니다.


주로 View 화면을 구성하실 때에는 layout 파일을 수정하시면 됩니다. 그런데 이 파일의 위치를


모르신다면 이클립스 왼쪽 패키지 관리창에서 해당 프로젝트의 res -> layout -> main.xml 파일을


더블클릭으로 열어주시면 됩니다.






파일을 여셨다면 다음과 같이

<?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">

   
<LinearLayout
       
android:orientation="horizontal"
       
android:layout_width="fill_parent"
       
android:layout_height="fill_parent"
       
android:layout_weight="1">
       
       
<TextView
           
android:text="red"
           
android:gravity="center_horizontal"
           
android:background="#aa0000"
           
android:layout_width="wrap_content"
           
android:layout_height="fill_parent"
           
android:layout_weight="1"/>
       
       
<TextView
           
android:text="green"
           
android:gravity="center_horizontal"
           
android:background="#00aa00"
           
android:layout_width="wrap_content"
           
android:layout_height="fill_parent"
           
android:layout_weight="1"/>
       
       
<TextView
           
android:text="blue"
           
android:gravity="center_horizontal"
           
android:background="#0000aa"
           
android:layout_width="wrap_content"
           
android:layout_height="fill_parent"
           
android:layout_weight="1"/>
       
       
<TextView
           
android:text="yellow"
           
android:gravity="center_horizontal"
           
android:background="#aaaa00"
           
android:layout_width="wrap_content"
           
android:layout_height="fill_parent"
           
android:layout_weight="1"/>
               
   
</LinearLayout>
       
   
<LinearLayout
       
android:orientation="vertical"
       
android:layout_width="fill_parent"
       
android:layout_height="fill_parent"
       
android:layout_weight="1">
       
       
<TextView
           
android:text="row one"
           
android:textSize="15pt"
           
android:layout_width="fill_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="1"/>
       
       
<TextView
           
android:text="row two"
           
android:textSize="15pt"
           
android:layout_width="fill_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="1"/>
       
       
<TextView
           
android:text="row three"
           
android:textSize="15pt"
           
android:layout_width="fill_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="1"/>
       
       
<TextView
           
android:text="row four"
           
android:textSize="15pt"
           
android:layout_width="fill_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="1"/>
       
   
</LinearLayout>
       
</LinearLayout>

위와 같이 수정하셨다면 이제 한번 실행을 해볼까요?

클래스파일의 수정은 뭐 필요 없습니다. 기본적으로 생성된 코드로 수정된 사항을 확인할 수 있으니까요.

실행을 하시면 다음과 같은 결과를 보실 수 있으실 겁니다.

그럼 다음에는 이 소스코드에 대해서 자세하진 않지만 나름 노력하여 설명을 하도록 하겠습니다.


Vancouver Olympics

점점 올림픽이 다가오고 있다는걸 느끼게 되는것 같네요.

버스에는 금메달을 기원하는 문구가 보이기 시작하고

스카이트레인 역에 달려있는 TV들에도 올림픽 광고가 보이기 시작....

Granville Street 에는 관광객들을 위해서인지 도로자체를 막고 이쁘게 꾸며놨네요...

나중에 시간되면 가서 사진좀 찍고 다시 포스트를 해야겠어요 ㅋㅋ

현지에서 느껴보는 올림픽의 기운이란.....

올림픽 관련 기념품도 좀 사볼까??? 이런 생각도 해봅니다.

아무튼 특정종목만 너무 관심가지지 말고!!! 올림픽에 참가하는 모든 선수분들 화이팅!!

좋은성적 거두셨으면 하는 바램 이렇게 몇자 적어봅니다.

2010년 1월 23일 토요일

아이팟 터치?


오늘 점심시간에 심심해서 그냥 예전에 다니던 학원으로 놀러갔는데..... 거기서 간만에 보는 Yujiro

ㅋㅋㅋ 간단히 인사 한번 나누고 안부나 물어볼려고 하는데..... 갑자기 이녀석의 한마디

Help me, Josh~ (참고로 내 영어이름은 Joshua 다 줄여서 Josh)

갑자기 도움을 청하길래 무슨 일 있냐고 물어보는데.......... 갑자기 지난 Boxing Day 때 아이팟 터치를

샀더랜다... 젠장 망할.... 돈 도 많지......

그런데 정작 중요한건 뭐가 뭔지 잘 모르겠다는거 ㅡ,ㅡ;;; 그래서 자기한테 어떻게 사용하면 되는지

가르쳐 달랜다..... 머 나도 알아야지..... 한번도 안써봤는데.....

그래도 넌 Geek(컴퓨터에 미친놈) 이니까 잘 할 수 있을거다라는데...... 이번 주말에 집으로 찾아

온단다.... 아놔~~ 그래서 지금 아이팟에 대한 정보를 수집중.

원래 전자기기 라는게 몰라도 사용해보면서 알아가는거 아닌가?

오늘도 출근~

그렇게 크게 할 일 이 없는데도 출근하는게 이젠 좀 지겹다 ㅡ,ㅡ;;

무급 인턴쉽이라서 그런지 성취감도 그렇게 크진 않다...... 나중에 Reference Letter 와 Certification 을

받게 되면 좀 성취감이 들려나??

3주 뒤면 이 인턴쉽도 끝이 나는구나.... ㅎㅎ 3주 뒤가 기다려진다.

오늘은 일 마치고 쌀을 받으러 간다. 집에 쌀이 다 떨어져서 며칠째 라면과 까르보나라 로 버티고 있다.

이기적인 몸뚱아리 면 먹으면 밥이 땡기고 밥 먹으면 면이 땡기니...... 머 어쩌라는 건지... ㅡ_-a

오늘은 강좌 중심 보다는 뉴스 중심으로 포스팅을 할 생각이다.

괜찮은 뉴스 거리가 있다면 말이지만...... ㅎㅎㅎ

머 뉴스라기 보다는 이건 내 잡설인데...... 지금은 그런 경우가 별로 없지만 (모토로이 때문일까?)

예전에 보면 아이폰과 옴니아2를 비교하는 글들이 참 많았다....

그런 글들을 볼때마다 머리속에 드는 생각 도대체 왜 저 둘을 비교하지?? 비교거리가 되기나 하나?

그렇다. 비교를 해도 왜 옴니아2와 비교하는 걸까? 2009 최악의 기기로 선정된 옴니아2(어떤 뉴스에선 2009 최고의 기기로 선정됐다더라)

돈을 준다면 모를까 내 돈 주고 사고싶지 않은 기기..... 머 사용하시는 분들한테는 죄송한 마음이지만

이건 머 개인적인 거니까요....

머 이래저래 주제도 없는 글이 이어지고 있네.....

머리속은 별 시덥잖은 생각들로만 가득차있으니 이렇게 글로 뱉어내는 수밖에...... (그런다고 사라지겠니??)

아무튼 오늘도 6시간만 버티자 ㅎㅎ

국내 첫 넥서스원 개통자 탄생!!


국내 첫 넥서스원 개통자가 나왔습니다.

개통자분은 넥서스원을 해외에서 구입하신 후 개인전파인증 하신 후에 올레KT 트윗에 문의를 했다는군요.

이후 KT 측은 아이폰과 마찬가지로 개인전파인증을 마친 단말은 적극 지원할 예정이라는 트윗을 올렸습니다.

그렇다면 이제 해외에서만 출시된 스마트폰을 개인전파인증으로 KT에서 개통이 되겠군요.

ㅎㅎㅎ 모토로이만 생각할게 아니고 해외구매도 이제 한번 생각해 봐야 겠네요

아무튼 조금씩이지만 국내 스마트폰 시장이 바뀌어 가는 것 같긴 합니다.

이통사들은 현 이익만을 바라지 말고 이렇게 소비자들도 생각하면서 운영해갔으면 하네요

-이미지 출처 올레 KT 트위터 http://twitter.com/ollehkt -

2010년 1월 22일 금요일

Hello Android 살펴보기

앞서 작성해 보았던 Hello Android 를 한 번 살펴보도록 하겠습니다.

먼저 새로운 Code를 추가하기전부터 보도록 하죠.

package com.example.helloandroid;

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

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

저희가 생성한 클래스는 기본적으로 Activity 클래스를 상속받습니다. Activity 클래스는 action 을 수행하는 하나의 독립된 어플리케이션이라고 할 수 있습니다.

저희가 나중에 만들게된 어플들은 다수의 Activity 로 만들어질수 있지만 사용자는 한번에 하나의 Activity 와 소통이 가능합니다.

다음으로 보실것은 onCreate 메소드 입니다. 이 메소드는 해당 액티비티가 실행이 될 경우 호출이 되는 메소드 입니다. 머 모든 초기화와 UI 의 생성이 여기에 위치해 있다고 보시면 됩니다.
그렇다고 해서 Activity 가 꼭 UI를 요구하지는 않지만, 머 주로 그렇다는 거죠.

package com.android.helloandroid;

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

public class HelloAndroid extends Activity {
   
/** Called when the activity is first created. */
   
@Override
   
public void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
       
TextView tv = new TextView(this);
       tv
.setText("Hello, Android");
       setContentView
(tv);

   
}
}

안드로이드의 UI 는 View 라고 불리는 객체들의 체계로 구성됩니다. View는 Layout 위에 각종 구성요소(이미지, 버튼, 텍스트)같은 것들을 그릴 수 있습니다. 이러한 각각의 객체들은 View의 하위 클래스 들이고, 위와 같이 텍스트를 마음대로 주무르는 하위 클래스가 TextView 입니다.


위와 같이 수정된 코드에서 저희는 생성자를 통해서 TextView 인 tv 를 생성하였습니다. TextView 생성자는 Context를 인자값으로 보내는데 위에서 보면 this 를 보내고 있습니다. 그 이유는 Activity 클래스는 Context 클래스로부터 상속을 받습니다. 그렇다면 여러분이 만든 클래스는 Activity 클래스의 하위 클래스이고 Acitivity 클래스는 Context 클래스의 하위 클래스이므로 여러분의 클래스 또한 Context 인것입니다.

다음으로 setText 메소드를 이용해서 tv 에 텍스트 값을 넣어줍니다.

마지막은 setContentView 메소드에 텍스트뷰인 tv 값을 인자값으로 던져주어 액티비티 위에 텍스트 값을 보여줍니다.


어느정도 이해가 되셨는지 잘 모르겠습니다.


저도 안드로이드 개발자 사이트에서 공부하고 있는 상태이므로 그렇게 확실하게는 전달하지 못하는 것


같기도 하군요 ㅠ.ㅠ


그래도 열심히 하고 있단 것만 알아주시길 ㅎㅎ


다음에도 안드로이드 관련된 글로 찾아뵙도록 하죠.


Eclipse 에서 쉽게 import 하기

제공되는 각종 패키지들을 사용하기 위해선 import 를 해야 합니다.

하지만 막상 쓸려고 하면 어떤 패키지를 import 해야 할 지 모르는 경우가 있습니다.

자주쓰는 경우라면 쉽게 외울 수 있지만, 그렇지 않은 경우는 직접 찾아야 하는 번거로움이 있죠

주로 이클립스를 사용하셔서 JAVA Code 를 작성하시는 분들이라면 이미 알고 있겠죠?

하지만 저처럼 잘 몰랐던 분들도 있으시리라 생각해 이렇게 팁을 작성합니다 ㅎㅎ

그러면 그 번거로움을 해결하기 위해 간단한 단축키를 알려드리겠습니다.

Ctrl + Shift + O

이 단축키를 사용하시면 해당되는 패키지들이 자동으로 Import 됩니다.

한번 테스트 해보시길 ^^


Hello Android?

모든 프로그래밍의 시작은 역시 화면에 Hello World를 찍어보는게 아닐까?

그래서 안드로이드 프로그래밍도 마찬가지로 Hello World를 먼저 찍어보겠습니다.

그러면 맨 먼저 이클립스를 실행해야 겠죠? (아직 개발환경 설정이 되지 않으신 분은 이전 포스트

안드로이드 시작하기(설치)

를 참고해주세요
이클립스를 실행하셔서 메뉴의
File -> New -> Others 로 들어가주세요.



















새로운 프로젝트를 생성하기 위해 옆의 그림과 같이 Android 카테고리의 Android Project를 선택하셔서 Next 를 클릭해주시면 다음으로 넘어갑니다.














자 이제 프로젝트에 대한 정보를 넣어주어야 합니다.

Project Name 프로젝트의 이름
Contents 이곳에서 새로운 프로젝트인지 기존의 프로젝트를 가져와서 쓸 것인지를 결정합니다.
Build Target 안드로이드의 버전을 선택하시면 됩니다. 저는 제일 최신 버전인 2.1을 선택
Application name 에는 이 프로그램의 이름을 적어주시면 됩니다.
Package name 에도 역시 패키지 이름을 정해넣어주시면 됩니다. [ex. com.example.helloworld]
Create Activity 에는 액티비티의 이름을 적어주시면 됩니다.
Min SDK Version 은 Build Target 에서 Target을 선택하시면 자동으로 기입이 되니 신경쓰지 않으셔도 됩니다.

대개 프로젝트이름과 어플리케이션 이름 액티비티의 이름은 동일하게 사용합니다.

이제 Finish 를 클릭하시면 새로운 프로젝트 생성~~ 두둥!!



새로운 프로젝트를 생성하시면 왼쪽 프로젝트 관리자 부

분에 여러분의 프로젝트가 생성이 됩니다. 각 부분에 대

해서는 다음에 설명을 드리기로 하고 간단하게 소스부터

볼까요. src 밑의 com.example.helloworld 를 더블클릭

하시면 기존에 많이 보시던 java 파일을 볼수가 있습니

다. 요놈을 더블클릭 하면 소스창이 오른쪽에 뜨는 것을

확인 하실 수 있습니다.

간단하게 소스부터 확인해 볼까요?








package com.mic.helloworld;

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

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

기존의 소스는 이렇습니다. 이제 몇줄만 추가해볼까요?

package com.mic.helloworld;

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


public class HelloWorld extends Activity
{
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState)
{
       super.onCreate(savedInstanceState);
     TextView tv = new TextView(this);
     tv
.setText("Hello, Android");
     setContentView
(tv);
 
}
}

추가된 부분과 바뀐 부분이 보이시나요?

이제 코드도 작성되었으니 한번 실행을 해보아야 겠죠?

아래 그림과 같이 Run Configuration 을 실행시켜 줍니다.
































실행 설정에서 Browse 를 클릭하시면 자신이 현재 만들어 놓은 프로젝트가 보입니다.

여기서 방금 함께 만들어보면 Hello android 프로젝트를 선택하신후 Run 을 실행하시면 됩니다.

안드로이드 에뮬레이터의 실행은 Virtual OS를 띄워서 실행하는 것이므로 실행하는데 있어 시간이 꽤

걸릴 수 있습니다. 혹시 뻗어버렸나? 하고 끄지 마시고 차분히 기다려 주시길.......

저도 노트북으로 하는데 한번 실행시킬때마다 기다리는게 ㅠ.ㅠ

차분히 기다리시면 다음과 같은 실행화면을 보실 수 있습니다. ^^



다음과 같은 실행화면이 나오면 성공!!!

다음에는 소스코드에 대한 분석을 해보도록 하겠습니다.

부족한 글 읽어주셔서 감사합니다 ^^

SKT 안드로이드 어플리케이션 공모전

1~2차 TAC(Tstore Application Competition)이 종료되고 벌써 3차 TAC이 시작되었습니다.

먼저 공지 포스터 부터 확인 ㄱㄱ싱!

지금은 TAC에 접수하는 것을 목표로 잡았습니다. 처음 개발이니 완성이 목표죠 ㅎㅎ

그나저나 수상상금이 기발하네요 ㅋㅋㅋ

상금한번 눈여겨 보시길 어이쿠 소리 나오실겁니다.

일단 참가신청은 한국 돌아가서 개발팀을 정리한 후에 하도록 하고 3월중에 개최될 컨퍼런스에도 참가

하고 싶은 마음이 굴뚝 같군요 ㅎㅎ

안드로이드 시작하기(설치)

안드로이드를 공부하리라 결심하면서 가장 먼저 한 일은 역시 정보수집 이었습니다. 멀 알아야지 시작을 할테니까 ㅋㅋ

현재 캐나다이기 때문에 서적은 구입할수 없었고(구할려고 하면 구할 수 있다. 다만 캐나다는 서적이 한국에 비해 비싸다) 도서관 홈페이지를 통해 검색해 보았으나 안드로관련 서적은 없는 상태 ㅠ.ㅠ

여기저기 웹페이지, 블로그, 카페 등을 돌아다니면서 공부를 해야했습니다. ㅠ.ㅠ (여기서, 댓글은 못달았지만 많은 정보 주신 카페분들, 블로거분들에게 감사의 인사를 꾸벅 -_-)

공부를 시작하면 역시 이론공부보다는 실전!! 이라고 생각하는 나이기에 ㅡ,ㅡ;;; 일단 개발환경 설치부터 들어갔습니다.

안드로이드 개발환경을 구축하기 위해선 다음과 같은 과정이 필요!!

  1. 이클립스 설치
  2. JDK 설치
  3. 이클립스 플러그인 설치
  4. 안드로이드 SDK 설치
  5. AVD 생성 (나중을 위해 Virtual SD CARD 도 생성)

먼저 이클립스부터 설치해보도록 하죠.

안드로이드 개발은 자바를 기반으로 합니다. 그렇기에 자바용 개발툴을 그대로 사용할 수 있습니다. 개발시 유용한 기능 제공하는 플러그인을 지원하는 이클립스를 설치!!

이클립스는 이클립스 홈페이지에서 다운가능합니다. 사이트를 들어가면 다운로드 항목에서 Eclipse IDE for Java Developers를 다운받도록 하면 됩니다. 압축을 원하는 폴더에 해제하고 나면 이클립스 설치는 끝이납니다.

개발툴이 있어도 컴파일을 할 수 없으면 말짱 도루묵!! 자바를 컴파일 하기 위해 JDK를 설치해보도록 하죠.

JDK 역시 Sun 홈페이지에서 다운로드 항목에서 Java SE로 들어가신 후 Java SE Development Kit (JDK)를 다운로드 하신 후에 설치를 해주시면 됩니다.





다음으로 이클립스 플러그인인 ADT(Android Development Toolkit)를 설치하도록 합시다.

이클립스 메뉴에서 Help 의 Install New Software를 선택하신 후, Add 를 선택하셔서 Location 에 http://dl-ssl.google.com/android/eclipse 를 Add 합니다.

Developer Tools 를 펼치면 DDMS 와 ADT가 있습니다 체크하신후 Next
이 이후부터는 Next 와 Finish 클릭만으로 설치하시면 됩니다. (뭔가 대충 ㅡ,ㅡ;;;)
설치하신후에 이클립스를 다시 시작한다고 하니 갑자기 꺼진다고 놀라지 마세요.
간혹 영어라서 읽어보지 않고 호들갑 떠시면 곤란합니다 ㅋ

이제는 SDK 경로를 지정해주고 업데이트를 해보도록 하죠

SDK 경로 지정은 이클립스 메뉴의 Window의 Preferences로 들어가셔서 보시면 왼쪽 메뉴에 Android를 클릭합니다. SDK 로케이션에 SDK가 설치된 경로를 지정해주시면 됩니다. 아래의 그림을 참고해주세요.


다음으로 SDK 를 업데이트 하기 위해 SDK and AVD Manager를 열어보도록 합시다. 이클립스의 툴바에 보시면 아래그림과 같은 핸드폰모양의 아이콘을 클릭하시면 됩니다.
Manager 의 왼쪽에서 Available Packages를 선택하시면 업데이트 가능한 목록이 나옵니다. 체크를 하신후에 Install Selected를 클릭하셔서 진행하시면 됩니다.
설치하기 까지 다소 시간이 걸릴 수 있으니 느긋하게 기다려주세요 ㅎㅎ

이제 마지막으로 AVD 와 Virtual SD Card 를 생성해보도록 하죠.

다시 한번 SDK and AVD Manager 를 열도록 합니다. 이번에는 Virtual Devices 항목을 선택해서 새롭게 생성하기 위해 New를 클릭!!
Name 에는 AVD의 이름을 Target 에는 사용할 SDK의 버전을 선택하시면 됩니다.
요즘에는 SD Card 생성을 커맨드 명령으로 내렸는데 이제는 이렇게 이클립스에서 바로 생성이 가능합니다. 원하는 사이즈의 용량을 적으시면 됩니다.

Hardware 부분에는 AVD의 특성을 넣어줄 수 있습니다. SD Card 지원여부도 New 를 선택해서 지원해주시면 됩니다.

모든 설정이 끝나면 Create AVD를 클릭하셔서 마무리 하시면 됩니다.

여기까지가 기본적인 안드로이드 개발환경 설정하는 방법입니다.
첫 포스팅이라서 그렇게 좋은 자료가 되지 못 할 수도 있겠지요? ㅎㅎ

그래도 찾아오시는 분들이 이자료를 통해서 쉽게쉽게 배워가셨으면 합니다. 이제 실질적인 코딩에 들어가보아야죠 ㅎㅎㅎ