안드로이드 앱 개발자를 위한 것은 아닙니다. 앱 개발을 하려면 SDK와 Eclipse만 있어도 충분합니다.
아래의 내용은 안드로이드 플랫폼 개발 입문자를 위해서 안드로이드 플랫폼 소스를 직접 받는 방법을 정리한 것입니다.
안드로이드 플랫폼의 컴파일 환경은 리눅스이며, 아래에 설명된 소스를 받는 방법 또한 리눅스를 기준으로 설명합니다. cygwin 등을 통한 방법은 제가 해보질 않아서 가능한지는 잘 모르겠습니다.
Repo Client 설치하기
먼저 설치에 필요한 파일을 위한 디렉토리를 만들고, Path를 연결해줍니다.$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ PATH=~/bin:$PATH
소스를 받기 위한 Repo Client를 설치합니다.
$ curl http://android.git.kernel.org/repo > ~/bin/repo
curl: (7) couldn't connect to host
curl: (7) couldn't connect to host
성공했다면 아무런 메시지가 나오지 않을 겁니다.
만약 위와 같이 에러메시지가 나온다면 프록시 서버 설정 때문이라고 볼 수 있습니다.
이런 경우, -x proxyip:port 를 앞쪽에 추가해서 다시 해보도록 하죠.
$ curl -x 10.244.254.254:8080 http://android.git.kernel.org/repo > ~/bin/repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 17451 100 17451 0 0 22288 0 --:--:-- --:--:-- --:--:-- 22287
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 17451 100 17451 0 0 22288 0 --:--:-- --:--:-- --:--:-- 22287
위와 같이 다운로드 로그가 나온다면 성공입니다.
다운로드 받은 것은 쉘 스크립트로 된 Repo Client 입니다. 이 파일에게 실행권한을 주어야 사용할 수 있기 때문에, 아래와 같이 권한을 부여해줍니다.
$ chmod a+x ~/bin/repo
$ ls -l ~/bin
total 20
-rwxr-xr-x 1 chanywa chanywa 17451 2011-05-02 16:49 repo
$ ls -l ~/bin
total 20
-rwxr-xr-x 1 chanywa chanywa 17451 2011-05-02 16:49 repo
여기까지 오셨으면 Repo Client 설치는 완료된 것입니다.
Repo Client 프록시 설정하기
이제 Repo Client를 이용해서 소스를 받아야 하는데, 앞에서 프록시 서버 설정을 해야했던 분만 작업하시면 됩니다. 해당없는 분은 그냥 넘어가세요.이번에는 아까보다는 좀 복잡합니다.
$ cd ~/
$ curl -x 10.244.254.254:8080 http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz > corkscrew-2.0.tar.gz
$ tar zxvf corkscrew-2.0.tar.gz
$ cd corkscrew-2.0
$ ./configure
$ make
$ cp corkscrew ~/bin
$ vi ~/bin/git-proxy
$ curl -x 10.244.254.254:8080 http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz > corkscrew-2.0.tar.gz
$ tar zxvf corkscrew-2.0.tar.gz
$ cd corkscrew-2.0
$ ./configure
$ make
$ cp corkscrew ~/bin
$ vi ~/bin/git-proxy
여기까지 진행하셨으면 vi editor가 떴을 겁니다.
처음에는 문자입력이 안되므로, i 키를 한번 눌러주세요. 그리고 아래 내용을 입력하세요.
#!/bin/sh
exec ~/bin/corkscrew 10.244.254.254 8080 $*
exec ~/bin/corkscrew 10.244.254.254 8080 $*
물론 위의 IP가 아니라 해당 프록시 주소를 적으셔야 합니다.
그런 후에, <ESC>키를 누른 다음 콜론 키<:>를 누르면, 왼쪽 하단으로 프롬프트가 갈 겁니다. wq! 를 입력하시고 엔터를 누르시면 파일이 저장되고 vi 에디터는 종료됩니다.
그리고 앞에서 만든 git-proxy 파일에 대해서, 아래와 같이 추가 작업을 해줍니다.
$ git config --global core.gitproxy '/home/chanywa/bin/git-proxy'
$ chmod +x ~/bin/git-proxy
$ chmod +x ~/bin/git-proxy
git config 문장에서의 경로는 '~' 기호없이 절대경로로 적어줘야하는 것 같습니다.
자~ 여기까지가 프록시 작업입니다.
프록시 설정이 필요없으신 분은 생략해도 되는 부분이겠지요.
Repo Client 설정하고 소스 받기
이제 소스를 받기 위해 Repo 초기화를 합니다.아래와 같이 먼저 소스를 받을 디렉토리를 아무거나 만든 후에, repo init 을 합니다.
$ mkdir ~/work
$ cd ~/work
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread
$ cd ~/work
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread
만약 프로요 버전을 받고 싶으면 'gingerbread' 대신에 'froyo'를 입력하시면 됩니다.
그런데, 이런 에러가 뜨는 경우도 있습니다.
Traceback (most recent call last):
File "/home/chanywa/bin/repo", line 91, in ?
import readline
ImportError: No module named readline
File "/home/chanywa/bin/repo", line 91, in ?
import readline
ImportError: No module named readline
파이썬 버전에 따라서 readline 모듈이 없는 경우도 있다고 하네요.
이런 경우에는 repo 파일의 91 번째줄을 주석처리하시면 됩니다.
$ vi ~/bin/repo
<:> 키를 누른 다음 91 을 적고 엔터를 누르시면 바로 91번째 줄로 이동합니다.
그런 다음 <i> 키를 누르시고, <#> 키를 누르면 '#' 글자가 삽입되고,
<ESC>, <:>, <w>, <q>, <!>, <ENTER>를 누르시면 완료됩니다.
다시 한번 repo init 을 시도하시면 될 겁니다.
정상으로 진행이 됐다면 이름과 메일주소, 색상설정 등을 확인합니다.
Your Name [찬이]: chany
Your Email [chanywa@heoseng.(none)]: chany@chanywa.com
Your Email [chanywa@heoseng.(none)]: chany@chanywa.com
Your identity is: chany <chany@chanywa.com>
is this correct [y/n]? y
is this correct [y/n]? y
Testing colorized output (for 'repo diff', 'repo status'):
black red green yellow blue magenta cyan white
bold dim ul reverse
Enable color display in this user account (y/n)? y
black red green yellow blue magenta cyan white
bold dim ul reverse
Enable color display in this user account (y/n)? y
repo initialized in /home/chanywa/work
$
$
와~ 드디어 소스를 다운로드 받는 순간입니다.
아래와 같이 간단한 명령 한 줄을 써줍니다.
$ repo sync
용량이 상당히 많기 때문에 다운로드 받는데 오래 걸립니다. 네트워크 상태에 따라서 몇시간 걸릴 수도 있어요.
포스트 작성시 참고한 자료
- Android Open Source (http://source.android.com/source/downloading.html)
- 조경민(broneri@gmail.com)님의 "안드로이드 goldfish 디버그하기"
그런데 원 게시물 링크를 못찾겠네요...;;
'develop' 카테고리의 다른 글
어느 문자열 복사 C 프로그램의 오류 (4) | 2012.02.01 |
---|---|
ETSI TS 규격문서 (0) | 2011.06.03 |
국가 약어 코드 (ISO 639 Language Codes) (0) | 2011.02.07 |
Eclipse에서 Android 개발시 Proxy 설정하기 (0) | 2010.10.15 |
int의 크기 (2) | 2010.08.24 |
댓글