Android/Platform Compile 방법

Retired DISLab
이동: 둘러보기, 찾기

다음 순서대로 따라한다. 이 내용은 안드로이드 아나토미를 기반으로 작성되었다.

이 내용은 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
  • lucidlsb 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을 선정하여야 한다.
개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기