Android/Platform Compile 방법
Retired DISLab
< Android
다음 순서대로 따라한다. 이 내용은 안드로이드 아나토미를 기반으로 작성되었다.
이 내용은 2012년 12월 2일 기준으로 작성되었다.
목차 |
준비
Virtual Machine에 Ubuntu 설치
- VMware 설치
- Ubuntu 64-bit 설치
- http://www.ubuntu.com/desktop/get-ubuntu/download 참조
- arm 버전이 64 비트 버전인데 Intel 칩에서도 이 이름의 파일을 이용하여 설치해야 한다.
- Ubuntu 10.04.4 설치하였음
- 디스크는 60G 이상 크기로 설정한다.
JDK 설치
Gingerbread 이상의 플랫폼을 빌드하기 위해서는 JDK 6.0 이상을 설치해야 한다.
$ sudo add-apt-repository "deb http://archive.canonical.com/ubuntu lucid partner" $ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:ferramroberto/java $ sudo apt-get update $ sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-plugin
-
lucid
는lsb release -s -c
를 실행하면 나오는 단어이다. Ubuntu 10.04를 설치하면 이 버전 이름이 나온다.
설치된 Java 버전의 확인은 아래와 같이 수행한다.
$ java -version java version "1.6.0_24" java(TM) SE Runtime Environment (build 1.6.0_24-b07) java HotSpot(TM) 64-Bit Server VM(build 19.1-b02, mixed mode) $ javac -version javac 1.6.0_24
필수 패키지 설치
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev g++-multilib libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc $ sudo apt-get install valgrind
안드로이드 다운로드 및 컴파일
Repo 설치
$ cd ~ $ mkdir bin $ export PATH=$PATH:~/bin $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo
안드로이드 소스 코드 내려받기
$ cd ~ $ mkdir mydroid $ cd mydroid $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 $ cp ~/mydroid/.repo/repo/repo ~/bin/repo $ repo sync
- -b : 옵션을 사용하지 않으면 모든 버전을 다운로드 받게 되어 10G 이상 다운로드된다.
- -b gingerbread : 진저브레드 버전을 다운로드한다.
- -b android-4.0.1_r1 : 안드로이드 4.0.1 버전을 다운로드한다.
- 다운로드 받는데 서너시간이 소요된다.
Android Platform Build
$ cd ~/mydroid $ . build/envsetup.sh $ lunch generic-eng $ make $ emulator
-
. build/envsetup.sh
를 수행면 환경변수가 설정되어 추후에 emulator 실행할 때 필요하게 된다. - 코드명에 해당하는 대상 장치
대상 장치 | 넥서스 원 | 넥서스 S | 에뮬레이터 |
---|---|---|---|
코드명 | passion | crespo | generic |
- 빌드 종류에 따른 용도
빌드 종류 | 용도 |
---|---|
user | 제한적인 접근. 사용 제품에 적합하다. |
userdebug | user와 같지만 su 계정 사용이 가능하다. 디버깅을 할 때 사용된다. |
eng | 제한 없는 접근이 가능하다. |
추후 emulator 실행
$ cd ~/mydroid $ . build/envsetup.sh $ lunch generic-eng $ emulator
-
. build/envsetup.sh
를 하여 환경변수를 설정하고,lunch generic-eng
를 이용하여 target을 선정하여야 한다.