Android 소스 코드 컴 파일 및 시스템 내 장 된 응용 Contacts 개발
http://blog.csdn.net/xixinyan/article/details/6965837
Android 소스 코드 컴 파일
안 드 로 이 드 소스 코드 획득,컴 파일 등 과 관련 해 서 는 인터넷 에 많은 댓 글 해답 이 올 라 오고 있 지만,사실 공식 홈 페이지 설명 을 바탕 으로 쓴 것 이 므 로 한 화 과정 이 라 고 할 수 있 으 므 로 게시 물이 잘 보이 지 않 으 면 소스 홈 페이지 에서 답 을 찾 을 수 있다.
http:
//source.android.com/
다음은 자신 이 Ubuntu 8.04 시스템 에서 컴 파일 하 는 과정 입 니 다.
1.소스 코드 획득
앞에서 쓴 블 로 그 를 참조 할 수 있 습 니 다.http://www.cnblogs.com/playing/
1).공식 안 드 로 이 드 소스 획득 repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread
2).CyanogenMod Android 원본 획득 repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
(원본 위치 github 의 CyanogenMod 프로젝트https://github.com/CyanogenMod)
3).삼 성 갤 럭 시 안 드 로 이 드 소스 획득 repo init -u git://github.com/drakaz/android.git -b gaosp-gingerbread
(원본 코드 는 github 에 있 는 drakaz 프로젝트 입 니 다. https://github.com/drakaz)
(자신 이 만 들 핸드폰 은 삼 성 i7500 이기 때문에 갤 럭 시 안 드 로 이 드 를 특별히 추 가 했 습 니 다.사실은 CyanogenMod 의 한 가지 이기 도 합 니 다)
2.컴 파일 다운로드 에 필요 한 도구 환경 설치
sudo apt-get install build-essential sudo apt-get install make sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install libc6-dev sudo apt-get install flex sudo apt-get install bison sudo apt-get install patch sudo apt-get install texinfo sudo apt-get install libncurses-dev sudo apt-get install git-core gnupg //(gnupg 시스템 자체 가 져 왔 을 수도 있 습 니 다) sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl sudo apt-get install ncurses-dev sudo apt-get install zlib1g-dev sudo apt-get install valgrind(선택 가능,21M 크기,일반인 은 사용 할 수 없다 고 생각 합 니 다) sudo apt-get install python 2.5(실제로 설치 하지 않 아 도 됩 니 다.Ubuntu 8.04 는 이미 자체 가 져 왔 습 니 다) sudo apt-get install sun-java6-jdk(또는 sudo apt-get install sun-java5-jdk)
(많은 사실 시스템 이 설치 되 어 있 습 니 다.빨간색 레이 블 을 제외 하고 다른 컴 파일 시 설치 되 어 있 지 않 습 니까?)
특히 주의:
JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older ( )
즉,2,3 이전 버 전 은 JDK 5,2,3,3 이후 버 전 은 JDK 6 를 사용 해 야 합 니 다.
3.소스 코드 컴 파일
명령 행 에서 make 명령 을 실행 합 니 다:
$make
그리고 긴 기다 림...
컴 파일 에 성공 하면 코드 디 렉 터 리 에 out 디 렉 터 리 가 하나 더 생 깁 니 다.
명령 행 에서 다음 과 같은 정 보 를 출력 하 는 것 을 볼 수 있 습 니 다.
Install:
out
/target/product/generic/system/xbin/scp
Notice file: system/extras/showmap/NOTICE --
out
/target/product/generic/obj/NOTICE_FILES/src
//system/xbin/showmap.txt
Install:
out
/target/product/generic/system/xbin/showmap
Notice file: system/extras/showslab/NOTICE --
out
/target/product/generic/obj/NOTICE_FILES/src
//system/xbin/showslab.txt
Install:
out
/target/product/generic/system/xbin/showslab
Notice file: external/sqlite/dist/NOTICE --
out
/target/product/generic/obj/NOTICE_FILES/src
//system/xbin/sqlite3.txt
Install:
out
/target/product/generic/system/xbin/sqlite3
Notice file: external/dropbear/NOTICE --
out
/target/product/generic/obj/NOTICE_FILES/src
//system/xbin/ssh.txt
Install:
out
/target/product/generic/system/xbin/ssh
Install:
out
/target/product/generic/system/xbin/strace
Notice file: system/extras/su/NOTICE --
out
/target/product/generic/obj/NOTICE_FILES/src
//system/xbin/su.txt
Install:
out
/target/product/generic/system/xbin/su
Install:
out
/target/product/generic/system/xbin/timeinfo
Copy:
out
/target/product/generic/system/etc/apns-conf.xml
Copying:
out
/target/product/generic/obj/NOTICE_FILES/src/kernel.txt
Finding NOTICE files:
out
/target/product/generic/obj/NOTICE_FILES/hash-timestamp
Combining NOTICE files:
out
/target/product/generic/obj/NOTICE.html
gzip -c
out
/target/product/generic/obj/NOTICE.html >
out
/target/product/generic/obj/NOTICE.html.gz
zip -qj
out
/target/product/generic/system/etc/security/otacerts.zip build/target/product/security/testkey.x509.pem
Generated: (
out
/target/product/generic/android-info.txt)
Target system fs image:
out
/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image:
out
/target/product/generic/system.img
Target ram disk:
out
/target/product/generic/ramdisk.img
Target userdata fs image:
out
/target/product/generic/userdata.img<span
class
=
"Apple-style-span"
style=
"font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px; white-space: normal; background-color: #ffffff;"
> </span>
===================================================================================
후속 컴 파일:
종종 우 리 는 이미 원본 코드 를 컴 파일 했 지만,안의 어떤 파일,어떤 항목 을 다시 수정 할 것 이다.이때 우 리 는 단독으로 컴 파일 할 수 있다.
android
$ . build/envsetup.sh
。
예 를 들 어 연락처 연락처 항목 을 바 꾼 후에 명령 을 간단하게 실행 하여 이 부분 을 단독으로 컴 파일 할 수 있 습 니 다. $mmm packages/apps/Contacts/변경 사항 을 직접 테스트 할 수 있 도록 새로운 system.img 을 생 성하 여 android 디 렉 터 리 에서 실행 해 야 합 니 다. $ make snod 물론 시스템 내부 가 아 닌 에 뮬 레이 터 나 다른 외곽 과 관련 된 것 으로 바 뀌 었 다 면 시스템.img 을 다시 만 드 는 것 이 아 닙 니 다.
=====================================================================================
4.테스트 실행
1)환경 변수 설정:
~/.bashrc 파일 을 열 고 마지막 에 다음 두 줄 을 추가 합 니 다:PATH="$PATH:$HOME/android/out/host/linux-x86/bin"ANDROIDPRODUCT_OUT=$HOME/android/out/target/product/generic export ANDROID_PRODUCT_OUT
(당신 이 만 든 out 디 렉 터 리 를 설정 하 는 것 입 니 다)
2)시 뮬 레이 터 실행:
cd $HOME/android/out/target/product/generic
emulator -image system.img -data userdata.img -ramdisk ramdisk.img
마지막 으로 시스템 에 들 어가 큰 시 계 를 볼 수 있다 면 큰 성 과 를 거 둘 수 있 습 니 다!!!
5.컴 파일 과정 에 나타 난 문제점
만약 에 위 에서 한 걸음 한 걸음 하면 성공 적 으로 컴 파일 할 수 있다 고 생각한다 면 너무 간단하게 생각 합 니 다.컴 파일 과정 에서 예상 치 못 한 오류 가 발생 하여 컴 파일 이 중단 되 는 경우 가 많 습 니 다!그러나 다행히 만난 문 제 는 보통 인터넷 에 해결 방안 이 있 습 니 다.검색 만 하면 ok 입 니 다.다음은 자신 이 번역 하 는 과정 에서 오류 가 발생 했 습 니 다.
1.g++와 같은 도구 가 없습니다.
sudo apt-get install...을 통 해 설치 할 수 있 습 니 다.
2.Android 컴 파일 시 stub-64.h 문 제 를 찾 을 수 없습니다.
Android.mk -m64 , : external/clearsilver/cgi external/clearsilver/java-jni external/clearsilver/util external/clearsilver/cs
java6 , java5 !
참고 글:http://www.webgou.info/content/programming/262/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.