GCM은 Google Cloud Messaging에 약자로 서버에서 클라이언트(Android Application)으로 데이터를 

 

보낼 수 있도록 구글에서 제공하는 무료 서비스이다.

 

간략하게 구조를 보자면, 서버에서 클라이언트에게 메세지를 전송하기 위해 GCM Sevice로 메세지를 

 

보내면 GCM Service에서는 등록된 디바이스로 메세지를 전송하게 된다.

 

자세한 내용은 구글에 많이 있으니 참고하기 바란다.

 

일단 소개하려는 내용은 GCM 구조를 파악하기 위해 최대한 간단히 작성하며, 

 

Application 내에서 메세지를 전송하고 다시 자신이 GCM 메세지를 받아 출력 하는 구조이다.

 

절차는 크게 아래와 같다.

 

 1. 이클립스내에 SDK Manager에서 Google Cloud Messaging for Android Library  설치

 

2. Google Api Console 페이지에서 Project number(sender ID) 와 Api Key를 발급

 

3.  코드 작성

 

그럼 각 단계별로 세부적으로 살펴보자.

 

1. Google Cloud Messaging for Android Library 설치

 

GCM 서비스를 이용하기 위해서는 안드로이드 2.2(froyo)이상의 버전이 필요하며, 

 

GCM 관련 라이브러리가 설치되어야 한다.

 

이클립스내에 SDK 매니저를 실행하여 GCM  서비스 라이브러리를 설치한다,

 

 

2. Google Api Console 페이지에서 Project Number 및 APIKey 발급받기

 

GCM 서비스 라이브러리 설치가 끝나면 기본적인 셋팅은 끝이다. 

 

이제 자신의 프로젝트에서 GCM을 사용하기 위해 API 키를 발급받아야 한다.

 

Google API Console 페이지로 접속하자.

 

API Project를 한번도 생성한적이 없다면 아래와 같은 화면이 출력될 것이다.

 

Create Project를 클릭하자.

 

 

 

화면이 전환되면서 새로운 API Project가 생성되며, 해당 프로젝트에서 사용할 

 

서비스를 선택하는 토글버튼 리스트가 출력된다.

 

GCM Service를 이용할 것이므로, Google Cloud Messaging for Android 서비스에 토글버튼을

 

on"으로 변경한다.

 

 

 

사용할 서비스 토글이 완료되면 다시 페이지 상단으로 가서 좌측 Project 메뉴들 중 

 

API Access를 선택한다. 

 

API  화면에서는 서버키를 생성하게 되는데 서버키는 서버에서 클라이언트로 push 메세지를 보낼때 

 

사용되므로, 잘 기억하도록 하자. 

 

아래와 같이 Create new Server key 버튼을 누른다.

 

 

 

버튼을 누르면 아래와 같이 팝업창이 뜨는데,  그냥 디폴트 값으로 생성한다.

 

입력박스를 비운채로 Create 버튼을 누른다.

 

 

 

 이 과정이 끝나면 Server key 발급이 완료된다.  

 

아래 빨간 박스 부분이 새로 생성한 Server  key값이다.

 

나중에 작성 할 Application에서 필요하므로 아래 빨간박스안

 

검정선으로 가려진 부분값을 복사 해둔다.

 

 

 

이제 Project Number를 확인해야 한다. 

 

Project Number는 Project ID로써 클라이언트에서 push메세지를 받았을 때

 

받은 push가 어떤 Application에서 받아야 할 push인지 구분을 위한 값이다.

 

다시 좌측 상단 메뉴에 Overview 메뉴를 클릭한다.

 

아래 그림에서 처럼 Project Number를 Server key와 마찬가지로 복사해둔다.

 

 

 

이 과정까지 하면 GCM 사용을 위한 기본 준비가 끝이다. 이제 간단한 Application 작성을

 

통해 GCM을 확인할 수 있다.

 

3. 코드작성

 

이제 새 프로젝트를 하나 생성한다.  


GCM 사용을 위해선 GCM jar 파일을 라이브러리로 추가해야한다.

 

작성할 Application이 GCM 전송과 수신을 모두 하나의 단말에서 할 것이므로

 

서버측 라이브러리와 클라이언트 라이브러리를 모두 imort 하자.

 

