2010. 8. 12. 20:01
VirtualBox 를 이용하여 안드로이드 빌드하기
2010. 8. 12. 20:01 in 3. Implementation/Android
1. Ubuntu.iso 파일 다운로드
You might also want Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc.
// 사용하려는 자바 버젼으로 변경한다.
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 확장 설치가 올바르게 되지 않은 것이다.
참고사이트: