歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android4.X在Ubuntu 12.04(64位)編譯

Android4.X在Ubuntu 12.04(64位)編譯

日期:2017/3/1 9:45:21   编辑:Linux編程

由於項目需要,最近在Ubuntu 12.04 64位的機器上面編譯了一次Android 4.0.4版本,現記錄需要注意的地方:

Ubuntu 12.10編譯Android 4.0.3的常見錯誤 http://www.linuxidc.com/Linux/2014-03/97628.htm

1 安裝基礎庫文件

參考 android 官方網站 http://source.android.com/source/initializing.html:

注意:

Installing required packages (Ubuntu 12.04)
Building on Ubuntu 12.04 is currently only experimentally supported and is not guaranteed to work on branches other than master.

$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386

$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

2 安裝JDK

這個需要注意JDK的版本,JDK1.7.X的無法編譯過去,會提示JDK版本不匹配,我使用的是 jdk1.6.0_30.tar.gz,文件太大無法上傳到了CSDN,大家下載時注意要下載Ubuntu X64位版本,另外注意要在編譯腳本裡面添加JDK的路徑,比如:

export PATH=$PWD/jdk1.6.0_30/bin:$PATH

我的 jdk1.6.0_30. 文件夾放到了Android源代碼的目錄下面。

另外編譯腳本裡面增加交叉編譯器的路徑,這個交叉編譯器是Android自帶的,不需要額外安裝:

export PATH=$PWD/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH

我的編譯腳本(我的平台是三星S5PV210):

SEC_PRODUCT='smdkv210'
export PATH=$PWD/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
export PATH=$PWD/jdk1.6.0_30/bin:$PATH
set -e
export CPUS=`grep -c processor /proc/cpuinfo`

START_TIME=`date +%s`

#forlinx add for compile android
mkdir -p out/target/common/obj
cp -f vendor/samsung/smdkv210/framework.aidl out/target/common/obj

#start compile android4.0
echo "Start build Android4.0......"
make -j${CPUS} HOST_CC=gcc-4.4 HOST_CXX=g++-4.4 HOST_CPP=cpp-4.4 PRODUCT-full_$SEC_PRODUCT-eng

END_TIME=`date +%s`
echo "Total compile time is $((($END_TIME-$START_TIME)/60)) minutes $((($END_TIME-$START_TIME)%60)) seconds"

} 2>&1 |tee build.out

3 安裝 gcc4.4

你用Ubuntu11.10(含12.04)的話,必須把gcc從4.5或者更高版本降回4.4,否則會報錯。
以下供參考:
sudo apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib
cd /usr/bin
sudo ln -sf cpp-4.4 cpp
sudo ln -sf gcc-4.4 gcc
sudo ln -sf g++-4.4 g++

4 編譯V8

編譯到 external/v8 出現錯誤,單獨編譯即可:

make libv8

編譯的時候注意在終端窗口添加環境變量:

export PATH=$PWD/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
export PATH=$PWD/jdk1.6.0_30/bin:$PATH

5 安裝mkimage工具:

android在編譯到結尾的時候會使用該工具來制作鏡像文件,工具源碼在Uboot代碼tools下面,Uboot編譯完成後,該工具會編譯出來,把它放到/usr/sbin/目錄即可。

更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved