當前位置:編程學習大全網 - 編程語言 - 編譯android 源碼需要sdk環境嗎

編譯android 源碼需要sdk環境嗎

下面是android學習手冊,可以查看編譯源碼,360手機助手中下載,

?編譯環境:ubuntu9.10,widnows平臺目前不被支持。

1)安裝必要的軟件環境

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

官方推薦的就是上面這些,如果在編譯過程中發現某些命令找不到,就apt-get它。可能需要的包還有:

$ sudo apt-get install make

$ sudo apt-get install gcc

$ sudo apt-get install g++

$ sudo apt-get install libc6-dev

$ sudo apt-get install patch

$ sudo apt-get install texinfo

$ sudo apt-get install zlib1g-dev

$ sudo apt-get install valgrind

$ sudo apt-get install python2.5(或者更高版本)

需要註意的是,官方文檔說如果用sun-java6-jdk可出問題,得要用sun-java5- jdk。經測試發現,如果僅僅make(make不包括make sdk),用sun-java6-jdk是沒有問題的。而make sdk,就會有問題,嚴格來說是在make doc出問題,它需要的javadoc版本為1.5。

因此,我們安裝完sun-java6-jdk後最好再安裝sun-java5-jdk,或者只安裝sun-java5-jdk。這裏sun-java6-jdk和sun-java5-jdk都安裝,並只修改javadoc.1.gz和javadoc。因為只有這兩個是make sdk用到的。這樣的話,除了javadoc工具是用1.5版本,其它均用1.6版本:

$ sudo apt-get install sun-java6-jdk

修改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

2)設置環境變量

$ emacs ~/.bashrc

在.bashrc中新增或整合PATH變量,如下:

#java 程序開發/運行的壹些環境變量

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 JAVA_HOME;

export JRE_HOME;

export CLASSPATH;

HOME_BIN=~/bin/

export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};

保存後,同步更新:

source ~/.bashrc

3)安裝repo(用來更新android源碼)

創建~/bin目錄,用來存放repo程序,如下:

$ cd ~

$ mkdir bin

並加到環境變量PATH中,在第2步中已經加入。

下載repo腳本並使其可執行:

$ curl?mon.git kernel

$ cd kernel

$ git branch

顯示

* android-2.6.27

說明妳現在在android-2.6.27這個分支上,也是kernel/common.git的默認主分支。

顯示所有head分支:

$ git branch -a

顯示

* android-2.6.27

remotes/origin/HEAD -> origin/android-2.6.27

remotes/origin/android-2.6.25

remotes/origin/android-2.6.27

remotes/origin/android-2.6.29

remotes/origin/android-goldfish-2.6.27

remotes/origin/android-goldfish-2.6.29

我們選取最新的android-goldfish-2.6.29,其中goldfish是android的模擬器模擬的CPU。

$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29

$ git branch

顯示

android-2.6.27

* android-goldfish-2.6.29

我們已經工作在android-goldfish-2.6.29分支上了。

d)設定交叉編譯參數

打開kernel目錄下的Makefile文件,把CROSS_COMPILE指向剛才下載的prebuilt中的arm-eabi編譯器.

CROSS_COMPILE ?= arm-eabi-

LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\

$(call ld-option, -Wl$(comma)–build-id,))

這壹行註釋掉,並且添加壹個空的LDFLAGS_BUILD_ID定義,如下:

LDFLAGS_BUILD_ID =

e)編譯內核映像

$ cd ~/android/kernel

$ make goldfish_defconfig

$ make

f)測試生成的內核映像

$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage

  • 上一篇:女生可以學什麽專業
  • 下一篇:美國計算機碩士專業的五大就業方向
  • copyright 2024編程學習大全網