android的原始碼下載的官方網站是:http://source.android.com
原始碼的下載說明頁面是:http://source.android.com/download
其實英文好的朋友大可不必看偶在此羅嗦,直接follow google的說明就行了,一切都很簡單。
下面就把android platform在slackware 12.0上面的下載、編譯過程匯總一下:
(1)當然了,需要安裝slackware 12.0或者更高版本的linux發行版,直接選擇“full”模式,完整安裝。
(2)確認環境是否達到了要求,你可以在linux下面建立一個賬戶,然後在賬戶的目錄下面查看是否滿足如下的要求:
a)git (1.5.4或者以上版本,slackware 12.0本身就是1.5.5的)
b)python (2.4或者以上的版本,slackware 12.0本身應該是2.5的)
c)jdk5.0以上的版本,這個slackware 12.0沒有,slackware只有java的運行環境而已,於是登入:
http://java.sun.com/javase/downloads
下載一個即可,我下載的是jdk5.0 update 10的版本,理論上應該越高越好吧。
然後,就用chmod a+x jdkxxxxxxx.bin,然後運行,安裝到你的機器上即可。
(註:當然了,也可以直接su成root把安裝包弄到/usr/local目錄下面去)
然後有一個網路方面的設定需要注意,運行如下程式:
/usr/local/jdk-xxxxxxx/bin/ControlPanel
選擇在network裡面選擇setting,然後把連線類型設定為Direct Connection。
(3)建立工作目錄,進入工作目錄,建立bin目錄:
mkdir ~/works
mkdir ~/works/android_dev
cd ~/works/android_dev
mkdir bin
(4)下載安裝repo版本管理工具
curl http://android.git.kernel.org/repo > ~/works/android_dev/bin/repo
cd bin
chmod a+x repo
(5)開始準備下載android
cd ~/works/android_dev
./bin/repo init -u git://android.git.kernel.org/platform/manifest.git
通常情況下會出現error提示(如果是以前沒有建立過repo賬戶的話),這個不要緊,忽略掉它好了。
(6)配置repo賬戶
git config --global user.email "[email=xxxxx@xxxxxxx]xxxxx@xxxxxxx[/email]"
git config --global user.name "xxxxxx"
(7)開始下載android platform的原始碼
repo sync
這個操作會持續一段時間,看網速了;google上面說的原始碼佔用2.1G的硬碟空間,但似乎沒有那麼大,只有900M左右。
(8)好了,現在準備一下環境變數
最好在.bashrc或者在/etc/profile檔案中添加環境變數定義:
export ANDROID_JAVA_HOME=$JAVA_HOME
需要logout,再login一下,然後用:
echo $ANDROID_JAVA_HOME
命令來確認一下環境變數是否已經生效
(9)修改一個小“bug”
理論上在ubuntu上面可以直接開始編譯了,但是在slackware上似乎還需要手工修改一個編譯指令碼上的bug,找到如下檔案:
~/works/android_dev/external/sqlite/dist/Android.mk
找到下面這一行:
ifneq ($(strip $(have_readline)),) LOCAL_LDLIBS += -lreadline endif |
這裡只有一個-lreadline,對於slackware來說就不夠了,編譯的時候會出現libreadline.so:undefinedreference 'PC'之類的錯誤。修正的方法很簡單,就是直接在這一句的後面加上-lncurses,改正後應該是這個樣子的:
LOCAL_LDLIBS += -lreadline -lncurses
好了,然後就可以開始放手編譯了。
(10)編譯
make
好了,然後就可以出去晃晃,喝杯咖啡了(足夠你喝很多很多杯的咖啡)。
編譯完畢以後,會發現在代碼目錄下多了一個目錄:
~/works/android_dev/out
這就是產生的結果了,此時不要著急,需要先再設定一下環境變數方法同(8):
export ANDROID_PRODUCT_OUT=/home/wayne/works/android_dev/out/target/product/generic
設定完了以後,需要logout,再login一次才可以喔,更新環境變數。
(11)開始驗證產生的結果
進入android_dev/out/host/bin/目錄下,然後運行:
emulator --debug-init -skin QVGA-L [斷行符號]
應該看到以下的畫面(第一次開啟的時候,應該還有一個向google反饋的一個對話方塊,按下確定即可):
{
function onmouseover()
{
function onmouseover()
{
function anonymous()
{
showMenu(this.id, 0, 1)
}
}
}
}" id="attach_782">
a.png (159.76 KB)2008-11-21 22:48
到了這一步,恭喜恭喜!呵呵,基本上已經編譯通過了,要想編譯成arm板子上可以跑的版本還需要進一步修嘎android的編譯指令碼才可以。具體的操作,就不在這裡羅嗦了。