Mac蘋果電腦下載android4.2源碼並進行源碼調試

星期天在家研究了一下如何在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。

相關文章
相關標籤/搜索