Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 在線看Android系統源碼,那些相見恨晚的幾種方案

在線看Android系統源碼,那些相見恨晚的幾種方案

編輯:關於Android編程

前言:最近在研究MediaCodec,u盤壞了,之前下載的源碼也就自然沒有了,真是個難過的事情,不能因為沒有源碼了,就阻擋我的計劃了呀,於是就是今天一文,在線看Android源碼,加之此前很多人也有向我留言,如何看android系統的源碼,今天來敲黑板,劃重點了。

不管是做Android底層開發,還是做應用層開發,在Android這條路上走下去,必須對於Android源碼夠了解,如某一個功能,某一個機制,或者某一個API,它到底是如何實現的,需要 Read the fucking source code,才能知其然,知其所以然。下面幾種在線看源碼的方式:

1,http://androidxref.com

2,http://www.grepcode.com/

3,Android SDK Search插件

來說說這三種方式的體驗,http://androidxref.com,這個同步官方源碼,最新的7.0,上面也已經有了,我也比較喜歡這個,該有的功能應用盡有,第2個的話,如圖,還停留在5.1階段,也找不到我想要的,於是果斷放棄了。Android SDK Search也還行。下面重點介紹Android SDK Search 插件和androidxref。

http://www.grepcode.com/

這裡寫圖片描述IOSvwMDG98/Co6y/ydLUsLLXsCBBbmRyb2lkIFNESyBTZWFyY2ggwKnVubPM0PLAtLTvtb3V4rj2xL+1xKOsuMPAqdW5s8zQ8tTaIENocm9tZc34yc/TptPDteq92M28yOfPwsv5yr6ho7Cy17DN6rjDwKnVubPM0PK686Os1Nm0zsvRy/cgQW5kcm9pZCBBUEkguvOjrLvh1NrP4NOmtcTL0cv3veG5+7rz1Pa809K7uPYgdmlldyBzb3VyY2XBtL3ToaPA/cjny9HL9yBBY3Rpdml0eSDA4KOsveG5+8jnzbwgNCDL+cq+oaO147v3IHZpZXcgc291cmNlwbS906Osvs2/ydLUtPK/qiBBY3Rpdml0ecDgtcTUtLT6wuujrMjnzbzL+cq+o6y008340rPW0L/J0tS/tLP2xuTKtcrHwbS907W9wcsgR29vZ2xlILXEIEFuZHJvaWQg1LTC67XEIEdpdDwvcD4NCjxwPjxpbWcgYWx0PQ=="這裡寫圖片描述" src="/uploadfile/Collfiles/20161205/20161205093122105.png" title="\" />

這裡寫圖片描述

這裡寫圖片描述

AndroidXRef

AndroidXRef(http://androidxref.com/)項目提供 Android 源碼的交叉索引,可以快速的搜索符合特定條件的 Android 源代碼,後台是基於 OpenGrok 引擎,OpenGrok是一個快速,便於使用的源碼搜索引擎與對照引擎,它能夠幫助我們快速的搜索、定位、對照代碼樹。AndroidXRef 提供了完整的 Android kernel源碼的索引。在 AndroidXRef 主頁的右側顯示了可用的源碼版本,如圖所示,
點擊相應的源碼版本鏈接

這裡寫圖片描述

就可以進入對應的源碼分支,如圖所示,我進入6.0的最新分支:

這裡寫圖片描述

本文來自逆流的魚yuiop,原文鏈接:http://blog.csdn.net/hejjunlin/article/details/53454514

上圖右側提供在特定目錄下搜索,例如在分析 Framework源碼時,可以選擇 frameworks 目錄,這樣可以減少搜索范圍,縮短搜索時間,能夠更加精確地定位到需要的源代碼。左側是提供了一些搜索的條件,其意義如下(在指定的 Project(s)下):

Full Search: 進行全文搜索,會匹配所有的單詞、字符串、標識符以及數字等,例如在frameworks 下通過 Full Search 搜索”mediacodec“

這裡寫圖片描述

點擊”search“,會顯示所有包含mediacodec字符(忽略大小寫)的結果,即使是注釋也會顯示出來,如下圖,點擊對應的鏈接會打開包含mediacodec所在的文件夾

這裡寫圖片描述

點擊左側文件名如 TrackDecoder.java鏈接會打開包含mediacodc字符串文件;

這裡寫圖片描述

其他依次類推,點擊右側每一行的搜索結果鏈接同樣會打開相相應的文件內容;

Definition:搜索符號定義相關的代碼,例如搜索 ondraw 函數的定義,顯示結果如圖

這裡寫圖片描述

提示你是否要找onDraw,onChildDraw等方法,我們點擊onDraw,立刻跳轉到如下頁面:

這裡寫圖片描述

從搜索結果可以看到,所有onDraw方法的類都會列出來,到第6頁,找到我們熟悉的TextureView,點擊進去

這裡寫圖片描述

Symbol:搜索符號,例如可以搜索類中的成員變量等,下圖顯示了通過 Symbol 搜索FEATURE_NO_TITLE的結果

這裡寫圖片描述
平時我們在this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標題欄,這個FEATURE_NO_TITLE就是在Window.java中的,
本文來自逆流的魚yuiop,原文鏈接:http://blog.csdn.net/hejjunlin/article/details/53454514

File Path:搜索源碼文件名中包含給定字符串的文件,例如想要搜索文件名包含mediacodec的源碼文件,則可以在 File Path 中填入 mediacodec 進行搜索,結果如下所示

這裡寫圖片描述

這剛好就是我相要的,比起在IDE中一個一個看,這裡這個功能不得不說6的飛起。

History:這個幾乎沒有用,用處肯定也不大,我嘗試過各種搜索。

上面只是單一的搜索,如果是多個條件呢?這裡依然滿足,
如搜索mediacodec.cpp中的start函數,如圖所示:

這裡寫圖片描述

由於AndroidXRef 使用的是 OpenGrok 引擎,因此還支持一些其他的搜索方式:在【jsp">http://androidxref.com/6.0.0_r5/help.jsp】,寫的相當詳細,感興趣的同學可以看看。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved