新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Mac OS X 下用 Eclipse 瀏覽和編譯 Android 源代碼

Mac OS X 下用 Eclipse 瀏覽和編譯 Android 源代碼

作者: 時間:2016-10-08 來源:網(wǎng)絡 收藏

LEOPARD_SDK:= /Developer/SDKs/MacOSX10.6.sdk,即可通過編譯。

初始化編譯環(huán)境:

$source build/envsetup.sh

2)選擇編譯目標

$lunch full-eng

3)開始編譯代碼

$make

如果運氣好的話,你可以看到最終成功的提示,goodluck!

四.將源代碼導入Eclipse

1.拷貝.classpath

進入gingerbread源代碼目錄,也就是上面的android_gingerbread_src。

$cd android_gingerbread_src

$cp ./development/ide/eclipse/.classpath ./

將.classpath設置為可寫

$chmod +w .classpath

2.新建Eclipse工程

運行Eclipse,選擇File->New->Java Project,項目位置就選擇android_gingerbread_src根目錄,導入成功以后,Eclipse開始編譯源代碼,不過會報告兩個錯誤,如下:

Project'gingerbread' is missing required library:'out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar'

Project'gingerbread' is missing required library:'out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar'

刪除.classpath中的這兩行路徑:

添加

然后重啟Eclipse,即可解決。

五.利用Eclipse調(diào)試gingerbread代碼

通過對gingerbread源代碼的調(diào)試,我們可以更為清晰的了解Android的內(nèi)部工作機制,也可以省卻大量的閱讀代碼的時間,提高學習效率。

如果要想通過Eclipse來調(diào)試gingerbread代碼,我們必須首先能夠成功通過編譯,編譯以后,會生成幾個系統(tǒng)文件,其中包括system.img,userdata.img和ramdisk.img,三個文件位于源碼目錄下的out/target/product/generic子目錄下,如果熟悉Android系統(tǒng)開發(fā)的朋友應該知道,一個完整的Android映像應該還包括一個叫kernel-qemu的文件,這就是Linux內(nèi)核鏡像,不過我們并沒有編譯內(nèi)核,所以這里沒有生成這個文件。

要想成功調(diào)試,我們還需要安裝androidsdk,網(wǎng)上此類文章很多,這里就不多說了。將上述三個文件拷貝到/path-androidsdk/platforms/android-10/images目錄下,替換該目錄下的三個同名文件(由于gingerbread代碼版本是2.3.3,這個版本對應的就是android—10,一定不要搞錯了)。

創(chuàng)建一個新的avd虛擬設備,Target選擇Android2.3.3,如圖,并啟動模擬器。

我們可以看出,Android的版本是2.3.5,Build number是full-eng 2.3.5 GINGERBREAD eng,編譯時間是2011.10.15日。確實是我們自己編譯的鏡像。

啟動Eclipse,選擇gingerbread源碼工程后,選擇Run->Debug Configurations,在左邊列表中選擇“Remote Java Application”,并創(chuàng)建一個新的項目gingerbread,將端口(Port)設置為8700,其它保持缺省,如圖所示:

在eclipse中,選擇DDMS視圖,并選中你要調(diào)試的進程,如圖:

回到上面的Remote Java Application界面,點擊“Debug”按鈕來啟動調(diào)試,此時再打開DDMS視圖,可以看到我們要調(diào)試的進程顯示一個綠色的小圖標:

你可以在eclipse中下斷點開始調(diào)試了。


上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