編輯:關於android開發
關於android系統的編譯,Android的官方網站上也給出了詳細的說明。
Ø 初始化編譯環境
切換到Android源碼目錄:
$ cd WORKING_DIRECTORY
執行下面命令,加載編譯過程中用到的命令、環境變量:
$ source build/envsetup.sh
Ø 選擇編譯選項
執行下面的命令,從列表中選擇一個編譯項:
$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. full-eng
2.full_x86-eng
3.vbox_x86-eng
4.full_maguro-userdebug
5.full_tuna-userdebug
6.full_panda-eng
我們選擇:1,也就是說,編譯full-eng的目標,當然我們也可以直接指定編譯項,如下:
$ lunch full-eng
其中,lunch命令是指打印或設置出當前系統中設置的編譯項,full-eng這個編譯項由兩部分組成,其中前半部分full表示目標設備為Android的模擬器,官方解釋為:fully configured with all languages,apps, input methods,全部的應用程序及語言,輸入法等。後半部分eng表示帶有調試功能的工程機。
lunch命令打印全部的信息,如下表所示:
Build name Device Notes
full
emulator
fully configured with all languages, apps, input methods
full_maguro
maguro
full build running on Galaxy Nexus GSM/HSPA+ ("maguro")
full_panda
panda
full build running on PandaBoard ("panda")
Buildtype
Use
user
limited access; suited for production
userdebug
like "user" but with root access and debuggability; preferred for debugging
eng
development configuration with additional debugging tools
Ø 編譯前的准備
由於我們使用ubuntu12.04對Android進行編譯,Android對Ubuntu12.04的編譯平台的支持不是很推薦,有些庫的兼容方面會有一些問題,在編譯過程中會產生一些錯誤,我們要進行一些修正。
錯誤信息:
g++ selected multilib '32' not installed
或
<command-line>:0:0: error:"_FORTIFY_SOURCE" redefined [-Werror]
<built-in>:0:0: note: this is thelocation of the previous definition
cc1plus: all warnings being treated aserrors
make: ***[out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
原因:
在Android系統過程中,要使用gcc-4.4/g++-4.4的編譯器,而Ubuntu12.04的gcc版本為4.6.3
解決方法:
安裝gcc-4.4
$sudo apt-get install gcc-4.4
$sudo apt-get install g++-4.4
進入到/usr/bin目錄下,刪除gcc對gcc-4.6的鏈接,創建到新安裝的gcc-4.4的鏈接:
$cd /usr/bin
$sudo rm -r gcc
$sudo ln -s gcc-4.4 gcc
驗證結果:
$gcc -v
$g++ -v
打印其版本為gcc-4.4x、g++-4.4x即可。
打造簡易NineoldAndroids動畫庫,深入理解Android動畫原理 簡介 NineoldAndroids是Github上一個著名的動畫庫,簡單來說,Nine
Android面試准備 第一天 第2-4例 2、如果有個100M大的文件,需要上傳至服務器中,而服務器form表單最大只能上傳2M,可以用什麼方法。 個人理解:所謂表單最
Android 圖片的平移和鏡面和倒影效果,在前面的文章中陸續介紹了圖片的旋轉與縮放,本文繼續介紹關於圖片的操作 圖片的平移 使用下面的代碼將圖水平豎直方向平移10個像素
專門搞android,android在android中,線程可以分為MainThread(UI線程)和WorkerThread(除了MainThread之外的線程)。從原