當前位置:首頁 » 安卓系統 » ubuntu編譯android

ubuntu編譯android

發布時間: 2022-12-08 12:57:30

『壹』 Ubuntu 16.04編譯Android5.1系統源碼

Android 5.1版本也是一個比較大的版本,目前很多盒子還都採用這個版本。 Ubuntu 14.04 上編譯可能遇不了什麼問題,但是在 Ubuntu 16.04 上會遇到一些問題。隨著一次次編譯Android源碼,將其總結起來會比較好。

以下是腳本,但是第一步需要手動修改,修改這兩處之後編譯就沒有任何錯誤了

『貳』 如何在ubuntu10.04環境下編譯android

安裝JDK1.6,使用如下命令
sudo chmod u+x jdk-6u23-linux-x64.bin
sudo cp -a jdk-6u23-linux-x64.bin /opt
sudo /opt/jdk-6u23-linux-x64.bin
sudo rm -f /opt/jdk-6u23-linux-x64.bin
2
設置JDK環境變數,在HOME根目錄下按鍵盤Crtr+H顯示HOME目錄下所有文件,打開.bashrc,在最後加入以下代碼
#set java environment
export JAVA_HOME=/opt/jdk1.6.0_23
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
3
測試JDK是否安裝成功,使用命令java -version 如果顯示
java version "1.6.0_23"
Java(TM) SE Runtime Environment (build 1.6.0_23-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)
則JDK安裝成功。
END
測試MTK android編譯環境是否搭建成功

切換到MTK源碼根目錄下,使用命令./mk check-env,若顯示如下信息則安裝成功
**********checking Env************
Your building environment is OK
The detail information is in "checkenv.log"!
*************************************************

同時在MTK源碼根目錄下生成checkenv.log文件,打開文件,顯示ubuntu10.04大部分自帶工具都和MTK的推薦的一致,如下:
Build Environment Requirement
===================================================
* ********* Suggested OS and Tool Chain to install *********
*
* OS : Linux distribution Ubuntu 10.04
* Memory Size : 4G or above
* make : GNU Make 3.81 or 3.82
* perl : Version 5.10.X
* python : Version 2.6.X
* arm-linux-androideabi-gcc : Version 4.6.X
* gcc : Version 4.4.3
* jdk : Version 1.6.X
* bison : Version 2.4.X
* flex : Version 2.5.X
* gperf : Version 3.0.X
* mingw : Installed
* unix2dos/tofrodos : Installed
* **********************************************************
===================================================

Build Environment Check Result Report
*************************************************************

[OS]: Ubuntu 10.04.4 (64-bit) [OK]
[Physical Memory Size] : 4052924 K-Bytes [WARNING]
it's smaller than recommendation, may cause out-of-memory build error

[make]: 3.81 (64-bit) [OK]
[perl]: 5.10.1 (64-bit) [OK]
[python]: 2.6.5 (64-bit) [OK]
[arm-linux-androideabi-gcc]: 4.6. (64-bit) [OK]
[gcc]: 4.4.3 (64-bit) [OK]
[jdk]: 1.6.0_45 (64-bit) [OK]
[bison]: 2.4.1 (64-bit) [OK]
[flex]: 2.5.35 (64-bit) [OK]
[gperf]: 3.0.3 (64-bit) [OK]
[mingw]: Installed [OK]
[unix2dos/tofrodos]: Installed [OK]
*************************************************************
步驟閱讀
3
也可以解決下這個問題
[Physical Memory Size] : 4052924 K-Bytes [WARNING]
it's smaller than recommendation, may cause out-of-memory build error
打開mediatek/build/tools/checkEnv.py
修改lowMen為0

『叄』 如何在Ubuntu 11.10下編譯Android 4.0源碼

使用gcc4.4.6版本進行編譯.

ubuntu 11.10的gcc版本是4.6.1,版本太高,編譯Android時出錯,要把gcc版本改為4.4.6, 4.5的版本據說可以,但沒試過.
通 過gcc -v命令可以發現gcc庫在/usr/lib/gcc/i686-linux-gnu目錄下,該目錄下有當前系統支持的各種版本gcc庫 。在安裝gcc 4.4前該目錄下是沒有4.4目錄的,安裝gcc 4.4後該目錄下就會多出4.4這個目錄,且該4.4目錄下有各種相應庫文件。
ubuntu 32bit系統下安裝gcc 4.4的最好方法是僅用以下兩條命令,不需要其它命令,否則編譯時可能會出錯。
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4