클라이언트 라이브러리 : android-sdks/extras/google/gcm/gcm-client/dist/gcm.jar

서버 라이브러리 : /Users/cho5652/android-sdks/extras/google/gcm/gcm-server/dist/gcm-server.jar 

 

 

 

이제 본격적으로 코드를 작성하자.

 

먼저 이전에 Google Api Console 페이지에서 발급한 Project Number와 

 

Server key를 변수로 선언한다. 

 

또한 Activity에서 push요청을 수행할 버튼과 push를 수신했을 때

 

Activity에서 토스트 팝업을 띄우기 위한 핸들러를 선언한다.

 

MainActivity를 열어서 onCreate() 안에 다음 코드를 추가한다.

 

아래 화면에서 senderId 에는 Project Number를

 

apiKey 에는 Server key를 넣는다.

 

 

 

이제 선언한 senderId를 이용해 자신의 디바이스를 등록한다.

 

 

getRegistrationId(Context) 메소드를 통해 등록된 Id를 받아오며,

 

등록된 Id값이 없을 경우 등록 작업을 수행한다.

 

 

 

다음은 push를 보내기 위한 버튼을 정의한다.

 

아래 동작은 서버에서 수행하는 경우가 대부분이며, 지금은 간단한 GCM 동작 확인해

 

클라이언트에서 바로 보내도록 하겠다.

 

Sender에 인자값으로는 Google API Console 페이지에서 발급 받았던,

 

Server key를 넣어준다.

 

메세지 데이터를 만들고,  전송작업을 수행한다.

 

 

 

이제 push가 왔을 경우 Broadcast receiver에 의해 수행 될 Service 클래스를 작성해야 한다.

 

Service 클래스의 이름은 GCMIntentService로 하며 이 클래스는 GCMBaseIntentService를 

 

상속 받도록 한다.

 

 

GCMBaseIntentService를 상속받으면 

 

onError(Context, String), 

onMessage(Context, Intent), 

onRegister(Context, String),

onUnregister(Context, String)

 

네가지 메소드를 오버라이드 하게된다.

 

 

 

onError(Context, String)는 push를 받을 때 에러가 날 경우 호출되는 콜백 메소드이며 

 

 에러 내용을 String값으로 전달해 준다.

 

onMessage(Context, Intent)는 push를 받을 경우 push 메세지에 데이터를 Intent값으로 받으며,

 

이 Intent값을 분석하여 득정 동작을 수행할 수 있다.

 

onRegister(Context, String), onUnregister(Context, String)은 GCM을 등록하거나 해제할때 콜백되며, 

 

인자값으로 등록된 Id값을 받는다.

 

우리는 MainActivity에서 push를 보낸 후 다시 GCM service로 부터 push를 받아서

 

데이터에 담긴 내용을 토스트로 출력할 것이므로 해당 내용을 onMessage에 작성한다.

 

 

 

여기까지가 코드 적용 부분이다.

 

이제 마지막으로 manifest 파일에 permission을 추가하고,

 

 

위에 GCMIntentService를 등록하며, push메세지를 감지하기 위해 Android에서 제공하는 

 

 

GCMBroadcastReceiver를 등록한다.

 

 

 

이렇게 하면 한대의 단말에서 push를 보내고 받을수 있다.

 

물론 GCM 본래 취지에는 어긋나지만 , 위 예제를 통해 GCM의 구조에 대해 어느정도 알수 있었다.

[출처] [Android GCM] 예제|작성자 안도이드



출처 : http://blog.naver.com/dolking1234?Redirect=Log&logNo=70168168716


Network address space


실행되는 각 에뮬레이터 인스턴스는 개발머신의 네트웍 인터페이스나 설정과 분리된 가상 라우터/방화벽 뒤에서 실행된다. 에뮬레이트 되는 디바이스는 개발머신이나 다른 에뮬레이터 인스턴스를 볼 수가 없다. 이더넷을 통해 라우터/방화벽에 연결된걸로만 보이게 된다. 

각 인스턴스를 위한 가상 라우터는 10.0.2/24 네트웍 주소 공간을 관리한다. - 라우터가 관리하는 모든 주소는 10.0.2.<xx>의 형태를 가지고 여기서 <xx>는 숫자이다. 이 공간내의 주소는 에뮬레이터/라우터에 의해 다음과 같이 미리 할당되어 있다.

Network Address      Description
-------------------  ------------
10.0.2.1             Router/gateway address 
10.0.2.2             Special alias to your host loopback interface (i.e., 127.0.0.1 on your development machine) 
10.0.2.3             First DNS server 
10.0.2.4 / 10.0.2.5 / 10.0.2.6 Optional second, third and fourth DNS server (if any) 
10.0.2.15            The emulated device's own network/ethernet interface 
127.0.0.1            The emulated device's own loopback interface  

실행되는 모든 에뮬레이터 인스턴스는 동일한 주소 할당을 사용하고 있음을 주의해라. 즉 한 개발머신에 두개의 에뮬레이터 인스턴스가 동시에 실행되고 있을 때 각각의 에뮬레이터는 자신의 라우터를 가지고 그 라우터 뒤에서 동일한 IP 주소인 10.0.2.15를 가지게 된다. 에뮬레이터 인스턴스는 라우터로 분리되고 서로를 볼 수 없다. 

또한 개발머신의 127.0.0.1은 에뮬레이터의 자체 루프백 인터페이스에 대응한다. 개발머신의 루프백 인터페이스(127.0.0.1)에서 실행되고 있는 서비스를 억세스 하고 싶으면 127.0.0.1 대신 특별 주소인 10.0.2.2를 사용해야 한다.

마지막으로 각 에뮬레이터 디바이스의 미리 할당된 주소들은 안드로이드 에뮬레이터에 한정된 것이고 실제 디바이스에서는 완전히 다를 수도 있음을 주의해야만 한다. 


Local Networking Limitations

각 에뮬레이터 인스턴스는 가상 라우터 뒤에서 실행되지만 실제 라우터를 통해 인터넷에 연결되는 실제 디바이스와는 다르게 에뮬레이터 디바이스는 물리 네트웍을 억세스 할 수 없다. 그 대신 개발머신상의 일반적 어플리케이션의 일부분으로 실행된다. 즉 개발머신에서 실행되는 다른 어플리케이션같이 동일 네트웍 제한을 받게 된다. 

   * 에뮬레이터 디바이스와의 통신은 개발머신에서 실행되는 방화벽 프로그램에 의해 막힐 수도 있다.
   * 에뮬레이터 디바이스와의 통신은 개발머신이 연결되어 있는 다른 (물리적) 방화벽/라우터에 의해 막힐 수도 있다.

에뮬레이터의 가상 라우터는 개발머신의 네트웍 환경이 허용해주면 모든 outbound TCP/UDP 커넥션/메시지를 에뮬레이터 디바이스의 대리로 처리할 수 있어야 한다. 호스트 OS와 네트웍에 의해 제한되지 않으면 포트번호나 범위에 대한 별다른 제한은 없다. 

환경에 따라 에뮬레이터는 다른 프로토콜을 지원하지 않을 수 있다. 현재 에뮬레이터는 IGMP나 멀티캐스트를 지원하지 않는다


Using Network Redirections

가상 라우터 뒤에 있는 에뮬레이터 인스턴스와 통신하기 위해서는 가상 라우터의 네트웍 리다이렉션을 설정해 줘야 한다. 그러면 클라이언트는 라우터의 지정된 게스트 포트로 연결하고 라우터가 그 포트로 오가는 트래픽을 에뮬레이터 디바이스의 호스트 포트로 포워딩하게 된다.

네트웍 리다이렉션을 설정하려면 에뮬레이터 인스턴스에서 호스트/게스트 포트/주소를 매핑해야 한다. 네트웍 리다이렉션을 설정하는데 두가지 방법이 있다. 에뮬레이터 콘솔 명령어를 사용하거나 ADB 툴을 사용하면 된다.


Setting up Redirections through the Emulator Console

각 에뮬레이터 인스턴스는 그 인스턴스에 명령어를 실행할 수 있도록 연결할 수 있는 제어 콘솔을 제공한다. 리다이렉션을 설정하려면 redir 콘솔 명령어를 사용할 수 있다.

먼저 타겟 에뮬레이터 인스턴스의 콘솔 포트 번호를 알아야 한다. 예를 들어 첫번째 실행된 에뮬레이터 인스턴스를 위한 콘솔포트는 5554이다. 다음 명령어를 사용해서 타겟 에뮬레이터 인스턴스를 위한 콘솔에 연결한다. 

telnet localhost 5554

연결되면 redir 명령어를 사용해서 리다이렉션을 설정할 수 있다. 리다이렉션을 추가하려면 다음과 같다.

redir add <protocol>:<host-port>:<guest-port>

여기서 <protocol>은 tcp 또는 udp, <host-port>와 <guest-port>는 각각 개발머신과 에뮬레이터 시스템간의 매핑을 설정한다.

예를 들어 호스트(개발머신)의 127.0.0.1:5000으로 들어오는 모든 TCP 커넥션을 에뮬레이터 디바이스의 10.0.2.15:6000으로 리다이렉션 하도록 설정하려면 다음의 명령어를 사용하면 된다.

redir add tcp:5000:6000

리다이렉션을 삭제하려면 redir del 명령어를 사용하면 된다. 특정 에뮬레이터 인스턴스의 모든 리다이렉션 목록을 보고 싶으면 redir list명령어를 사용한다. 

포트번호는 로컬 환경에 의해 제한된다는걸 주의해라. 즉 일반적으로 관리자 권한이 없으면 1024번 이하의 포트 번호는 사용할수가 없다. 또한 호스트의 다른 프로세스가 이미 사용하고 있는 호스트 포트를 리다이렉션 하려고 하면 redir은 에러메시지를 발생한다. 


Setting Up Redirections through ADB

ADB 툴로 포트 포워딩을 설정할수도 있다.  또한 현재 ADB는 ADB서버를 kill하는것 이외에는 리다이렉션을 없앨 수 있는 방법을 제공하지 않는다. 상세한 내용은 ADB 문서의 Forwarding Ports를 참고하면 된다.


Configuring the Emulator's DNS Settings

처음 시작될 때 에뮬레이터는 호스트가 현재 사용하고 있는 DNS 서버 목록을 읽는다. 그래서 그 목록중에 최대 4개까지의 서버 주소를 기록하고 각각의 주소를 에뮬레이터의 10.0.2.3, 10.0.2.4, 10.0.2.5, 10.0.2.6으로 alias한다.

리눅스와 OS X에서 에뮬레이터는 /etc/resolv.conf 파일을 파싱해서 DNS 서버 주소를 가져온다. 윈도우에서는 GetNetworkParams() API를 호출해서 주소를 얻어온다. 즉 에뮬레이터는 hosts 파일(리눅스나 OS X에서는 /etc/hosts, 윈도우는 %WINDOWS%\system32\HOSTS)의 내용을 무시한다는 것이다.

명령어 라인에서 에뮬레이터를 시작할 때 -dns-server <serverList> 옵션을 사용해서 수동으로 사용할 DNS 서버 주소를 지정할수도 있다. <serverList>는 콤마로 구분된 서버 이름 또는 IP 주소 목록이다. 


Using the Emulator with a Proxy

에뮬레이터가 프락시 서버를 통해 인터넷을 억세스 해야 하는 경우 에뮬레이터를 시작할 때 -http-proxy <proxy> 옵션을 사용해 적절하게 리다이렉션 하도록 설정할 수 있다. 이 경우 <proxy>의 프락시 정보는 다음중의 한가지 포맷을 사용할 수 있다.

http://<machineName>:<port> 또는 http://<username>:<password>@<machineName>:<port>

-http-proxy 옵션은 에뮬레이터가 모든 outgoing TCP 커넥션을 지정된 HTTP/HTTPS 프락시를 사용하도록 해 준다. UDP 리다이렉션은 현재 지원하지 않는다.

다른 방법으로 http_proxy 환경변수에 <proxy>의 값을 넣어 정의할수도 있다. 이 경우 -http-proxy 명령어에 <proxy> 값을 지정할 필요가 없다. 에뮬레이터가 시작될 때 http_proxy 환경변수의 값을 확인해서 변수값이 정의되어 있으면 자동으로 그 값을 사용한다.

프락시 커넥션 문제를 검사하려면 -debug-proxy 옵션을 사용할 수도 있다.


Interconnecting Emulator Instances

하나의 에뮬레이터 인스턴스가 다른 인스턴스와 통신을 할 수 있도록 하려면 다음과 같이 필요한 네트웍 리다이렉션을 설정해 줘야만 한다.

환경이 다음과 같다고 가정하겠다.

   * A는 개발머신(호스트)
   * B는 A에서 실행되는 첫번째 에뮬레이터 인스턴스
   * C는 A에서 실행되는 두번째 에뮬레이터 인스턴스

그리고 C가 연결할 서버는 B에서 실행한다고 가정한다. 

  1. B에서 서버를 설정해서 10.0.2.15:<serverPort>를 listen하도록 한다.
  2. B의 콘솔에서 A:localhost:<localPort>에서 B:10.0.2.15:<serverPort>로 리다이렉션을 설정한다.
  3. C에서 클라이언트가 10.0.2.2:<localPort>로 접속한다.
예를 들면 HTTP 서버를 실행하기를 원하는데 <serverPort>는 80번으로 하고 <localPort>는 8080으로 하는 경우의 설정은 다음과 같다.

   * B는 10.0.2.15:80을 listen
   * B의 콘솔에서 redir add tcp:8080:80 을 실행
   * C가 10.0.2.2:8080으로 접속


[ 안드로이드 개발 2.0] Hello Android 출력하기

프로그램밍언어를 처음 공부할 때 책에서  일반적으로 처음 접하는 프로그램이 "Hello World"와 같은 문자를 출력하는 것입니다.

안드로이드 개발자 사이트도 예외는 아니어서 "Hello Android"를 출력하는 예제를 소개하고 있습니다.

이번 강좌에서는 "Hello Android"를 출력 예제를 다루도록 하겠습니다.

1. 먼저 AVD(Android Virtual Device)를 생성해 두어야 합니다.
(AVD생성은 http://moozi.tistory.com/26 글을 참조하세요)

2. 이클립스에서 새로운 안드로이드 프로젝트를 생성합니다.

1) File -> New -> Project 선택


2) New Project창에서 Android Projcet 선택 후 Next버튼 클릭

3) New Android Project 창에서 다음과 같이 입력한 후 Finish버튼을 누릅니다. 

Min SDK Version 은 Build Target을 지정하면 자동 입력됩니다.


4.프로젝트가 생성되면, 왼쪽 탐색기에서 HelloAndroid.java 를 더블클릭합니다.


HelloAndroid.java 파일을 열면 기본적으로 코드가 생성됩니다. 위 그림에서 빨간색 네모상자로 표시한 + 기호를 클릭하면 다른 코드를 더 볼 수 있습니다.

5. 다음 코드를 추가로 입력합니다.


6. 이제 실행할 차례입니다.

1) Run -> Run 을 선택합니다.


2) Run As 창에서 Android Application을 선택 한 후 OK를 누릅니다.


3) 만일 코딩후 저장을 안 했다면 Yes버튼을 눌러서 저장합니다.




7. 결과화면입니다.


필자의 경우은 Run 실행후 에뮬레이터초기 화면상태에서 오른쪽의 동그란 MENU버튼을 눌러야 위의 결과화면을 볼 수 있었습니다. (MENU버튼을 누른 후에도 몇개의 경고메세지가 나왔는데, 버튼을 눌러 닫고 나니 결과물이 보입니다.)

간단한 프로그램이지만 시작이 반이라고 많은 것을 한 느낌이에요 ^^;

출처 : http://moozi.tistory.com/28

[ 안드로이드 개발 2.0 ] 개발환경구축하기5 - Virtual Device 생성

Virtual Device는 안드로이드폰 에뮬레이터를 말합니다. 이것은 사용자컴퓨터에서 가상의 안드로이드폰을 실행하는 것입니다.

이클립스 툴바에서 핸드폰모양 버튼을 클릭합니다.

Android SDK and AVD Manager창의 왼쪽패널에서 Virtual Devices를 선택하면, 생성된 AVD(Android Virtual Device)가 아무것도 없음을 알 수 있습니다.  New버튼을 클릭해서 AVD를 만들어 보겠습니다.



