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