경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

안드로이드 전체 소스를 git에서 다운받아서 빌드하고 테스트 해보자.

개발환경
- OS : Ubuntu 8.10 desktop

구글도 우분투를 권장하고 있을 뿐만 아니라 안드로이드 개발에 있어서는 우분투에서 개발하는 것이 좋은 점이 많다. 특히 에뮬레이터 네트워크 이슈등으로 인해서.

안드로이드 전체 소스코드 빌드 방법에 대해서는 다음의 글을 참고하여 직접 해 본 것이다.
http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=4

1. 환경설정

위의 kandroid.org 의 글에서처럼 필요한 패키지들을 설치해 준다.
다음의 예제들은 우분투 데스트탑 터미널이나 원격 터미널을 통해서 실행할 수 있다.

sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install valgrind

해당 패키지들을 설치하는 중에 의존성 에러등이 발생할 경우에는 해당 의존 패키지들을 설치해 준다. 대부분은 'yes'를 통해서 설치만 해 주면 된다.

다음으로는 Java SDK가 설치되어 있지 않다면 Java SDK를 설치해 주어야 한다. kandroid.org 글에서는 우분투 apt-get을 통한 SUN SDK를 설치하도록 되어 있는데 여기서는 아래의 링크를 통해서 SUN Java SDK 버전을 다운받아서 설치하도록 한다.

우분투에서 Java 설치하기

여기서 잠시 살펴볼 것은 현재 버전이 JDK1.6.0_14 임으로 update-alternatives를 다음과 같이 실행해 준다.

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/jdk1.6.0_14/bin/java" 1
sudo update-alternatives --config java

기존에 기설치된 JDK가 존재할 경우 -config 옵션을 통해서 선택하게 해 준다. 방금 설치한 JDK1.6.0_14 버전을 선택해 준다.

java -version
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)

"java -version" 커맨드를 통해서 자바 버전을 확인해 본다.

다음은 repo 명령어를 실행하기 위해서 계정 내에서 bin 디렉토리를 만들어 준다.

mkdir bin

지금까지 설정한 환경에 대한 셋팅을 마무리한다.

vi ~/.bashrc


해당 파일에 다음을 추가한다.

export LANG=c
export PATH=/home/<user_home>/bin:$PATH:.
export JAVA_HOME=/usr/local/jdk1.6.0_14
export ANDROID_JAVA_HOME=$JAVA_HOME

시스템을 재로그인 하거나 원격일 경우 로그아웃 한 후 재접속해 준다.


2. git 설치

git는 최근의 연구대상이다. 인터넷을 통해서 많은 자료를 찾을 수 있다. 다음의 자료를 통해서 대략적인 것을 이해할 있다.

git 사용자 설명서

우분투 터미널에서 다음과 같은 명령어를 통해서 git 를 설치하고, android.git의 repo를 로컬로 옮겨온다.

sudo apt-get install git-core gnupg
curl http://android.git.kernel.org/repo >/home/<user_home>/bin/repo
repo 커맨드를 실행할 수 있는 파일로 변경해 준다.

chmod a+x ~/bin/repo


3. Android 소스 다운로드 하기

안드로이드 소스를 다운로드하기 위한 로컬의 저장소를 만들어주고, 해당 디렉토리로 이동한다.

mkdir mydroid & cd mydroid

android 소스가 존재하는 git 주소로 초기화 해 준다.

repo init -u git://android.git.kernel.org/platform/manifest.git

원격 git 주소와 로컬의 저장소를 동기화 해 준다. 이 과정이 안드로이드 소스를 다운로드 받는 것이다.

repo sync

이 과정을 통해서 안드로이드 소스를 다운받게 되는데 다운로드를 받아보니 현재(2009.06.16) 기존으로 1.4GB 이다. 따라서 식사시간 전에 sync를 걸어주는 게 좋다.
간혹 네트워크 상태가 좋치 않거나 서버와의 접속이 끊어지는 경우가 있다. repo sync 명령어를 계속해서 입력해 주면 된다.

사용자 삽입 이미지

4. Android 소스 빌드

안드로이드 소스 코드를 다 받게 되면 make 명령어를 통해서 빌드하게 된다.

cd mydroid
make


현재 테스트해 본 결과로는 별도의 에러가 발생하지 않는다. 하지만 Java 관련 명령어의 링크가 제대로 동작하지 않아 에러를 발생하는 경우를 볼 수 있었다. 예를 들면 다음의 에러와 같다.

build/core/product_config.mk:261: WARNING: adding test OTA key
============================================
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=
============================================
build/core/copy_headers.mk:15: warning: overriding commands for target `out/target/product/generic/obj/include/libpv/getactualaacconfig.h'
build/core/copy_headers.mk:15: warning: ignoring old commands for target `out/target/product/generic/obj/include/libpv/getactualaacconfig.h'
make: execvp: /bin/bash: Argument list too long
host Java: clearsilver (out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/classes)
/bin/bash: javac: command not found
make: *** [out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/javalib.jar] Error 41


javac 커맨드를 찾을 수 없다는 말이니깐 "sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/jdk1.6.0_14/bin/javac 1" 명령어를 통해서 해결할 수 있다.

javah, javadoc, jar 에 대해서도 동일한 에러가 발생하였음으로 위의 명령어를 통해서 해결할 수 있다.

