Mac OS X 下用 Eclipse 瀏覽和編譯 Android 源代碼
LEOPARD_SDK:= /Developer/SDKs/MacOSX10.6.sdk,即可通過(guò)編譯。
初始化編譯環(huán)境:
$source build/envsetup.sh
2)選擇編譯目標(biāo)
$lunch full-eng
3)開(kāi)始編譯代碼
$make
如果運(yùn)氣好的話,你可以看到最終成功的提示,goodluck!
四.將源代碼導(dǎo)入Eclipse
1.拷貝.classpath
進(jìn)入gingerbread源代碼目錄,也就是上面的android_gingerbread_src。
$cd android_gingerbread_src
$cp ./development/ide/eclipse/.classpath ./
將.classpath設(shè)置為可寫
$chmod +w .classpath
2.新建Eclipse工程
運(yùn)行Eclipse,選擇File->New->Java Project,項(xiàng)目位置就選擇android_gingerbread_src根目錄,導(dǎo)入成功以后,Eclipse開(kāi)始編譯源代碼,不過(guò)會(huì)報(bào)告兩個(gè)錯(cuò)誤,如下:
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代碼
通過(guò)對(duì)gingerbread源代碼的調(diào)試,我們可以更為清晰的了解Android的內(nèi)部工作機(jī)制,也可以省卻大量的閱讀代碼的時(shí)間,提高學(xué)習(xí)效率。
如果要想通過(guò)Eclipse來(lái)調(diào)試gingerbread代碼,我們必須首先能夠成功通過(guò)編譯,編譯以后,會(huì)生成幾個(gè)系統(tǒng)文件,其中包括system.img,userdata.img和ramdisk.img,三個(gè)文件位于源碼目錄下的out/target/product/generic子目錄下,如果熟悉Android系統(tǒng)開(kāi)發(fā)的朋友應(yīng)該知道,一個(gè)完整的Android映像應(yīng)該還包括一個(gè)叫kernel-qemu的文件,這就是Linux內(nèi)核鏡像,不過(guò)我們并沒(méi)有編譯內(nèi)核,所以這里沒(méi)有生成這個(gè)文件。
要想成功調(diào)試,我們還需要安裝androidsdk,網(wǎng)上此類文章很多,這里就不多說(shuō)了。將上述三個(gè)文件拷貝到/path-androidsdk/platforms/android-10/images目錄下,替換該目錄下的三個(gè)同名文件(由于gingerbread代碼版本是2.3.3,這個(gè)版本對(duì)應(yīng)的就是android—10,一定不要搞錯(cuò)了)。
創(chuàng)建一個(gè)新的avd虛擬設(shè)備,Target選擇Android2.3.3,如圖,并啟動(dòng)模擬器。
我們可以看出,Android的版本是2.3.5,Build number是full-eng 2.3.5 GINGERBREAD eng,編譯時(shí)間是2011.10.15日。確實(shí)是我們自己編譯的鏡像。
啟動(dòng)Eclipse,選擇gingerbread源碼工程后,選擇Run->Debug Configurations,在左邊列表中選擇“Remote Java Application”,并創(chuàng)建一個(gè)新的項(xiàng)目gingerbread,將端口(Port)設(shè)置為8700,其它保持缺省,如圖所示:
在eclipse中,選擇DDMS視圖,并選中你要調(diào)試的進(jìn)程,如圖:
回到上面的Remote Java Application界面,點(diǎn)擊“Debug”按鈕來(lái)啟動(dòng)調(diào)試,此時(shí)再打開(kāi)DDMS視圖,可以看到我們要調(diào)試的進(jìn)程顯示一個(gè)綠色的小圖標(biāo):
你可以在eclipse中下斷點(diǎn)開(kāi)始調(diào)試了。
評(píng)論