国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
編譯Android源代碼 - Android系統(tǒng)開發(fā) - DerekGuo
請按照“獲取Android源代碼”一節(jié)中的內(nèi)容安裝所需的相關(guān)包,否則在編譯源代碼的時候會報(bào)很多的錯。為了方便起見,現(xiàn)將所有需要安裝的包羅列如下,其中有些包是可選的,但最好都裝上,同時,在安裝之前,最好先更新一下:
$ sudo aptitude update
$ sudo aptitude upgrade
Ubuntu Linux (32位 x86)
$ sudo aptitude install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev make gcc g++ libc6‐dev patch texinfo ncurses‐dev python2.6 valgrind lib32readline5-dev
$ sudo aptitude install sun‐java6‐jdk
Ubuntu Linux (64位 x86)
$ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev make gcc g++ libc6-dev patch texinfo ncurses-dev python2.6 valgrind gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
$ sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
$ sudo aptitude install sun‐java6‐jdk
基本上安裝上面羅列的包,編譯時就不會有太大的問題,下面列舉本人(64位機(jī)子,Ubuntu10.04系統(tǒng))在編譯時出現(xiàn)的一些錯誤,以及在出現(xiàn)錯誤時,相關(guān)的解決包。雖然google已將這些必需包在 android文檔中進(jìn)行說明了,但在此聲明這些問題的解決還是參考網(wǎng)址:http://code.google.com/p/android/issues/detail?id=1005
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] Error 1
解決包:$ sudo aptitude install libc6-dev-i386
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] Error 1
dpkg-query -l &> packages.txt (該工具可用來查詢dpkg數(shù)據(jù)庫)
解決包:$ sudo aptitude install g++-multilib
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
make: *** Waiting for unfinished jobs....
解決包:$ sudo aptitude search lib32ncurses5-dev
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/zipalign_intermediates/zipalign] Error 1
make: *** Waiting for unfinished jobs....
解決包:$ sudo aptitude install lib32z-dev
同時,網(wǎng)友kees.jongenburger提出了使用getlibs(該工具可自動解決32位程序在64位系統(tǒng)上的依賴關(guān)系)來解決這個問題。具體用法如下:
$ getlibs -l libz.so
libz.so: zlib1g-dev
The following i386 packages will be installed: zlib1g-dev Continue [Y/n]? y Downloading ... Installing libraries ... 具體getlibs工具的介紹請參考網(wǎng)址:http://ubuntuforums.org/showthread.php?t=474790 注:在“獲取Android源代碼”一節(jié)中已介紹使用java 6時會有不兼容的問題,但經(jīng)過測試發(fā)現(xiàn),如果僅僅make(make 不包括make sdk),用sun‐java6‐jdk 是沒有問題的。而make sdk,就會有問題,嚴(yán)格來說是在make doc 時會出問題,它需要的javadoc 版本為1.5。
因此,我們安裝完sun‐java6‐jdk 后最好再安裝sun‐java5‐jdk,或者只安裝sun‐java5‐jdk。這里sun‐java6‐jdk 和sun‐java5‐jdk 都安裝,并只修改javadoc.1.gz 和javadoc。因?yàn)橹挥羞@兩個是make sdk 用到的。這樣的話,除了javadoc 工具是用1.5 版本,其它均用1.6 版本,java的安裝目錄及結(jié)構(gòu)如下:
derek@derek-desktop:/usr/lib/jvm$ ls -l
total 4
lrwxrwxrwx 1 root root 19 2010-08-20 23:19 java-6-sun -> java-6-sun-1.6.0.20
drwxr-xr-x 8 root root 4096 2010-08-21 00:06 java-6-sun-1.6.0.20
sudo aptitude install sun‐java5‐jdk (現(xiàn)在發(fā)現(xiàn)找不到j(luò)ava 5的包,可能是源的問題)
修改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.2系統(tǒng)時測試發(fā)現(xiàn)使用java 6并沒有上述問題。估計(jì)應(yīng)該是解決了。所以上述對javadoc這快的處理就可以不做了。
設(shè)置環(huán)境變量
$ vim ~/.bashrc
增加如下的環(huán)境變量,包括java以及android程序開發(fā)、運(yùn)行的一些環(huán)境變量
JAVA_HOME=/usr/lib/jvm/java-6-sun
export JAVA_HOME
JRE_HOME=${JAVA_HOME}/jre
export JRE_HOME
export ANDROID_JAVA_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
HOME_BIN=~/android/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN}
$ source ~/.bashrc (使環(huán)境變量的設(shè)置立即生效,即同步變化)
編譯android源碼
$ cd ~/android/androidplatform/ (cd 到android源碼目錄)
$ make (或者使用 make -jn 命令,其中,n值的確定參考原則為2m-1,m為處理器核數(shù),本人實(shí)驗(yàn)機(jī)子為雙核,故用 make -j3)
這個過程很久,大概花兩個小時左右,編譯完后將得到~/android/androidplatform/out 目錄,可參加附件中的目錄樹文件。
編譯SDK
直接執(zhí)行make 是不包括make sdk 的。make sdk 用來生成SDK,這樣,我們就可以用與源碼同步的SDK 來開發(fā) android 了。
1、查看~/android/androidplatform/frameworks/base/include/utils/Asset.h
$ cd ~/android/androidplatform/
$ vim frameworks/base/include/utils/Asset.h
查看 UNCOMPRESS_DATA_MAX 值:
enum {
/* data larger than this does not get uncompressed into a buffer */
#ifdef HAVE_ANDROID_OS
UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024
#else
UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024
#endif
};
由于Eclipse 編譯工程需要大于1.3M 的buffer,如果僅為1 * 1024 * 1024
請改為2 * 1024 * 1024,由于本人實(shí)驗(yàn)的版本為2.2已使用enum進(jìn)行了更正,故不用修改。
輸入以下命令進(jìn)行sdk編譯:
$ make sdk
注意如果這里出現(xiàn)問題請按照上面所介紹的將javadoc換回1.5版本。
編譯后生成的SDK 存放在~/android/android/platform/out/host/linux‐x86/sdk/ , 此目錄下有android‐sdk_eng.xxx_linux‐x86.zip 和android‐sdk_eng.xxx_linux‐x86 目錄。android‐sdk_eng.xxx_linux‐x86 就是SDK 目錄。參加附件中的目錄樹文件。
模擬器使用
進(jìn)入~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools目錄下,這里有很多Android的工具,其中模擬器對應(yīng)的應(yīng)用 程序是emulator。下面是正確使用模擬器的步奏:
輸入以下命令啟動Android SDK 和 AVD 管理器,可以通過該圖形化界面進(jìn)行很多操作,比如SDK下載,虛擬設(shè)備的創(chuàng)建,啟動模擬器等等。
derek@derek-desktop:~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools$ ./android
Starting Android SDK and AVD Manager
No command line parameters provided, launching UI.
See 'android --help' for operations from the command line.
列出機(jī)子上的所有target版本,可以理解為android sdk 版本。
derek@derek-desktop:~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools$ ./android list target
Available Android targets:
id: 1 or "android-AOSP"
Name: Android AOSP (Preview)
Type: Platform
API level: AOSP
Revision: 2
Skins: WQVGA400, WQVGA432, WVGA800, WVGA854, HVGA (default), QVGA
創(chuàng)建一個名為 My_AVD_2.2的虛擬設(shè)備
derek@derek-desktop:~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools$ ./android create avd -n My_AVD_2.2 -t 1
Android AOSP (Preview) is a basic Android platform.
Do you wish to create a custom hardware profile [no]
Created AVD 'My_AVD_2.2' based on Android AOSP (Preview),
with the following hardware config:
hw.lcd.density=160
使用剛創(chuàng)建的虛擬設(shè)備啟動模擬器
derek@derek-desktop:~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools$ ./emulator -avd My_AVD_2.2
創(chuàng)建虛擬sdcard,用于模擬器中數(shù)據(jù)和外部數(shù)據(jù)的交互, 虛擬SD卡的大小不應(yīng)該小于100M,否則在后期的文件系統(tǒng)打包過程中,有可能會有SD卡存儲空間不夠的問題。
derek@derek-desktop:~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools$ ./mksdcard -l smallone 256M ~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/sdcard.img
使用剛剛創(chuàng)建的虛擬sdcard創(chuàng)建一虛擬設(shè)備
derek@derek-desktop:~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools$ ./android create avd -n MyAOSP -t 1 -c ~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/sdcard.img
列出本機(jī)上的所有虛擬設(shè)備
derek@derek-desktop:~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools$ ./android list avd
Available Android Virtual Devices:
Name: MyAOSP
Path: /home/derek/.android/avd/MyAOSP.avd
Target: Android AOSP (Preview) (API level AOSP)
Skin: HVGA
Sdcard: /home/derek/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/sdcard.img
---------
Name: My_AVD_2.2
Path: /home/derek/.android/avd/My_AVD_2.2.avd
Target: Android AOSP (Preview) (API level AOSP)
Skin: HVGA
Sdcard: 256M
使用剛編譯完成的SDK中的模擬器啟動android系統(tǒng)時,默認(rèn)采用的系統(tǒng)鏡像為~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/platforms/android-AOSP/images目錄(剛編譯完的SDK目錄中的android-sdk_eng.derek_linux-x86/platforms/android-AOSP/images)下的kernel-qemu ramdisk.img system.img userdata.img 。
其中kernel-qemu為內(nèi)核鏡像,其他組合為文件系統(tǒng)。
當(dāng)然也可以使用自己編譯的內(nèi)核鏡像,關(guān)于如果編譯內(nèi)核的問題 會在后續(xù)文章中說明。
使用名為MyAOSP 的虛擬設(shè)備啟動模擬器,并規(guī)定系統(tǒng),數(shù)據(jù)等的映象文件路徑,模擬器內(nèi)核采用prebuild/android-arm/kernel/kernel-qemu。當(dāng)然也可以使用自己編譯的內(nèi)核鏡像,關(guān)于如果編譯內(nèi)核的問題 會在后續(xù)文章中說明。
derek@derek-desktop:~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools$ ./emulator -avd MyAOSP -sysdir ~/android/androidplatform/out/target/product/generic/ -data ~/android/androidplatform/out/target/product/generic/userdata.img -ramdisk ~/android/androidplatform/out/target/product/generic/ramdisk.img -kernel ~/android/androidplatform/prebuilt/android-arm/kernel/kernel-qemu
也可以再加上下面的參數(shù)進(jìn)行啟動,
-system ~/android/androidplatform/out/target/product/generic/system.img
-image ~/android/androidplatform/out/target/product/generic/system.img
但后者已過時。
可以輸入emulator -help 進(jìn)行進(jìn)一步的工作。
注意:細(xì)心的人可能會發(fā)現(xiàn)剛剛編譯生成的SDK目錄下的tools目錄(~/android/androidplatform/out/host/linux-x86/sdk/android-sdk_eng.derek_linux-x86/tools)中的所有工具在剛剛源碼編譯完的host目錄下的bin目錄(~/android/androidplatform/out/host/linux-x86/bin)中都有。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ubuntu10.04編譯Android
android2.2源碼編譯-Ubuntu10.04 (X86) android2.2 JDK1.6 - 楚廣明的博客 - 博客園
Ubuntu10.10下編譯Android2.2平臺
Ubuntu 下搭建 Android 開發(fā)環(huán)境(圖文)
ubuntu9.10安裝android SDK - 日志 - wuhua0904 - LUPA開源社區(qū) - Powered by LUPA
Ubuntu下安裝Android Eclipse開發(fā)環(huán)境
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服