Android/Platform2009. 10. 16. 14:25

공식적으로 Android Platform 개발 환경으로는 Linux(Ubuntu)와 MAC OS를 언급하고 있다.
http://source.android.com/download

M$의 Window를 사용하고 있는 상태라면
Vvirtual Box등을 통해 ubuntu를 설치하거나, Linux, Window 를 멀티 부팅하게 하여
Android Platform 소스를 받고 컴파일을 하는 방법이 있을 것이다.(상위 링크 참고)

Android Code의 Distribute와 Contribute는 repo와 git라는 툴을 사용해서 한다.
git은 CVS, TortoiseSVN, ClearCase등과 같은 code를 관리하는 툴이라 생각하면 된다.
repo는 git기반으로 작성되었고 git의 많은 저장소들을 쉽게 관리할 수 있도록 도와주는 툴(스크립트)이다.
http://source.android.com/download/using-repo

그렇다.
window에서 git을 사용할 수 있다면 android platform 소스를 다운 받을 수 있는 것이다.
하지만 컴파일은 안된다.

우선 아래 링크를 참고하여 window에서 사용가능한 msysgit을 download하고 설치한다. (cygwin도 설치 해야함)
설치 시 옵션들이 잘 이해가 되지 않는다면
default 값들을 유지하면 Next만 눌러도 된다.

msysgit -
Git on Windows 개발 사이트
http://code.google.com/p/msysgit/

msysgit Download List

http://code.google.com/p/msysgit/downloads/list

설치가 완료되었으면 Git BashGit GUI를 확인 할 수 있다.

그럼 설치된 Git Bash를 실행해보자. terminal이 뜬다.

git을 이용하여 repository에서 소스를 내려 받는 기본 명령은 다음과 같다.

$ git clone git://android.git.kernel.org/platform/manifest.git mydroid


하지만 위와 같이 입력을 하게 되면 mydroid라는 폴더밑에는 default.xml 파일만 다운로드를 받고 작업이 완료된다.
원래 Linux 환경에서는 repo sync 를 이용하면
default.xml 파일을 참고하여서 전체 platform source를 다운을 받게 되는 것이다.
(실제 msysgit에서 curl을 통해서 repo를 설치하고 repo sync를 실행하여 다운로드를 시도해 봤으니
여러가지 에러가 발생하였다.)

하지만 우린 repo를 사용하지 않을 것인데,
그렇다면 160여개가 넘는project 파일들을 어떻게 다 다운 받을 것인가?
아래와 같이 일일이 입력 해줘야 한다!!!

git clone git://android.git.kernel.org/kernel/lk.git
git clone git://android.git.kernel.org/kernel/omap.git
git clone git://android.git.kernel.org/kernel/experimental.git
git clone git://android.git.kernel.org/kernel/msm.git
git clone git://android.git.kernel.org/kernel/common.git
.....

다행히 이러한 작업을 간단히 스크립트로 만들어 둔 분이 계시다.
http://bradchow.wordpress.com/2009/01/20/get-android-source-code-in-m-windows/

Download File :


해당 사이트에서 가져온 스크립트 첨부파일을 다운 받은 다음
아래와 같이 git bash에서 실행을 하게 되면 android full source를 다운 받을 수 있다.

$ sh autogit.sh


총 5.5G 정도의 디스크 공간이 필요하다.
필요한 소스만 받고 싶다면
http://android.git.kernel.org/
사이트를 참고하여서 원하는 project만 다운로드를 받아도 된다.

Posted by ekwang