빌드 시간이 2시간 남짓 걸렸다...ㅡㅡ;; 암튼 많은 시간을 투자해야 하니 처음부터 긴 시간을 각오하는게 좋다^^


5. 빌드 테스트

전체 소스 빌드를 성공하였다면 img 파일이 정상적으로 동작하는 지 살펴보아야 한다. "mydroid/out/target/product/generic" 디렉토리를 살펴보자. 아래의 그림과 같이 system.img, ramdisk.img, userdata.img 파일을 포함한 다양한 파일, 폴더가 생성되어져 있어야 한다.

사용자 삽입 이미지


이제 ramdisk.img, system.img, userdata.img 파일들을 이용하여 실제로 SDK의 에뮬레이터를 구동해 보면 된다.
이를 위해서 Android SDK1.5_r2 를 설치해 주어야 한다.

http://developer.android.com/sdk/1.5_r2/index.html

각 플랫폼에 맞는 SDK를 설치해 주면 된다. 만약 SDK1.5 버전을 최초로 설치하였다면 AVD(Android Virtual Device)를 생성해 주어야 한다. 다음과 같이 해 준다. 이 때 Android SDK 설치 디렉토리의 "ANDROID_HOME/tools" 디렉토리에서 해 주어야 한다.

./android create avd -n <device_name> -t 2

위의 명령어 옵션 중에 -n 다음에 붙는 것은 이미지의 이름이고, -t 다음에 붙는 것은 SDK 버전을 뜻한다. 인터넷 상에 Android SDK 1.5 설치 관련된 자료가 많으니 참고하길 바란다.

이제 모든 준비가 되었다. 에뮬레이터를 먼저 구동해 보고 Android SDK 1.5가 정상적으로 설치되었는지 확인해 다음 위에서 빌드한 파일로 테스트해 보자.

./emulator -avd <device_name>


위의 명령어를 통해서 에뮬레이터를 실행하면 SDK로 설치한 img 파일로 실행된다. App 들이 정상적으로 동작하는지 확인해 보자.

다음은 에뮬레이터를 종료시키고 빌드한 img 파일을 이용하여 에뮬레이터를 동작시켜 보자.

./emulator -adv <device_name> -ramdisk <file> -system <file> -initdata <file>


형태로 실행하면 되는데 <file> 에 해당하는 img 파일들을 절대경로로 지정해 주면 된다.
-ramdisk 다음의 파일을 "ramdisk.img", -system 다음의 파일은 "system.img", -initdata 다음의 파일은 "userdata.img" 이다.

Android SDK 1.x 에서는 -system 옵션이 -image 였다. 이전의 자료들을 보면 -image 옵션으로 설명한 곳들이 있으니 주의하기 바란다.

에뮬레이터가 정상적으로 구동하고 application 들이 정상적으로 구동되면 안드로이드 전체 소스 빌드를 성공한 것이다.
<script> function hrefMark(){ } function hrefPageGo(mark){ try{ if(mark == 'top'){ parent.window.scrollTo(0,0); }else{ document.location.href=this.location.href+"#comment"; } }catch(e){} } //포스트 글로딩후 top포커수 주기 setTimeout('hrefPageGo("top")',300); </script>
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 ePub 의 개요 [전자책 표준] 가을의 곰을... 2009.09.03 30229
1194 ubuntu에서 tcl/tk 설치 가을의 곰을... 2010.08.08 25232
1193 ProGuard - 자바 역컴파일 방지 [1] 가을의 곰을... 2010.01.14 22719
1192 안드로이드 구조분석 wiki file 가을의 곰을... 2010.01.10 22130
1191 C Programming Links 가을의 곰을... 2009.09.02 21174
1190 자바에서 x86 어셈블리로 프로그래밍: x86 Assembly Programming in Java Platform 가을의 곰을... 2011.11.15 20535
1189 ubuntu에서 wxPython 설치하기 가을의 곰을... 2010.08.08 19730
1188 Programatically retrieving data from a website into a database file 졸리운_곰 2017.02.26 18860
1187 ▣ Emacs 사용법 ver 3.0 [1] 가을의 곰을... 2010.01.02 18685
1186 GOF 디자인패턴 file 가을의 곰을... 2009.12.05 17690
1185 emacs 사용법 file 가을의 곰을... 2010.01.03 17418
1184 미래 네트워크 연구 동향 file 가을의 곰을... 2009.12.13 17234
1183 소스인사이트 단축키 (2) 가을의 곰을... 2010.10.11 17003
» Android 빌드하여 AVD 생성 및 시뮬에 올리기 file 가을의 곰을... 2010.08.15 16946
1181 기계학습 (머신러닝:Machine Learning) 참고자료 링크 : 머신러닝 : 기계 학습 프로그래밍 자료 졸리운_곰 2014.11.29 16075
1180 Overview of MS Fortran Compiler 가을의 곰을... 2009.09.04 15743
1179 Java GUI 프로그래밍 가을의 곰을... 2011.06.05 15694
1178 < 목표성취의 7단계 > 가을의 곰을... 2009.08.17 15465
1177 JQuery의 힘으로 제작된 17 가지 오픈소스 웹 게임들 가을의 곰을... 2013.01.02 15343
1176 Spring 3 MVC Hello World Example file 가을의 곰을... 2011.11.01 14983
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED