經過了痛苦的掙紮,終於編譯Android 2.3.1 原始碼通過了!!!這裡介紹一下過程:
1.
在編譯之前,先安裝好以下的庫:
sudo apt-get install bison
sudo apt-get install zlib1g-dev
sudo apt-get install lib64z1-dev
sudo apt-get install flex
sudo apt-get install libncurses5-dev
sudo apt-get install libx11-dev
sudo apt-get install gperf
以上可能不全,具體等編譯的時候缺哪個庫再去下就行了~~
2.
安裝Java 6 JDK:
sudo apt-get install sun-java6-jdk
3.
下載Android 2.3.1 的原始碼並解壓;
這部分要用git下載,比較複雜,再加上http://www.kernel.org/最近被駭客入侵,伺服器down掉了,所以沒有辦法下載原始碼了,我是用的就是老師給我的SDK原始碼。(關於如何git下載原始碼我會在之後再寫一篇博文,這裡先佔個地方)。
4.
make clean(在編譯之前先make
clean會很方便的!)
如果原先有out檔案夾,那麼 make clean 後就沒了
5.make
這是一個非常非常非常漫長的過程(我Intel 雙核兩個多小時),等吧~~~~
6.
如果成功,會產生一個out檔案夾,裡面有三個檔案夾:host,target和temp。看名字就知道他們的作用了,host是在PC上啟動並執行(如SDK,emulator等),target是在目標板上啟動並執行。target裡有
system.img 、userdata.img、ramdisk.img三個檔案。另外在這個目錄下還有一些檔案夾,有一些是和這三個檔案一樣的,只不過是沒有打包的。關於這三個檔案的詳細解釋可以參考下面這個網址:http://pccp.me/archives/39.html 講的很詳細的(這個我也摘錄下來了,可以看http://blog.csdn.net/htttw/article/details/6783604)。
最後:
附一段make編譯成功的輸出:
Target system fs image: out/target/product/sdkDemo/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/sdkDemo/system.img
Target ram disk: out/target/product/sdkDemo/ramdisk.img
Target userdata fs image: out/target/product/sdkDemo/userdata.img
Installed file list: out/target/product/sdkDemo/installed-files.txt
下面來啟動我們自己編譯好的Android SDK:
(我們以前都是從http://developer.android.com/sdk/index.html上下載已經編譯好的SDK的,這回要啟動我們自己的SDK啦!)
1.
cd out/host/linux-x86/bin/
2.
./android
提示沒有設定ANDROID_SWT,添加如下環境變數:
export ANDROID_SWT=/home/hutao/Android_project/gingerbread/out/host/linux-x86/framework/(注意:這是你自己的framework路徑!)
再次 ./android,錯誤:
Error: Error parsing the sdk.
Error: /home/hutao/Android_project/gingerbread/out/host/linux-x86/platforms is missing.
Error: Unable to parse SDK content.
其實解決方案很簡單,只要在相應路徑下建立一個platforms檔案夾即可;
再次 ./android,錯誤:
Error: Error parsing the sdk.
Error: /home/hutao/Android_project/gingerbread/out/host/linux-x86/platforms is missing.
Error: Unable to parse SDK content.
解決方案同上;
最後終於啟動Android SDK啦!
(下面的使用步驟和使用官方下載的SDK一樣)
3.
下載Android
SDK target:
在SDK中選擇available packages,選擇相應的Android SDK Platform以及API,點擊Refresh,後面就開始下載了~~
4.
為Android SDK建立一個avd(android virtual
disk):
在virtual devices裡點“New”,填上Name和target,之後點Create AVD,這樣就建好了一個avd
5.
在主介面中點start就啟動emulator了,一開始是ANDROID的字樣一閃一閃的,等比較長的時間後就可以看到Android介面了~~
完成!