OS : Ubuntu 10.4
Target : Android Froyo
Creator : hojun baek
참조 : 02. 우분투 10.4 기반 안드로이드 빌드 환경 구축 및 소스 받기, 빌드
1. 안드로이드의 원활한 개발을 위해 Samba, SSH 를 설치 합니다.
sudo apt-get install samba
sudo apt-get install ssh
sudo /etc/init.d/ssh restart

2. 빌드를 위한 필요 패키지 설치

sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install git-core gnupg gcc-multilib libx11-dev x11proto-core-dev
sudo apt-get install valgrind

저장소를 가져오기 위한 몇가지 패키지 설치
sudo apt-get install git-core gnupg
3. JAVA JDK 설치
* sun-java5-jdk를 찾지 못하였을 경우
sudo apt-get update 를 이용하여 리스트를 최신화시켜줌.
안드로이드 2.2 인 경우에는 반드시 1.5 버젼을 설치하셔야 하고,
안드로이드 2.1 인 경우에는 필요하신 버젼으로 설치하시면 됩니다.
/etc/apt/sources.list 에 다음 내용 추가
cd /
sudo vi /etc/apt/sources.list

deb http://kr.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://kr.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

자바 1.5 : sudo apt-get install sun-java5-jdk
자바 1.6 : sudo apt-get install openjdk-6-jdk
설치가 완료된 후
java -version(버젼 확인)
ls -al /etc/alternatives/java

자바 1.5 : ls -s /usr/lib/jvm/java-1.5.0-sun/jre/bin/java /etc/alternatives/java
자바 1.6 : ls -s /usr/lib/jvm/java-1.6.0-openjdk/jre/bin/java /etc/alternatives/java
4.  환경변수 설정(.bashrc 또는 .profile)에 추가
sudo vi ~/.bashrc
맨 아래에 다음 두줄을 추가
export  JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun  (/usr/lib/jvm  에  설치  된  자바  폴더의  이름을  적어주면 됩니다.)
export ANDROID_JAVA_HOME=$JAVA_HOME

source ~/.bashrc
5. 패키지 업데이트 & 업그레이드
sudo apt-get update
sudo apt-get upgrade

6. JAVA 우선순위 설정(자바 1.5 설치 시 또는 두 버전 모두 설치 시)
자바 1.5 : sudo update-java-alternatives -s java-1.5.0-sun
자바 1.6 : sudo update-java-alternatives -s java-1.6.0-openjdk
자바 버젂 바꾸는데 아래와 같은 에러 메시지가 발생한다면..
update-alternatives: error: no alternatives for firefox-javaplugin.so.
update-alternatives: error: no alternatives for iceape-javaplugin.so.
update-alternatives: error: no alternatives for iceweasel-javaplugin.so.
update-alternatives: error: no alternatives for jhat.
update-alternatives: error: no alternatives for jrunscript.
update-alternatives: error: no alternatives for midbrowser-javaplugin.so.
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-alternatives: error: no alternatives for schemagen.
update-alternatives: error: no alternatives for wsgen.
update-alternatives: error: no alternatives for wsimport.
update-alternatives: error: no alternatives for xjc.
update-alternatives: error: no alternatives for xulrunner-1.9-javaplugin.so.
update-alternatives: error: no alternatives for xulrunner-javaplugin.so.
update-alternatives: error: no alternatives for firefox-javaplugin.so.
update-alternatives: error: no alternatives for iceape-javaplugin.so.
update-alternatives: error: no alternatives for iceweasel-javaplugin.so.
update-alternatives: error: no alternatives for midbrowser-javaplugin.so.
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-alternatives: error: no alternatives for xulrunner-1.9-javaplugin.so.
update-alternatives: error: no alternatives for xulrunner-javaplugin.so.
sudo apt-get install sun-java5-plugin sun-java6-plugin

이는  자바  빌드와는  크게  상관은  없으나  위의  에러를  잡아주고  어플  실행의  호환성을  위한  플러그인을 설치하는 것입니다.
7. repo 다운로드
cd ~
mkdir bin
sudo gedit ~/.bashrc
마지막 줄에 다음 내용을 추가합니다.
export PATH=/home/사용자명/bin:$PATH;

source ~/.bashrc
cd ~/bin
curl http://android.git.kernel.org/repo > ~/bin/repo
chmod a+x ~/bin/repo
8. 소스 다운로드
cd ~
mkdir 폴더명
cd 폴더명
repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
이렇게 하면  froyo 소스를 다운 받게 됩니다.
repo init -u git://android.git.kernel.org/platform/manifest.git  만을 입력하는 경우는
가장 최신 소스를 다운 받게 되는 것입니다.
-b 옵션을 이용하여 원하는 소스를 다운 받으면 되는데
froyo 같은 이름을 확인 하시려면
http://android.git.kernel.org/?p=platform/manifest.git;a=summary 로 들어가시면 Heads 에서 확인 가능 합니다.
repo sync(실제로 소스를 다운 받는 명령어) - 약 1~2 시간 소요
9. 소스 빌드
source build/envsetup.sh
다운받은 안드로이드 소스에는 크로스 컴파일 환경까지 갖추어져 있습니다.
컴파일을 위해서는 envsetup.sh 파일이 환경변수에 등록 시켜주어야 하는데,
위의 명령어는 이를 위한 것입니다.
make (실제 빌드) - 약 2 시간 이상 소요~ 최소 2 시간
최초 빌드는 make 로 해주는 것이 제일 좋은 방법이고 안젂한 방법입니다.
그 이유는 먼저 컴파일 된 것을 참조하는 구문이 있을수도 있는데
그런 곳에서 오류가 나서 컴파일이 멈추어 버리는 현상이 나오기 때문입니다.
최초 빌드 이후에는 -j 옵션을 이용하여 스레드를 돌려주면 시갂을 약갂 줄여 빌드를 할 수 있습니다.