Create new AVD 창에서 Name을 입력하고, Target은 Android 2.0 을 선택합니다.
그리고 Create AVD 버튼을 누릅니다.




중간에 해상도등 설정하는 조그만 창이 나오면 그냥 다음으로 진행해주세요.

처음엔 다음과 같은 화면이 나옵니다.

AVD가 완전히 로딩이 끝날때까지는 시간이 꽤 많이 걸립니다. ( 3 ~5분 정도 걸리는것 같아요)
처음엔 에러가 나는 줄 알았습니다. 그래서 중간화면도 보여드립니다.


다음으로 나오는 화면입니다.


그리고나서 드디어 로딩이 완료된 화면입니다.



다음은 menu버튼을 눌러서 google에 접속한 모습입니다.



이제 안드로이드2.0을 개발할 기본적인 준비가 되었습니다.

 

출처 : http://moozi.tistory.com/26

[ 안드로이드 개발 2.0 ] 개발환경구축하기4 - Available Package 추가등록

이번에 할 작업은 Available Packages 추가등록입니다.

이클립스의 툴바에서 핸드폰모양버튼을 클릭합니다.
Android SDK adn AVD Manager창 왼쪽패널에서 Availble Packages를 선택합니다.
오른쪽에 보면 버젼별로 나와 있는데, 필자는 가장 최근버젼만 선택하였습니다. (위의 세개와 맨 마지막 항목에 체크하세요)
그리고나서 Install Selected를 누릅니다.



다음 Choose Packages to Install 창에서 오른쪽하단의 Accept All 체크박스를 클릭한 후 Install Accepted 버튼을 누릅니다.



[ 인스톨이 진행중인 모습 ]

참고로 이 과정이 시간이 오래 걸립니다.

인스톨이 완료된 후 Installed Packages를 선택하면 다음과 같이 인스톨된 패키지를 확인할 수 있습니다.
[ 추가로 설치된 패키지들 ]

앞으로 더 필요한 패키지들이 있다면 이와 같은 방법으로 추가 설치하면 되겠습니다.

[ 안드로이드 개발 2.0 ] 개발환경 구축하기3 - SDK 와 이클립스 연동

SDK와 이클립스를 연동하기 전에 먼저 다운 받아 놓은 이클립스를 실행해 보겠습니다.

참고로 이클립스를 이용해서 안드로이드를 개발하시려면 Java SDK는 미리 설치되어 있어야 합니다.
(여기서는 Java SDK설치는 다루지 않겠습니다.)

다운로드 받은 이클립스를 압축을 풉니다.


[ 다운로드 받은 이클립스를 압축을 푼 모습 ]


eclipse.exe를 더블클릭하면 실행됩니다.


처음에 위와 같이 workspace 설정화면이 나옵니다.
workspace 경로는 변경할 수 있습니다. (필자는 변경하지 않았습니다)

지정한 경로를 계속 기본값으로 사용하려면 왼쪽 하단의 체크박스를 체크하세요.


[ 이클립스 실행 화면 ]

위와 같이 실행화면이 보인다면 일단 이클립스가 정상적으로 실행된 것입니다.


이제 이클립스 안드로이드 플러그인을 다운로드 해 보겠습니다.

http://developer.android.com/ => 안드로이드 개발자 사이트로 갑니다.

(안드로이드 개발자 사이트는 IE6.0에서는 접속되지 않습니다. IE8.0 이나 구글크롬브라우저를 이용하세요!
저의 글 http://moozi.tistory.com/19 를 참조하기 바랍니다.)


상단의 SDK 탭 -> 왼쪽의 ADT Plugin for Eclipse 메뉴의 Installing adn Updating 을 클릭해서

Installing the ADT plugin 부분으로 이동하면 오른쪽에 Eclipse 3.5 (Galileo) 에 해당하는 글이 있습니다.
이 글의 설명대로 진행하면 됩니다.

1. Eclipase를 실행해서 Help > Install New Software 선택

2. Available Software 윈도우창에서 Add버튼 클릭



3. Add Site 윈도우에서 Name란에 "Android Plugin"을 입력(다른 이름으로 바꿔도 됩니다.)하고 Location란에 https://dl-ssl.google.com/android/eclipse/ 을 입력한 후 OK를 누릅니다.


만일 플러그인이 검색되지 않는다면, https에서 s를 뺀 http://dl-ssl.google.com/android/eclipse/ 로 다시 시도해 보세요.
(필자의 경우는 https://dl-ssl.google.com/android/eclipse/ 로 입력하여 아래 5번과정을 진행하다가 에러가 나서 이클립스를 종료한 후 s를 뺀 http://dl-ssl.google.com/android/eclipse/ 로 다시 시도해서 성공했습니다.)


4. 검색된 플러그인 목록을 모두 체크한 후 Next를 누릅니다.



5.  Install Details 창에서 Android DDMS 와 Android Development Tools 를 확인 하고 Next를 누릅니다.


사용자 약관에 동의한 후 Finish버튼을 누릅니다.



[인스톨이 진행되는 화면]


6. 이클립스를 재실행한다.


[ 이클립스 툴바에 핸드폰 아이콘이 등록된 모습 ]

위와 같이 툴바에 핸드폰 아이콘이 보이면 성공한 것입니다.
( 최근(2010.3)에 Android SDK Tools, revision 5로 업데이트되면서 아이콘 모양이 안드로이드 아이콘으로 바뀌었음을 알려드립니다. )


이제 다음으로 할 일은 Android SDK Directory를 가리키도록 이클립스에서 Preferences를 수정하는 것입니다.

1. 이클립스 메뉴 Window -> Preferences 선택

2. 왼쪽 패널에서 Android선택 후 오른쪽 화면에서 SDK Location 항목에 안드로이드 SDK 압축을 푼 폴더의 경로를 지정합니다. (필자의 경우는 압축을 풀어 생긴 android-sdk-windows 폴더를 D드라이브에 옮겨 놓고 "D:\android-sdk-windows" 로 지정하였습니다.)



3. Apply를 클릭하고, OK를 클릭합니다.
이 과정에서 아무 작업도 발생 안하는 것 같이 보이지만, 이클립스 화면 오른쪽 하단에 보면 SDK Ping 부분에 작업진행바가 동작하는 것을 볼 수 있습니다.

작업 완료되면 툴바의 핸드폰 아이콘을 클릭합니다.


왼쪽패널의 두번째 항목인 Installed Package를 선택해 보면 오른쪽에 Android SDK Tools, revision 4 가 등록되어 있는 것을 확인해 볼 수 있습니다.

출처 : http://moozi.tistory.com/24

이클립스는 통합개발환경(IDE)을 제공하는 Tool입니다.

http://www.eclipse.org/   => 이클립스 홈페이지입니다.




Download 메뉴를 클릭한 후, 두번째 항목을 선택합니다. 첫번째 항목인 Eclipse IDE fro Java EE Developers (189 MB) 보다는 두번째 항목인 Eclipse IDE for Java Developers(92MB)가 안드로이드개발에 더 적합합니다.



그림에서 빨간색 박스로 표시한 부분 을 클릭하여 다운로드합니다.

필자가 이글을 작성할 당시 이클립스버젼은 Galileo Eclipse 3.5 입니다.

 

출처 : http://moozi.tistory.com/21

안드로이드 2.0 개발 환경을 구축해 보겠습니다.

1. SDK 다운로드

http://developer.android.com/    => 안드로이드 개발자 사이트입니다.

안드로이드 개발자 사이트는 IE6.0 에서는 접속이 안되니 IE8.0 혹은 구글크롬브라우저를 사용하세요.
( 다음 저의 글을 참조하세요 : http://moozi.tistory.com/19 )

SDK 탭을 클릭하면 OS별로 SDK를 선택할 수 있습니다. Windows는 첫번째에 있습니다. 다운로드 링크를 클릭합니다.



사용자동의 체크박스에 체크한 후 Download버튼을 클릭합니다.



크롬브라우저의 경우는 왼쪽하단에서 다운로드 진행상황을 볼 수 있습니다.



필자의 경우 크롬브라우저의 다운로드경로는 'C:\Documents and Settings\pjs\My Documents\Downloads' 입니다.

 

출처 : http://moozi.tistory.com/20

+ Recent posts