ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Google Android Build 해 보기 #1
    기술 관련/Android 2009. 2. 28. 12:07
    진즉 나왔던 Google Android가 어찌 생겼는지 한 번 보고 싶다는 생각이 불쑥 들어 이리 저리 자료를 찾아 보았다.

    Google 홈페이지에서 검색된 곳은 http://code.google.com/android 들어 갔더니 Android Develper 갔더니 예전 자료만 있고 개발자 홈페이지를 새로 만들었다고 http://developer.android.com 로 가보라는 링크가 있었다. 결국 Android 공식 홈페이지는 http://www.android.com/ 였는데 구글에서는 2순위로 rank 되어 있었다.

    어쨌든 Guide에 나와 있는 Host 중 Ubuntu Linux (x86 32bit)가 있어 Linux를 설치하고 하나씩 맞춰 나갔다.

    1. Tools

    Android는 Open Source이므로 배포나 개발 참여를 위해 코드 관리를 하고 있다. 이런 경우 회사나 개인은 cvs나 svn과 같은 tool을 이용하곤 했는데 Android는 git이라는 tool을 이용한다. 이게 리누즈 토발즈가 만든거라나.. 암튼. 이걸 이용하도록 되어 있다곤 하는데 별도의 script를 두어 사용하는걸 보니 쓰는게 그리 녹록하지는 않을 것 같다. 어쨌든 필요한 tool은 전부 설치한다.
    • Git 1.5.4 또는 최신 버젼 그리고 GNU Privacy Guard를 설치한다.
    $ sudo apt-get install git-core gnupg
    • JDK 5.0, update 12 나 상위 버젼을 설치한다.
    sudo apt-get install sun-java6-jdk
    • flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl 패키지를 설치
    $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
    • 필요하다면 Valgrind 설치한다. 이는 Memory leak이나 stack corruption, array bounds overflows를 찾는데 도움이 된다.
    $ sudo apt-get install valgrind
    • Intrepid (8.10) 사용자는 libreadline 최신 버전이 필요할 수도 있다.
    $ sudo apt-get install lib32readline5-dev

    내가 가진 Ubuntu에서는 lib32readline5-dev에 대한 package는 찾을 수 없다고 나왔다. 어디에 사용하는건지는 잘 모르겠지만 아직까지는 별문제 없이 쓰고 있다. 그리고 JDK를 설치하면 JAVA_HOME에 대한 정보를 설정해 주어야 하는데 다음과 같이 세팅하면 된다.
    $ export JAVA_HOME=/usr/lib/jvm/java-6-sun

    2. Download Code

    처음에도 잠깐 이야기 했지만 코드를 download 하기 위해서는 git이라는 것을 이용해야 하는데 Android에서는 repo라는 별도의 script 를 제공하고 있다.
    1. repo 스크립드를 설치할 폴더를 지정한다. 나의 경우는 ~/disk3/android/bin 에 설치했다.
        $ cd ~/disk3/android
        $ mkdir bin
        $ export PATH=~/disk3/android/bin:$PATH
    2. repo 스크립트를 다운로드 후 실행 가능 상태로 모드를 설정한다.
      $ curl http://android.git.kernel.org/repo >~/disk3/android/bin/repo
      $ chmod a+x ~/disk3/android/bin/repo

    필요하면 PATH에 export해서 사용해도 상관없는데 자주 사용하는게 아니니까 그냥 쓴다.

    3. Workspace 설정

    repo 스크립트를 이용하려면 우선 workspace를 설정해야 한다.
    1. 작업에 필요한 폴더를 생성한다:
      $ mkdir ~/disk3/android/mydroid
      $ cd ~/disk3/android/mydroid
    2. repo init 을 실행해서 가장 최근의 버그가 수정된 Repo의 버젼을 받을 수 있다. 이 때 다음과 같이 manifest URL을 지정한다.
      $ repo init -u git://android.git.kernel.org/platform/manifest.git
      • 만약 "master"가 아닌 다른 branch에서 check out을 하려면 다음과 같이 -b 옵션을 주어 받을 수 있다.
        $ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
    3. Repo init을 실행하면 Configuration 과정에서 실 사용자 이름과 email 주소를 물어보는 단계가 나타난다. 만약 code를 반영하는 경우를 염두해 두고 있다면 email은 Google account 와 관련된 email을 사용해야 한다.

    4. Source Code 동기화

    repo 스크립트를 이용해서 최근 version의 코드를 받는다.
    $ repo sync 

    repo sync가 시작되면 source만 2GB가 되므로 꽤 오랜시간 동안 코드를 받는다.
    동기화가 완료되면 다음과 같이 mydroid 폴더에 소스가 받아진 것을 확인 해 볼 수 있다.
    mc500@jshong-vb:~/disk3/android/mydroid$ ls -l
    total 56
    -r--r--r--  1 mc500 mc500   87 2009-02-28 07:10 Makefile
    drwxr-xr-x  9 mc500 mc500 4096 2009-02-28 07:10 bionic
    drwxr-xr-x  5 mc500 mc500 4096 2009-02-28 07:10 bootable
    drwxr-xr-x  8 mc500 mc500 4096 2009-02-28 07:10 build
    drwxr-xr-x 18 mc500 mc500 4096 2009-02-28 07:10 dalvik
    drwxr-xr-x 15 mc500 mc500 4096 2009-02-28 07:10 development
    drwxr-xr-x 61 mc500 mc500 4096 2009-02-28 07:12 external
    drwxr-xr-x  5 mc500 mc500 4096 2009-02-28 07:12 frameworks
    drwxr-xr-x  5 mc500 mc500 4096 2009-02-28 07:12 hardware
    drwxr-xr-x 23 mc500 mc500 4096 2009-02-28 07:13 kernel
    drwxr-xr-x  4 mc500 mc500 4096 2009-02-28 07:13 packages
    drwxr-xr-x  9 mc500 mc500 4096 2009-02-28 07:14 prebuilt
    drwxr-xr-x  6 mc500 mc500 4096 2009-02-28 07:14 system

    5. Build

    이제 mydroid 폴더에서 make만 실행하면 되는데 그 전에 Java Tool Build에 필요한 환경 변수를 다음과 같이 설정한다.
    $ export ANDROID_JAVA_HOME=$JAVA_HOME

    그리고 make
    $ cd ~/disk3/android/mydroid 
    $ make


    댓글

Designed by Tistory.