裝完後在/usr/bin目錄下
$ ls -l gcc*
lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6
發現gcc 鏈接到gcc-4.6, 需要將它改為鏈接到gcc-4.4 :
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
同理
ls -l g++*
lrwxrwxrwx 1 root root 7 2011-08-14 15:17 g++ -> g++-4.6
-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6
需要將g++鏈接改為g++-4.4:
/usr/bin$ sudo mv g++ g++.bak
/usr/bin$sudo ln -s g++-4.4 g++

再查看gcc和g++版本號:
gcc -v
g++ -v
均顯示gcc version 4.4.6 ,說明gcc 4.4安裝成功。
測試:
編譯android,從2011-10-29 23:58開始,到2011-10-30 01:42編譯完成,沒有錯誤。這驗證了gcc 4.4安裝正確,也驗證了android文件與高版本的gcc不兼容。

編譯過程大概花了2+個小時.

3.4 運行

$emulator

『肆』 如何在ubuntu10.04環境下編譯android

apt-get install build-essential 安裝編譯環境, apt-get install linux-source 安裝源碼 cd /usr/src tar xvjf linux-source-2.6.24.tar.bz2 cd linux-srouce-2.6.24 下面就可以按照一般的方式編譯了

『伍』 Android:Ubuntu編譯OpenSSL步驟

NDK版本:android-ndk-r14b

OpenSSL版本:1.1.1k/3.0.0

Ubuntu版本:15.5

1、配置ndk環境變數
OpenSSL版本:1.1.1k:export ANDROID_NDK_HOME=/home/linrendi/Desktop/Compile/android-ndk-r14b/
OpenSSL版本:3.0.0: export ANDROID_NDK=/home/linrendi/Desktop/Compile/android-ndk-r14b/
如果是
編譯32位:
OpenSSL版本:1.1.1k:1、export PATH= PATH
OpenSSL版本:3.0.0:1、export PATH= PATH
2、./Configure android-arm -D__ANDROID_API__=21 --prefix=/home/linrendi/Desktop/openssl-1.1.1k/armv7a
3、make -j7 && make install
編譯64位:
OpenSSL版本:1.1.1k:1、export PATH= PATH
OpenSSL版本:3.0.0:1、export PATH= PATH
2、./Configure android-arm64 -D__ANDROID_API__=21 --prefix=/home/linrendi/Desktop/openssl-1.1.1k/arm64
3、make -j7 && make install

注意:當編譯完32位後,又想編譯64位,必須重新解壓,避免一些配置沒有更新導致編譯失敗

『陸』 如何用ubuntu 12.04 32bit 編譯android 4.4.4

系統環境

系統:Ubuntu12.04 64位系統。

源碼:Android4.4源碼。

選擇Ubuntu12.04,是因為在14.04上沒能折騰成功,在上面兼容32位程序的配置有點煩。12.04必須要用64位的,編譯Android4.4時需要64位環境,同時要兼容32位程序,折騰。

步驟

配置jdk6

Android官方給的步驟是用OpenJdk,實測是不行的。網上找到https://jdk6.java.net/download.html
這個網址有需要的jdk,下載自解壓安裝包。自解壓後在當前目錄下生成一個jdk的目錄,打開/etc/environment,增加自己的jdk
bin目錄到PATH裡面。同時新增如下環境變數:
CLASSPATH=/path/to/your/local/jdk/dir/lib
JAVA_HOME=/path/to/your/local/jdk/dir

然後執行如下命令,設置系統的默認jdk:
$ sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.6.0_38/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.6.0_38/bin/javac 300
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/local/java/jdk1.6.0_38/bin/javaws 300
$ sudo update-alternatives --install /usr/bin/jar jar /usr/local/java/jdk1.6.0_38/bin/jar 300
$ sudo update-alternatives --install /usr/bin/javap javap /usr/local/java/jdk1.6.0_38/bin/javap 300
$ sudo update-alternatives --config java

安裝軟體包
能裝的都要裝上,以免編譯失敗,又要回過頭重裝,如下:

$ sudo apt-get install build-essential make gcc g++ libc6-dev texinfo
libncurses-dev git-core gnupg flex bison zip curl ncurses-dev libsdl-dev
zlib1g-dev ia32-libs libxml2-utils lzma

編譯源碼
到源碼目錄下,如下:

$ source build/envsetup.sh
$ lunch
選擇arm平台。

$ make -jn
n為CPU個數的兩倍,主要是提高編譯速度。

可能的錯誤

編譯過程碰到如下錯誤:
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

一般情況是因為前面的javap沒有配置所致。如果必須的軟體包沒有安裝,也會有類似的提示,仔細向上翻看錯誤提示,找到真正的錯誤地方,安裝對應的軟體包即可。

『柒』 Ubuntu編譯Android錯誤,compilation terminated

  1. 沒找到srtp.h這個頭文件,倒數第6行那個路徑肯定不對。

  2. 你要在Android.mk文件中指定正確的頭文件所在目錄的路徑。

『捌』 android.mk ubuntu怎麼編譯

一個Android.mk file用來向編譯系統描述你的源代碼。具體來說:該文件是GNU Makefile的一小部分,會被編譯系統解析一次或多次。你可以在每一個Android.mk file中定義一個或多個模塊。每個模塊屬下列類型之一:
1)APK程序,一般的Android程序,編譯打包生成apk文件
2)Java庫,java類庫,編譯打包生成jar文件
3) CC++應用程序,可執行的CC++應用程序
4)CC++靜態庫,編譯生成CC++靜態庫,並打包成.a文件
5)CC++共享庫,編譯生成共享庫(動態鏈接庫),並打包成.so, 有且只有共享庫才能被安裝/復制到您的應用軟體(APK)包中。
(1)先看一個簡單的例子:一個簡單的"hello world",比如下面的文件:
sources/helloworld/helloworld.c
sources/helloworld/Android.mk
相應的Android.mk文件會像下面這樣:

---------- cut here ------------------

普通的.mk一樣

=====================================m、mm、mmm編譯命令===========================================

android源碼目錄下的build/envsetup.sh文件,描述編譯的命令
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.

所以要想使用這些命令,首先需要在android源碼根目錄執行build/envsetup.sh 腳本設置環境。
m:編譯所有的模塊
mm:編譯當前目錄下的模塊,當前目錄下要有Android.mk文件
mmm:編譯指定路徑下的模塊,指定路徑下要有Android.mk文件

下面舉個例子說明,假設我要編譯android下的hardwarelibhardware_legacypower模塊,當前目錄為源碼根目錄,方法如下:
1、. build/envsetup.sh
2、mmm hardware/libhardware_legacy/power/
或者 :
1、. build/envsetup.sh
2、cd hardware/libhardware_legacy/power/
3、mm

m沒有試過。默認上述兩個編譯命令,只編譯發生變化的文件。如果要編譯模塊的所有文件,需要-b選項,例如mm -b或者mmm -b

make命令,也可以用來編譯。如果是include $(BUILD_PACKAGE),用makeLOCAL_PACKAGE_NAME值;如果是include $(BUILD_EXECUTABLE)或者include $(BUILD_JAVA_LIBRARY),用makeLOCAL_MODULE值(未驗證)。

『玖』 如何用ubuntu編譯android 源碼

點擊任務欄中的「應用程序」-----「附件」------「終端」,打開終端命令行關機,英文版本的系統操作就如下圖所示

進入到下載好的Android4.4源碼目錄中,小編的源碼目錄就在宿主目錄下的android4.4中,如下圖

為了提高編譯的效率,我們最好先設置一下編譯器的高速緩存從而加快編譯速度,使用下面的命令
prebuilts/misc/linux-x86/ccache/ccache -M 50G

注意事項:
1、前提是已經在 .bashrc文件中添加:export USE_CCACHE = 1
2、ccache是一個可執行文件
3、-M 50G 兩個參數表示設置50G大小的空間作為緩存,這個數值可以根據自己時間硬碟空間大小繼續調整

『拾』 怎麼在ubuntu上編譯android源碼

