안드로이드 소스 코드를 컴파일하려면 SDK 환경이 필요합니까?
-응? 컴파일 환경: ubuntu9. 10, 현재 widnows 플랫폼은 지원되지 않습니다.
1) 필요한 소프트웨어 환경을 설치합니다.
$ sudoapt-getinstall git-coregnupg sun-Java 5-JDK flexbison gperf libsdl-dev libes d0-dev libwxgtk 2.6-dev be
공식 추천은 위와 같다. 컴파일할 때 찾을 수 없는 명령이 있으면 apt-get 으로 하겠습니다. 필요할 수 있는 추가 패키지는 다음과 같습니다.
$ sudo apt-get 설치 제작
$ sudo apt-get 설치 gcc
$ sudo apt-get 설치 g++
$ sudo apt-get 설치 libc6-dev
$ sudo apt-get 설치 패치
$ sudo apt-get 설치 texinfo
$ sudo apt-get 설치 zlib 1g-dev
$ sudo apt-get 설치 valgrind
$ sudo apt-get 설치 python2.5 이상
공식 문서에 따르면 sun-java6-jdk 를 사용하면 sun-java5- JDK 를 사용해야 한다고 합니다. Make 만 있는 경우 (make 에는 make SDK 가 포함되지 않음) sun-java6-jdk 를 사용하면 문제가 없는 것으로 나타났습니다. Make SDK 는 문제가 있습니다. 엄밀히 말하면 make doc 에 문제가 있습니다. 필요한 javadoc 버전은 1.5 입니다.
따라서 sun-java6-jdk 를 설치한 후 sun-java5-jdk 를 설치하거나 sun-java5-jdk 만 설치하는 것이 좋습니다. 여기에 Sun-java6-jdk 와 sun-java5-jdk 가 설치되어 있고 javadoc. 1.gz 와 javadoc 만 수정되었습니다. Make SDK 는 이 두 가지만 사용하기 때문입니다. 이 경우 1.5 버전의 javadoc 도구를 제외한 모든 도구의 버전은 1.6 입니다.
$ sudo apt-get 설치 sun-java6-jdk
Javadoc 에 대한 링크를 수정하려면 다음과 같이 하십시오.
$ CD/etc/ 대체
$ sudo RM javadoc. 1.gz
$ sudoln-s/usr/lib/JVM/Java-1.5.0-sun/man/man1/
$ sudo RM javadoc
$ sudoln-s/usr/lib/JVM/Java-1.5.0-sun/bin/javadoc javadoc
2) 환경 변수를 설정합니다
$ emacs ~/. Bashrc
에 PATH 변수를 추가하거나 통합합니다. Bashrc 는 다음과 같습니다.
#java 프로그램 개발/작업을 위한 일부 환경 변수
Java _ home =/usr/lib/JVM/Java-6-sun
JRE_HOME=${JAVA_HOME}/jre
ANDROID_JAVA_HOME=$JAVA_HOME 을 내보냅니다
내보내기 클래스 경로 =. : $ {Java _ home}/lib: $ JRE _ home/lib: $ classpath
Java _ path = $ {Java _ home}/bin 내보내기: $ {JRE _ home}/bin
JAVA _ HOME 내보내기
JRE _ HOME 내보내기
클래스 경로 내보내기
HOME_BIN=~/bin/
내보내기 경로 = $ {path}: $ {Java _ path}: $ {home _ bin};
저장 후 업데이트 동기화:
출처 ~/. Bashrc
3) repo 설치 (안드로이드 소스 코드 업데이트용)
재구매 프로그램을 저장할 ~/bin 디렉토리를 다음과 같이 만듭니다.
$ CD ~
$ mkdir bin
2 단계에서 추가한 환경 변수 PATH 에 추가합니다.
환매 스크립트 다운로드 및 실행 가능:
$ curl? Mon.git 커널
$ CD 커널
$ git 분기
표시
* 안드로이드 시스템
현재 android-2.6.27 의 분기에 있다는 뜻입니다. 이것은 kernel/common.git 의 기본 주 분기이기도 합니다.
모든 헤드 분기 표시:
$ git 분기 -a
표시
* 안드로이드 시스템
리모콘/소스/헤드-> 기원/안드로이드-2.6.27
리모콘/오리건/안드로이드-2.6.25
리모콘/오리건/안드로이드-2.6.27
리모콘/오리건/안드로이드-2.6.29
리모컨/원점/안드로이드-금붕어 -2.6.27
리모컨/원점/안드로이드-금붕어 -2.6.29
우리는 최신 안드로이드-금붕어 -2.6.29 를 선택했습니다. 여기서 금붕어는 안드로이드 시뮬레이터가 시뮬레이션한 CPU 입니다.
$ git checkout -b 안드로이드-금붕어 -2.6.29 기원/안드로이드-금붕어 -2.6.29
$ git 분기
표시
안드로이드-2.6.27
* 안드로이드-금붕어 -2.6.29
우리는 Android 의 지점인 금붕어 2.6.29 를 해 왔다.
D) 상호 컴파일 매개 변수 설정
커널 디렉토리에서 Makefile 을 열고 CROSS_COMPILE 을 방금 다운로드한 사전 빌드의 arm-eabi 컴파일러로 가리킵니다.
교차 컴파일? = arm-eabi-
유지
Ldflags _ build _ id = $ (patsubst-wl $ (쉼표)%,%, \
$ (ld-option 호출, -Wl$ (쉼표)-빌드-id,))
이 행을 주석 처리하고 다음과 같이 빈 LDFLAGS_BUILD_ID 정의를 추가합니다.
LDFLAGS_BUILD_ID =
E) 커널 이미지 컴파일
$ CD ~/Android/ 커널
$ make 금붕어 _defconfig
$ make
F) 생성된 커널 이미지를 테스트합니다.
$ emulator-avd myvd-kernel ~/Android/kernel/arch/arm/boot/zimage