android編譯

方便

1、下載jdk1.5

      http://www.oracle.com/technetwork/java/javase/downloads/index-jdk5-jsp-142662.html

 

2、解壓縮JDK

以下命令均在root賬戶上執行,非root賬戶執行某些命令可能需要加sudo

jdk-1_5_0_22-linux-i586.bin放在root目錄下。進入該目錄:

cd ~

然後賦予該bin文件可執行屬性:

chmod +x jdk-1_5_0_22-linux-i586.bin

再執行安裝(注意前面有./)

./jdk-1_5_0_22-linux-i586.bin

跳過協議閱讀。

最後一行:

Do you agree to the above license terms? [yes or no]

鍵入yes,然後回車,開始解壓。默認會解壓到當前目錄下的jdk1.5.0_22目錄下(此處是~/ jdk1.5.0_22)。


(怕麻煩從官網上下載的話,還可以這樣:到這個地發http://packages.ubuntu.com/zh-cn/hardy/i386/sun-java5-jdk/download 隨便找個亞洲鏡像,如這般:deb http://free.nchc.org.tw/ubuntu/ hardy main multiverse 將其放到/etc/apt/sources.list中,然後apt-get update之 接着apt-get install sun-java5-jdk或者apt-get install sun-java6-jdk隨便安裝了)

 3、JDK版本切換

如果同時需要使用JDK1.6版做應用開發,則系統中將同時存在JDK1.5JDK1.6。因此需要實現能夠在不同版本間切換。如果不使用JDK1.6,請做完1.5版的設置後跳至3.3節。

這裏使用update-alternatives命令實現。

首先爲JDK1.5版生成可選配置選項:

update-alternatives --install /usr/bin/jdk jdk /root/jdk1.5.0_22 255

/usr/bin/jdk是符號鏈接,它指向/etc/alternatives/jdk(由第2個參數給出的),/root/jdk1.5.0_22是實際目的鏈接,255是優先級(任意整數,在automatic mode自動模式時,數字大的優先級較高,被選爲默認配置選項)。

然後再爲JDK1.6版生成(如果有JDK1.6的話。不使用JDK1.6的請跳至3.3):

update-alternatives --install /usr/bin/jdk jdk /root/jdk1.6.20 0

這樣,默認jdk版本即爲1.5版。需要切換到1.6版時,請使用update-alternatives –config jdk

4、 配置JDK環境變量

下面開始配置環境變量。

在終端中執行:gedit ~/.bashrc

修改.bashrc文件,添加下面語句:

#set java environment

export JAVA_HOME=/usr/bin/jdk

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

該段代碼最好設置在文件的尾部。

保存文件。在終端中執行source ~/.bashrc

請使用javaversion檢查JDK是否配置正確。

 5、 安裝其他必備組件

在終端上,使用下面的命令安裝:

apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

因爲JDK1.5在前面已經單獨安裝過了,因此此處apt-get install命令行中沒有加入sun-java5-jdk

 

 

6. 下載Android 源代碼

                   6.1 安裝repo腳本

首先安裝repo。在root目錄下新建一個bin目錄。在終端中執行:

cd ~

mkdir bin

然後,向PATH中添加bin路徑:

export PATH=$PATH:~/bin

然後執行下面兩行指令,下載repo腳本並修改可執行屬性:

curl https://android.git.kernel.org/repo >~/bin/repo

chmod a+x ~/bin/repo

          6.2 初始化repo

首先建立一個目錄用來存放Android源代碼:

mkdir mydroid

cd mydroid

然後用最新的列表執行初始化。這裏我們下載android 2.1-r2,因此加了參數 –b android-2.1_r2:

repo init -u git://android.git.kernel.org/platform/manifest.git –b android-2.1_r2

這中間會問到你的名字和Email。如果你打算上傳代碼,Email須是一個Google賬戶。

repo初始化成功後會看到類似於下面的提示:

repo initialized in /root/mydroid

最後執行repo sync開始同步代碼。過程比較漫長,下載速度取決於你的網速,中間有可能遇到斷線,重新執行repo sync即可斷點續傳。

       6. 編譯Android源代碼

         6.1 編譯生成鏡像

切換到android源碼根目錄下,執行make即可。首次編譯非常耗時,取決於機器配置,大約需要3小時。完成後鏡像生成在/root/mydroid/out/target/product/generic下。

         6.2 編譯、配置Android SDK

make編譯完成後,執行make sdk命令,生成對應於該版本源代碼的sdk

Android官方的SDK和我們自己編譯Android源碼時使用make sdk編譯出的SDK有區別,模擬器版本不同,加載的默認鏡像也不同(一個是官方的,一個是自己編譯的)。下面將展示如何能夠自由切換SDK版本。

首先是自己編譯的SDK版本,實際位置是/root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86

因爲它比較常用,我們給它高優先級:

update-alternatives --install /usr/bin/AndroidSDK AndroidSDK /root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86 255

事先下載的官方SDK位置是/root/android-sdk-linux_86,執行:

update-alternatives --install /usr/bin/AndroidSDK AndroidSDK /root/android-sdk-linux_86 0

然後使用update-alternatives --display AndroidSDK查看當前配置情況:

如果要切換配置,使用update-alternatives --config AndroidSDK

配置AndroidSDK環境變量。終端中執行gedit ~/.bashrc

在文件最後添加下面三行:

# set android environment

export ANDROID_SDK_HOME=/usr/bin/AndroidSDK

export PATH=$ANDROID_SDK_HOME/tools:$PATH

保存文件。在終端中執行source ~/.bashrc

       7. 在模擬器中運行編譯的鏡像

打開終端,執行android腳本:

android

出現下圖所示窗口:

選擇左邊第一項Virtual Devices,然後在右邊選擇New,新建一個AVD

NameAVD的名稱,隨便取,但只能包含字母和數字以及點、下劃線和連字符,這裏取名test

Traget:目標SDK版本,這裏選自己編譯的2.1-r1Android SDK

SD CardSD卡。暫且不填,待需要時再設置。

Skin:皮膚(模擬器屏幕分辨率)。

Hardware:使用默認即可

然後點Create AVD,就創建好了一個AVD。點擊Start即可啓動模擬器,其運行的是自己編譯的鏡像。

若以後要再次啓動此AVD,請在終端中運行:

emulator –avd test或者emulator @test

 

發佈了70 篇原創文章 · 獲贊 6 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章