步驟一:
安裝Ubuntu系統。我們既可以通過虛擬機的方式安裝Ubuntu,也可以直接在電腦上安裝,為了獲得更好的Linux操作體驗,我建議直接在電腦上面安裝Ubuntu,我在自己電腦上安裝了win10和Ubunut Server14.04雙系統,使用的時候可以根據自己的需要隨時切換系統,非常方便。關於如何搭建雙系統,網上有很多教程,我就不在此敘述了,但是我想說明的一點是在安裝Ununtu的時候,分配給Ubuntu的磁碟空間一定要盡可能大一點,至少60G,我分配了105G,編譯完成之後還剩下50多G,也就是說差不多用了近50G的空間,所以安裝Ubuntu的時候一定得分配大一點的磁碟空間,不然編譯會因為空間不足而中斷。
步驟二:
搭建好Ubuntu系統之後,我們需要下載一份Android6.0的源碼,網上很多文章都介紹了如何通過repo的方式來下載源碼,但是通過這種方式下載速度可能並不是很理想,直接下載網路雲的Android6.0源碼,
因為Android6.0的源碼所佔空間非常大,所以上傳者把Android源碼分成了很多個文件,待全部下載完畢之後,我們可以通過命令把這些分開的文件合並為一個文件。
步驟三:
如果我們是在Windows上下載的源碼,那麼當我們打開Ubuntu之後,要做的第一件事請就是把Windows中的Android源碼拷貝到Ubuntu系統下面,我直接利用復制粘貼的方式將源碼拷貝到了Ubuntu的Home目錄下面,拷貝之後的目錄結構Home/android6_r1/各個分開的源碼文件。
步驟四:
合並這些被分開的源碼文件。我們按下鍵盤上的ctrl + alt + T打開控制台,通過cd命令進入到Home/android6_r1/目錄下面,然後執行命令:cat Android6_r1_* > M.tgz,不用多久,在Home/android6_r1/目錄下面就會生成一個新的文件——M.tgz,M.tgz就是合並之後的壓縮文件。
步驟五:
解壓步驟四生成的壓縮文件。同樣是在Home/android6_r1/目錄下面,我們在控制台執行命令:tar zxvf M.tgz,開始解壓。解壓的過程大概需要20分鍾左右的時間,請耐心等待。解壓好了之後,在Home/android6_r1/會生成一個mydroid的文件夾,這個文件夾就是Android源碼的根文件夾了,裡面有abi、devices、hardware、packages、sdk、art等文件夾和文件。
步驟六:
安裝編譯源碼所需要的軟體。在控制台中我們通過cd..命令退回到Unbuntu用戶的根目錄下,然後依次執行以下命令:
sudo apt-get update
sudo apt-get install openjdk-7-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac
以上命令每一條都必須分開單獨執行,目的是為了獲取1.7版本的jdk並設置環境變數。當我們安裝完Ubuntu之後可能會自帶一個jdk,但是如果用自帶的jdk編譯Android源碼很可能會提示jdk版本不符合要求的錯誤,因此我們需要重新下載1.7版本的jdk,我用openjdk-7-jdk編譯未出現任何問題。
接下來繼續執行以下命令,同樣每一行都是分開單獨執行的:
sudo apt-get install git gnupg flex bison gperf build-essential
sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
sudo apt-get install libgl1-mesa-dev g++-multilib mingw32 tofrodos
sudo apt-get install 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
以上命令主要是安裝編譯源碼時需要用到的各種軟體,如果沒有安裝這些軟體,編譯的過程中會提示缺少必要的軟體而無法繼續編譯,因此,在正式編譯源碼之前,一定要先安裝這些軟體。
步驟七:
開始編譯。在控制台中通過cd命令進入到Home/android6_r1/mydroid/目錄下,然後執行命令:source build/envsetup.sh,導入編譯Android源碼所需的環境變數和其它參數。
步驟八:
在控制台中執行命令:lunch,運行命令之後會提示我們選擇編譯目標。這里我選擇的的默認目標,即aosp_arm_eng。
步驟九:
在控制台中執行命令:make -j8,開始編譯。注意,make -j8命令中的數字8和我們電腦的CPU核心數以及線程數有關系,一般這個數字的數值最大不能超過CPU線程數的2倍,例如我電腦的處理器是i5 6200U,為雙核四線程,因此編譯Android源碼的時候,我可以設置的最大工作線程數量為4 * 2 = 8。在執行make命令的時候我們應該根據自己的CPU參數設置合理的工作線程數值。
以上步驟執行完之後,就是一段非常漫長的等待了,我從中午十二點多開始編譯,一直到晚上九點多編譯完成,整個編譯過程耗時九個多小時,幸好我的運氣還不錯,編譯過程中沒有出現任何錯誤,只是中途意外中斷了一次,但是Android源碼是可以接著上次中斷的位置繼續編譯的,已經編譯的部分不會重復編譯,因此並未對我造成大的影響。同志們,我想說的是,編譯的過程中一定要有耐心喲!
整個源碼編譯完成之後,如果提示如下信息,那麼Congratulations, you are successful!!!

熱點內容
機械硬碟的存儲速度優於固態硬碟 發布:2024-04-26 16:02:13 瀏覽:117
訊捷壓縮器 發布:2024-04-26 16:02:08 瀏覽:268
安卓藍牙耳機丟了如何找回 發布:2024-04-26 15:36:13 瀏覽:540
win7最近打開文件夾 發布:2024-04-26 15:23:00 瀏覽:555
演算法筆談 發布:2024-04-26 15:14:34 瀏覽:284
技算計編程 發布:2024-04-26 14:43:42 瀏覽:140
開普票密碼區和備注是什麼意思 發布:2024-04-26 14:43:31 瀏覽:852
吃雞安卓和蘋果如何加好友 發布:2024-04-26 14:39:10 瀏覽:836
centos編譯命令 發布:2024-04-26 14:18:04 瀏覽:654
網路編程畢設 發布:2024-04-26 14:13:10 瀏覽:208