2008. 10. 22.

Eclipse 없이 android 플랫폼 프로젝트 컴파일/실행..

android 플랫폼 개발을 위해서 추천하는 개발툴이 Eclipse이다. 하지만 허접한 노트북(펜 1.6 셀, 램 1기가)에 저 거대한 IDE는 확실히 무리였다. 간단한 HelloAndroid를 실행시키는데 들어간 엄청난 시간을 생각하면 가히 압박..

이런 이유로 Eclipse없이 android 용 프로그램을 돌려보았다.


필요한 파일들

필요한 것은 컴파일을 일단은 해야하니 JDK 와 Android SDK, 그리고 컴파일에 쓰일 ANT 등이다.

JDK : http://java.sun.com/javase/downloads/index.jsp
Android SDK : http://code.google.com/android/download.html
Apache ANT : http://ant.apache.org/bindownload.cgi

이제 파일을 모두 받고 적당한 위치에 알아서 풀어놓는다.

설정..

JAVA_HOME, ANT_HOME 은 필수적으로 설정해주어야한다. 하지만 CLASSPATH는 가급적 적지 말것을 권고하고 있다.

set JAVA_HOME=d:\util\jdk
set ANT_HOME=d:\util\apache-ant

(윈도 플랫폼의 경우..)
그리고 PATH에 %ANT_HOME%\bin 와 android SDK의 tools 디렉토리를 추가해주면 설정 끝..

프로젝트 만들기


Eclipse를 쓴다면 자동으로 만들어주는 프로젝트를 수동으로 만들어주어야한다.
android SDK의 tools/activitycreator.bat 를 실행시켜준다. (리눅스에서는 activitycreator.py로 들어있을 수 있다. )

옵션이 몇가지 있지만 여기서는 간단히 --out 옵만을 사용한다.
activityCreator.bat --out HelloAndroid com.may2nine.hello.HelloAndroid

이렇게 하면 패키지 com.may2nine.hello 에 HelloAndroid 라는 Activity를 갖는 프로젝트를 현재 디렉토리아래 HelloAndroid 라는 디렉토리에 생성한다.
파일들이 무지무지 많이 생기지만 resource 파일과 기본 Activity인 com.may2nine.hello.HelloAndroid 클래스를 구현하는 com\may2nine\hello\HelloAndroid.java 가 가장 중요하다.

<font style="font-weight: bold;" size="4">컴파일</font>

프로젝트 디렉토리에 들어가 ans 를 실행시킨다.

실행과 프로그램 등록/삭제

Android 에뮬레이터를 실행시킨다. android SDK의 tools/emulator.exe 이다. 앞에서도 말해두었지만 이 디렉토리를 PATH에 잡아두는 것이 여러모로 편리할 것이다.
이제 Android 에뮬레이터가 떴다면 잠시 기다린다. 에뮬레이터에서 홈버튼(집모양 버튼)을 누르면 메인창으로 온다. 화면 아래에 있는 폴더버튼을 누르면 등록된 어플리케이션 목록이 나타난다.

어플리케이션 목록은 adb를 통해 실행되고 있는 에뮬레이터(만약 기기가 있다면 USB로 통신할 수도 있다)에 접근해서 얻을 수 있다.

이때 설치되는 프로그램은 .pak 확장자의 파일들이다. 해당하는 파일은 프로젝트 디렉토리/bin 에 들어있다.

일단 adb로 프로그램을 설치한다.

adb install bin\HelloAndroid-debug.pak


이 명령은 프로젝트 디렉토리에서 실행해주었다. install 뒤에 나오는 pak 파일의 경로를 정확하게 써주도록 한다.
이제 에뮬레이터에서 프로그램 목록을 살펴보면 HelloAndroid 라는 아이콘을 볼 수 있다. 이 프로젝트 이름은 build.xml에 기재되어 있는 이름이므로, 바꾸고 싶다면 바꿔도 된다.

프로그램을 설치한 후에 해당 프로그램이 업데이트되거나 지워야한다면 adb의 shell 모드로 들어가면 된다. adb shell 모드는 Linux등에서 볼 수 있는 쉘과 거의 동일하다. (cd , ls, rm 등이 모두 먹는다.)

adb shell 로 들어가서 data/app 디렉토리로 들어간다.
아까 설치한 pak파일을 볼 수 있다. 해당 파일을 지우는 명령은 rm 이다.
이 명령을 실행하면 에뮬레이터에서 해당하는 파일이 지워진다.

이렇게 해서 Eclipse없이 프로젝트를 구성할 수 있지만, ADT에 포함된 많은 도구 - 특히 XML을 이용해 UI를 구성하는 - 없이 Android 플랫폼 프로그램을 구성할 수 있을지는 자신이 없다.
다만, 현재 개발중인 컴퓨터가 나처럼 구린 경우에는 그나마 큰 도움이 되지 않을까 싶다. ㅠ.ㅠ

컴터 업그레이하고 싶다...

HTDP... 그리고 근황..

SICP가 무지막지한 난이도로 악명이 높아 대안적으로 나온.. 조금 쉬울거라던 HTDP..

이것도 만만치않네요..

HTDP보고 SICP 하면 좋을거라는 얘기는 뭐랍니까.. 좌절 100배중..

어쨌거나 볼만합니다. Scheme 좀 공부한 덕인지 초반 진도는 쾌적하고 무엇보다도 떡하니 실려있는 해답에 마음이 포근해지는군요..

요즘 SICP 근황은...

SICP 4장 진행하다가 다시 3장으로 백~ 했습니다. 아마 3장하다가 2장 중반으로 빽할 수도 있을듯합니다. 그동안 공부하던 것을 다시 살펴보니 많이 모자른 부분도 있고.. 그때 그때 보충도 가능하군요.. 복습하면서 배우는 것이 더 많습니다.

한동안 Practical Common LISP에 빠져 살았습니다. 최종으로는 lisp으로 이런 저런 테스트 해보면서 간단한 웹 개발을 해보려고 합니다. 하지만 lisp에서 문자열 지원은 기대할 것이 거의 없기 때문에(문자열 = 글자리스트.. -ㅇ- 누가 LISP아니랄까바..) 만드는 과정이 꽤 막막합니다.
쓸만한 webframe 쓰면 한큐에 해결되지만, 원래 From the Scratch 식으로 일을 해야 배우는 게 많은거 아니겠습니까? ^^ (Lisp/Scheme 으로 만드는 게임은 꾸준히 기획 준비중입니다. 내년에는 삽을 뜰 수 있을까요? 허허..)

현업얘기로..

기존에 사용하던 웹플랫폼이 ASP였습니다. ASP.net도 아닌.. ASP.. -ㅇ-
이걸 Python이나 Ruby로 바꿀 생각인데(플랫폼 호환을 고려해서 DB도 PostgreSQL등으로 고려중..) 주변에서 누가 Erlang 어떻겠냐고 해서 조금 고민중입니다.

그 렇게 엄청날 정도로 일을 하는 것은 아니지만 함수형 언어로 프로젝트 진행하는 것도 괜찮겠다 싶고, 그전에 사둔 Erlang책도 있어서 생각중에 있습니다. JSP는 서버 옮긴다음에 천천히 시작해야겠습니다. 지금은 웹호스팅이라... 윈도 기반에서 JSP하려니 갑갑하네요..

JAVA로 POI, XML, jTDS를 이용해서 엑셀 데이터를 MS-SQL에 꾸준히 집어넣는 프로젝트를 얼마전에 마쳤습니다. 자동으로 돌아가는 서비스를 만들었으면 좋았겠지만 엑셀 데이터는 무조건 수동으로밖에 못얻도록 해놓은 야박한 솔루션 개발사덕에, 백만년만에 JAVA 프로그램을 제작했습니다. 시간은 오래 걸렸지만... 한거보니 한숨..