2010. 8. 12. 20:01

VirtualBox 를 이용하여 안드로이드 빌드하기

1. Ubuntu.iso 파일 다운로드


2. VirtualBox 설치


virtualbox 에 우분투 iso 설치하는 방법은 아래 링크를 참고


3. 설치

Ubuntu Linux (32-bit x86)

To set up your Linux development environment, make sure you have the following:
Required Packages:
Git 1.5.4 or newer and the GNU Privacy Guard.
JDK 5.0, update 12 or higher.Java 6 is not supported, because of incompatibilities with @Override.
flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl.

$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 

You might also want Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc.

$ sudo apt-get install valgrind 

Intrepid ( 8.10) users may need a newer version of libreadline:

$ sudo apt-get install lib32readline5-dev 


4. java 5 또는 6 설치

* 2.2 에서는 java6에서 빌드가 됨

우분투 10.04 의 경우 1.5 가 설치되어 있지 않다. 아래 방법을 이용하여 설치하자.

저장소 목록 추가 후 목록 업데이트

//  저장소 추가 
$ sudo add-apt-repository "deb http://kr.archive.ubuntu.com/ubuntu/ jaunty multiverse"
$ sudo add-apt-repository "deb http://kr.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse" 


// 저장소 목록 업데이트후 자바 설치 
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk 


설치가 완료되면 아래 명령을 이용하여 Java 버전을 변경한다.

//  설치된 자바 목록을 확인 
$ sudo update-java-alternatives -l
java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
java-6-sun 63 /usr/lib/jvm/java-6-sun 

// 사용하려는 자바 버젼으로 변경한다. 
$ sudo update-java-alternatives -s java-1.5.0-sun 

// 자바 버젼을 확인한다. 
$ jvav -version 
java version "1.5.0_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02)
Java HotSpot(TM) Server VM (build 1.5.0_19-b02, mixed mode) 


안드로이드 SDK 버전에 따라 적절한 Java 버전을 선택하여 빌드한다.

5. Proxy 설정하기

만약 회사에서와 같이 Proxy 를 사용하는 경우는 proxy 를 설정해야 한다.

* Firefox 에서 Proxy 설정

Edit > Preferences > Advanced > Settings > Automatic proxy configuration URL

에서 Proxy 주소를 설정하자.

* /root/.bashrc 파일 수정

export http_proxy="http://프록시주소:포트"
export ftp_proxy="http://프록시주소:포트" 


변경된 내용을 적용하려면

$ source ./.bashrc 

* curl 명령어에 proxy 지정하기

$ curl http://android.git.kernel.org/repo >~/bin/repo --proxy1.0 프록시주소:포트 


* repo 역시 proxy 때문에 안될 경우

$ sudo apt-get install socket 


홈 디렉토리에서, proxy-cmd.sh 생성

#! /bin/bash
(echo “CONNECT $1:$2 HTTP/1.0″; echo; cat ) | socket dein.proxy.de 8080 | (read a; read a; cat )

실행 권한 추가

$ chmod +x proxy-cmd.sh 

아래 실행

$ export GIT_PROXY_COMMAND=/proxy-cmd.sh 

이렇게 한 후 다시 repo 명령을 실행하면 proxy 를 이용하여 소스를 받을 수 있다.

6. root 계정 로그인 하기

빌드 진행 중에 root 계정으로 로그인을 해야하는 경우가 있다. 
원래 우분투는 기본적으로 리눅스는 root 로 로그인 하는게 막혀 있다. 다음과 같이 하여
root 계정을 활성화 해야 한다.

$ sudo passwd root 


를 입력하면 현재 암호를 먼저 묻는다. 이때 현재 로그인한 ID 의 암호를 한번 입력해 주면

Enter new UNIX password:

라고 나오며 root 의 암호를 한번 더 묻는다. 이렇게 한 후 root 로 로그인 하면 됨

* 9.04 에서는 

System > Administration > Login Window > Security 탭을 찾아간 후 

"Allow local system administrator login" 에 체크해야 한다.

7. 브랜치명 지정하여 소스 다운받기

repo init -u git://android.git.kernel.org/platform/manifest.git

를 수행하면 최신 소스가 받아진다. 최신 소스는 수정중인 것이라 빌드에러가 발생할 수 있으므로 이때 브랜치명을 지정하여 다운받는 것이 좋다. 예로 아래는 2.1 인 eclair 를 다운 받는다.

repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair

버전별 이름

android 1.5 - cupcake
android 1.6 - donut
android 2.0 ~ 2.1 - eclair
android 2.2 - froyo

위 명령이 성공한 후, 

$ repo sync 

를 입력하면 소스를 받기 시작한다.

8. Windows 와 Ubuntu VirtualBox 간의 파일 공유

VirtualBox Ubuntu 에서 빌드한 안드로이드 소스를 Windows 와 공유할 필요가 있을 것이다. 이렇게 하기 위해서는Windows 와 VirtualBox Ubuntu 간의 공유 폴더를 만들어야 한다.

VirtualBox 메뉴 > 장치 > Guest 확장 설치

VBoxLinuxAdditions-x86.run 실행 (su 권한 필요)

VirtualBox 메뉴 > 장치 > 공유 폴더 생성 (virtualbox-shared 라고 만들었다고 하자)

아래 명령을 ubuntu 에서 수행한다.

$ sudo mkdir /mnt/virtualbox-shared
$ sudo mount.vboxsf virtualbox-shared /mnt/virtualbox-shared 

성공적으로 수행되면 이 폴더를 이용하여 파일을 공유할 수 있다. 혹, mount.vboxsf 를 수행할 수 없다는 에러 메시지가 나오면 Guest 확장 설치가 올바르게 되지 않은 것이다.


참고사이트: