星期天在家研究了一下如何在mac下下載android4.2的源碼并通過ecliPSe進(jìn)行源碼級(jí)別調(diào)試來更清晰的研究一下android的運(yùn)行原理,具體步驟如下:
最后下下來了,但是我進(jìn)行編譯卻沒有通過,可能是我有東西沒安,但是不影響源碼調(diào)試,
首先參考http://source.android.com/source/downloading.html,說一下我最后的方法,
一、前期準(zhǔn)備
1、mac下我們需要?jiǎng)?chuàng)建一個(gè)大小寫敏感的磁盤鏡像文件,并將其掛載,進(jìn)入應(yīng)用程序/實(shí)用工具/磁盤工具,選擇文件->新建->新建空白映像:
2、安裝xcode,編譯時(shí)用到。
3、從macports.org安裝MacPorts
macports基本命令:
(1)sudo port install ?安裝
(2)sudo port uninstall ?卸載
(3) port installed 查看已安裝的軟件
這三個(gè)就夠用了這里
4. 執(zhí)行sudo port install gmake libsdl git-core gnupg命令安裝gmake,libsdl,git,gnupg。我這里直接安裝了gmake3.8.2,網(wǎng)上有說有問題家,但是我安 裝后沒有編譯源碼所以未發(fā)現(xiàn)問題。如果編譯的可以安裝網(wǎng)上方法退回到3.8.1。
5、安裝完成之后port installed看一下時(shí)候上面提到的都安裝了,接著如下:
修改文件標(biāo)識(shí)符限制:
由于MacOS默認(rèn)將同時(shí)打開的文件標(biāo)識(shí)符數(shù)量限制得太小,并行編譯處理時(shí)可能會(huì)超出這個(gè)限制。所以在 ~/.profile里加上這么一段:
#set the number of open files to be 1024
ulimit -S -n 1024
二、從https://android.googlesource.com 下載源碼,
1.創(chuàng)建~/bin/目錄
$mkdir ~/bin
$PATH=~/bin:$PATH
2.安裝repo
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
3.設(shè)置repo可執(zhí)行權(quán)限
$chmoda +x ~/bin/repo
4、這一步大家注意了,當(dāng)創(chuàng)建的大小寫敏感磁盤空間掛載后我們的/volumes下能夠看到android的目錄,從這步起所有的操作在次目錄下完成,
接下來執(zhí)行repoinit
$ repo init -u https://android.googlesource.com/platform/manifest -b android4.2_r1
執(zhí)行完成后ls -a查看是否一個(gè).repo文件夾,進(jìn)入看到有manifest.xml文件,如果有那么我們接下來就可以下載源碼了。
此連接有所有的版本branch,https://android.googlesource.com/platform/external/blktrace/想下載哪個(gè)版本的更改后-b后面即可。
5、下載源碼
在/Volumes/android目錄下執(zhí)行命令:repo sync
剩下的就是等待了,我的網(wǎng)速比較快,下了二十多分鐘就下完了,如果慢的兩天也有可能。
三、把編譯的方法說一下,需要的可以跟著試一下
進(jìn)入到掛載的android目錄下,
1、初始化編譯環(huán)境:
$source build/envsetup.sh
2、選擇編譯目標(biāo)
$lunch full-eng
3、開始編譯代碼
$make -j4(表明我們開啟四個(gè)線程來進(jìn)行編譯)。
等著結(jié)果吧,我的沒編譯成功,但是我沒想編譯,只為了調(diào)試源碼。
四、調(diào)試源碼方法
1、首先eclipse安裝adt和sdk,這個(gè)不說了,肯定都會(huì),版本選擇4.2,安裝完成后,file-java project,起個(gè)名字,然后location選擇android目錄,等待,可以 看到源碼都被加載,然后看一下報(bào)的錯(cuò)誤,我的報(bào)了如下錯(cuò)誤:
調(diào)試時(shí)我發(fā)現(xiàn)沒影響,所以不去關(guān)心了。
2、創(chuàng)建andoird項(xiàng)目(可以是hello world),選擇android項(xiàng)目右鍵debug as-debug Configurations,然后選擇左下角家remote java application右鍵new,設(shè)置,效果:
設(shè)置完成后apply保存。
2、然后在onCreate或其他地方設(shè)置斷點(diǎn),進(jìn)入調(diào)試界面后如下:
如果看到下圖,那么我們成功了一半了:
,
點(diǎn)擊yes,進(jìn)入,如圖:
接下來我們調(diào)試源碼,點(diǎn)擊左上角debug窗口中的你想調(diào)試家部分,可以點(diǎn)擊Looper().loop,我們進(jìn)入看一下:
好了,看到我們的源碼了,剩下的是去探索了。Y(^_^)Y。