昏天暗地的花了兩天時間, 終於在Fedora 8 上成功編譯了android 1.5, 和你們分享一下編譯的經驗:)java
Fedora 8 已經包含了編譯android 時所需的大部分開發包, 咱們還須要安裝git 和gperf.python
開始終端, 敲入下面的命令:linux
$ yum install git-coreandroid
$ yum install gperfgit
Fedora 8 自帶的java 開發包是JDK6, 而編譯nadroid 時須要JDK5, 不然在make sdk 時會出現錯誤.windows
能夠從sun 網站下載 jdk-1_5_0_18-linux-i586-rpm.bin , 我下載到了opt 目錄下.bash
在終端上敲入以下命令:eclipse
$ cd /optcurl
$ chmod a+x jdk-1_5_0_18-linux-i586-rpm.binflex
$ ./jdk-1_5_0_18-linux-i586-rpm.bin
文件會在/opt 下自動生成jdk1.5.0_18 子目錄, 並解壓.
而後須要設置JAVA 主目錄, 編輯/etc/bashrc 文件:
$ vi /etc/bashrc
點擊insert 或i 鍵, 進入insert 模式, 在文件末尾添加,
export JAVA_HOME=/opt/jdk.1.5.0_18
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
點擊esc, 進入命令模式, 輸入":wq", 而後敲入reboot 從新啓動.
啓動後, 開啓終端, 輸入"java -version", 若是提示當前版本爲1.5.0_18, 則安裝成功.
先要下載repo, 若是以root 用戶登錄, 則能夠將repo 下載/root/bin 目錄下( 也能夠下載/home/bin 目錄下, 但要將目
錄加入到PATH 中):
$ curl http://android.git.kernel.org/repo > /root/bin/repo
$ chmod a+x /root/bin/repo
而後在home 下創建mydroid 文件夾, 固然能夠在其餘你喜歡的目錄下創建:
$ cd /home
$ mkdir mydroid
$ cd mydroid
輸入如下命令:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
不出意外的話, 完成後應該顯示"repo initialized in /mydroid".
最後輸入"repo sync" 開始下載源代碼.
工程很大, 只是下載代碼的話須要留出2G 以上的空間, 若是還要編譯那就須要留出6G 以上的空間.
下載完成後進入源代碼目錄, 開始編譯, 以下:
$ cd /home/mydroid
$ make
完成後會生成system.img 等文件.
因爲android1.5 版本SDK 的目錄結構有所變化, 因此ADT0.8.0 不能再使用了, 咱們須要本身編譯ADT:
$ ./development/tools/eclipse/scripts/build_server.sh /home
"/home" 是編譯好 ADT 後的輸出目錄 , 能夠指定其餘你喜歡的目錄,在這個過程當中可能會自動下載
eclipse, 貌似是因爲沒有設定 ECLIPSE_HOME 環境變量的緣由 , 不過沒有細究 :). 最後須要生成linux
下的SDK, 以下:
$ make sdk
成功後, 會在./out/host/linux-x86 下生成sdk 文件夾, 其中包含了咱們須要的SDK.
注意將SDK 目錄加入到PATH 下, 修改/etc/bashrc, 加入
export PATH=/home/mydroid/out/host/linux-x86sdk/android-sdk_eng.root_linux-x86/tools:$PATH
須要卸載eclipse 上原來的ADT0.8.0( 如何卸載就不說了, 不過要注意卸載乾淨,ADT Editor 也一併卸載).
啓動android1.5 的emulator 時須要avd 文件, 先輸入"android list targets" 取得target ID, 例如爲1, 而後,
$ android create avd -n my_avd -t 1
建立avd 文件後, 便可啓動emulator,
$ emulator -avd my_avd
啓動很慢, 要耐心等待.
須要將mydroid 目錄和編譯的ADT, 複製到windows 下, 我是在window xp 下使用 explore2fs 讀取linux 分區進行的
複製.而後安裝cygwin, 注意默認的文本類型要設置爲DOS/text, 這些開發包autoconf, bison, curl, flex, gcc,
g++,git,gnupg, make, mingw-zlib, python, zip, unzip 都要選上, 不要選擇readline.
打開development/build/tools/make_windows_sdk.sh 文件,
找到"SDK_NUMBER=`echo $filename | sed -n 's/^.*_/([^_./]/+/)_[^_.]*/..*$//1/p'`", 修改成
#SDK_NUMBER=`echo $filename | sed -n 's/^.*_/([^_./]/+/)_[^_.]*/..*$//1/p'`
SDK_NUMBER=1.5
而後在cygwin 中輸入如下命令:
$ cd mydroid
$ mkdir -p out/host/windows-x86/sdk
$ development/ build / tools / make_windows_sdk.sh out / host / linux - x86 / sdk / android-sdk_eng.root_linux-x86.zip out / host / windows - x86 / sdk
一樣在eclipse 中安裝咱們編譯的ADT, 指定sdk 目錄. 啓動emulator 以前還要生成avd 文件.