最近根據看到的資料編譯了一遍Android操作系統(tǒng)的源碼,結果是成功的,但過程是曲折,首先要說的是前提條件,這個很重要,我開始就是因為沒有滿足前提條件而多走了許多彎路。 1、從http://source.獲取最新的Android源碼編譯資料,這個不是下面編譯必須用到的, 但確是所有有關Android操作系統(tǒng)源碼的編譯資料中較為準確的。
2、使用ubuntu linux 12.04 LTS,如果你要按照我寫的嘗試一下就選這個,這樣可以節(jié)省你的時間;
3、安裝相關軟件包
- sudo apt-get install git-core
- sudo apt-get install gnupg
- sudo apt-get install flex
- sudo apt-get install bison
- sudo apt-get install gperf
- sudo apt-get install libsdl-dev
- sudo apt-get install libesd0-dev
- sudo apt-get install build-essential
- sudo apt-get install zip
- sudo apt-get install curl
- sudo apt-get install libncurses5-dev
- sudo apt-get install zlib1g-dev
在我寫這篇文章時,上述安裝都是成功的,但到您看到時是否成功就不敢保證了,因為有可能有些軟件源 已經發(fā)生變化了,如果出現這種情況可以根據安裝中出現的提示中的關鍵詞上網上查查最新的解決方案,一般都 是更新軟件源,下面是更新軟件源的一般方法: 【備份軟件源】 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (如果想恢復原來的軟件源執(zhí)行:sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list) 【編輯軟件源】 sudo gedit /etc/apt/sources.list 將更新的軟件源在文件尾部添加并保存退出 【更新軟件源】 sudo apt-get update
4、安裝java jdk (1)如果系統(tǒng)已經安裝了jdk和jre最好先卸載掉;(apt-get remove jdk軟件名) (2)更新jdk軟件源 sudo add-apt-repository " deb http://us.archive./ubuntu/ hardy multiverse" sudo apt-get update (3)安裝java jdk6 sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts sun-java6-jdk (4)安裝java jdk5 sudo apt-get install sun-java5-jdk (5)修改javadoc的link
- cd /etc/alternatives
- sudo rm javadoc.1.gz
- sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
- sudo rm javadoc
- sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc
5、設置環(huán)境變量 sudo gedit ~/.bashrc 在文件尾部添加
- JAVA_HOME=/usr/lib/jvm/java-6-sun
- JRE_HOME=${JAVA_HOME}/jre
- export ANDROID_JAVA_HOME=$JAVA_HOME
- export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
- export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
- export JRE_PATH=$JAVA_PATH
- export JAVA_HOME;
- export JRE_HOME;
- export CLASSPATH;
- HOME_LIB=~/bin/
- export PATH=${PATH}:${JAVA_PATH}:${JRE_PATH}:${HOME_BIN};
- #echo $PATH
執(zhí)行:sudo source ~/.bashrc 建議:干到這里最好重啟一下ubuntu。
6、安裝編譯工具 【先解決一個android官網下載不了的問題】 sudo gedit /etc/hosts 在文件尾部追加一句:74.125.237.1 dl-ssl.google.com
cd ~ mkdir bin 以下命令用http://source./source/downloading.html上的 curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo chmod a+x ~/bin/repo
7、安裝gcc4.4
- sudo apt-get install gcc-4.4
- sudo apt-get install g++-4.4
- sudo apt-get install g++-4.4-multilib
- sudo rm -rf /usr/bin/gcc /usr/bin/g++
- sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
- sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
8、安裝python sudo apt-get install python 9、下載Android源代碼
- mkdir ~/work/android-cts-2.2_r8
- cd ~/work/android-cts-2.2_r8
- repo init -u https://android./platform/manifest -b android-cts-2.2_r8
- repo sync
這是一個漫長的過程,最好在個假期中進行。、
10、將源代碼中有關java版本校驗的信息注釋掉 cd ~/work/android-cts-2.2_r8 gedit ./build/core/main.mk
- # Check for the correct version of java
- #java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
- #ifeq ($(strip $(java_version)),)
- #$(info ************************************************************)
- #$(info You are attempting to build with the incorrect version)
- #$(info of java.)
- #$(info $(space))
- #$(info Your version is: $(shell java -version 2>&1 | head -n 1).)
- #$(info The correct version is: 1.5.)
- #$(info $(space))
- #$(info Please follow the machine setup instructions at)
- #$(info $(space)$(space)$(space)$(space)http://source./download)
- #$(info ************************************************************)
- #$(error stop)
- #endif
- # Check for the correct version of javac
- #javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
- #ifeq ($(strip $(javac_version)),)
- #$(info ************************************************************)
- #$(info You are attempting to build with the incorrect version)
- #$(info of javac.)
- #$(info $(space))
- #$(info Your version is: $(shell javac -version 2>&1 | head -n 1).)
- #$(info The correct version is: 1.5.)
- #$(info $(space))
- #$(info Please follow the machine setup instructions at)
- #$(info $(space)$(space)$(space)$(space)http://source./download)
- #$(info ************************************************************)
- #$(error stop)
- #endif
11、編譯前的最后一次準備
- cd ~/work/android-cts-2.2_r8
- source ./build/envsetup.sh
- lunch full-eng
12、編譯源代碼 好了經過漫長的準備終于可以編譯了。
- cd ~/work/android-cts-2.2_r8
- make
這個也是個漫長的過程,在假期中耐心等待吧。
13、運行編譯察看結果 如果上面sudo gedit /etc/profile 編譯成功的話我們就可以進行這一步用虛擬機看看結果了。 (1)到Android官網下載SDK,http://developer./sdk/index.html (2)將下載的SDK解壓縮到主文件夾,并改名為android-sdk-linux。 (3)sudo gedit /etc/profile 將 export PATH="$PATH:~/android-sdk-linux/tools" 寫入文件最后 (4)sudo gedit ~/.profile 將
- export PATH="$PATH:$HOME/work/android-cts-2.2_r8/out/host/linux-x86/bin"
- ANDROID_PRODUCT_OUT=$HOME/work/android-cts-2.2_r8/out/target/product/generic
- export ANDROID_PRODUCT_OUT
寫入文件結尾。 (5)用android 命令打開Android SDK Manager界面,下載安裝android2.2的SDK Platform。 (6)終于可以看結果了
- cd ~/work/android-cts-2.2_r8/out/target/product/generic
- emulator -image system.img -data userdata.img -ramdisk ramdisk.img
|