Mac OS X 下用 Eclipse 瀏覽和編譯 Android 源代碼
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)試了。
評論