中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

在線看Android系統(tǒng)源碼,相見(jiàn)恨晚的幾種方案

2018-07-20    來(lái)源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

前言:最近在研究MediaCodec,u盤壞了,之前下載的源碼也就自然沒(méi)有了,真是個(gè)難過(guò)的事情,不能因?yàn)闆](méi)有源碼了,就阻擋我的計(jì)劃了呀,于是就是今天一文,在線看 Android 源碼,加之此前很多人也有向我留言,如何看android系統(tǒng)的源碼,今天來(lái)敲黑板,劃重點(diǎn)了。

不管是做Android底層開發(fā),還是做應(yīng)用層開發(fā),在Android這條路上走下去,必須對(duì)于Android源碼夠了解,如某一個(gè)功能,某一個(gè)機(jī)制,或者某一個(gè)API,它到底是如何實(shí)現(xiàn)的,需要 Read the fucking source code,才能知其然,知其所以然。下面幾種在線看源碼的方式:

1, http://androidxref.com

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

3,Android SDK Search插件

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

http://www.grepcode.com/

Android SDK Search

在 Android 開發(fā)或者源碼分析時(shí),一般會(huì)去查看 Google 官方提供的 Android API,如果希望深入了解 API 實(shí)現(xiàn)的細(xì)節(jié),當(dāng)然最好的方法就是去看源代碼了。對(duì)于在線 API 文檔,如果在查看時(shí),還能夠查看到源代碼那當(dāng)然是最好不過(guò)的。在 Chrome 瀏覽器下,可以安裝 Android SDK Search 擴(kuò)展程序來(lái)達(dá)到這個(gè)目的,該擴(kuò)展程序在 Chrome網(wǎng)上應(yīng)用店截圖如下所示。安裝完該擴(kuò)展程序后,再次搜索 Android API 后,會(huì)在相應(yīng)的搜索結(jié)果后增加一個(gè) view source鏈接。例如搜索 Activity 類,結(jié)果如圖 4 所示。點(diǎn)擊 view source鏈接,就可以打開 Activity類的源代碼,如圖所示,從網(wǎng)頁(yè)中可以看出其實(shí)是鏈接到了 Google 的 Android 源碼的 Git

AndroidXRef

AndroidXRef( http://androidxref.com/ )項(xiàng)目提供 Android 源碼的交叉索引,可以快速的搜索符合特定條件的 Android 源代碼,后臺(tái)是基于 OpenGrok 引擎,OpenGrok是一個(gè)快速,便于使用的源碼搜索引擎與對(duì)照引擎,它能夠幫助我們快速的搜索、定位、對(duì)照代碼樹。AndroidXRef 提供了完整的 Android kernel源碼的索引。在 AndroidXRef 主頁(yè)的右側(cè)顯示了可用的源碼版本,如圖所示, 

點(diǎn)擊相應(yīng)的源碼版本鏈接

就可以進(jìn)入對(duì)應(yīng)的源碼分支,如圖所示,我進(jìn)入6.0的最新分支:

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

  • Full Search: 進(jìn)行全文搜索,會(huì)匹配所有的單詞、字符串、標(biāo)識(shí)符以及數(shù)字等,例如在frameworks 下通過(guò) Full Search 搜索”mediacodec“

點(diǎn)擊”search“,會(huì)顯示所有包含mediacodec字符(忽略大小寫)的結(jié)果,即使是注釋也會(huì)顯示出來(lái),如下圖,點(diǎn)擊對(duì)應(yīng)的鏈接會(huì)打開包含mediacodec所在的文件夾

點(diǎn)擊左側(cè)文件名如 TrackDecoder. Java 鏈接會(huì)打開包含mediacodc字符串文件;

其他依次類推,點(diǎn)擊右側(cè)每一行的搜索結(jié)果鏈接同樣會(huì)打開相相應(yīng)的文件內(nèi)容;

  • Definition:搜索符號(hào)定義相關(guān)的代碼,例如搜索 ondraw 函數(shù)的定義,顯示結(jié)果如圖

提示你是否要找onDraw,onChildDraw等方法,我們點(diǎn)擊onDraw,立刻跳轉(zhuǎn)到如下頁(yè)面:

從搜索結(jié)果可以看到,所有onDraw方法的類都會(huì)列出來(lái),到第6頁(yè),找到我們熟悉的TextureView,點(diǎn)擊進(jìn)去

  • Symbol:搜索符號(hào),例如可以搜索類中的成員變量等,下圖顯示了通過(guò) Symbol 搜索FEATURE_NO_TITLE的結(jié)果

平時(shí)我們?cè)趖his.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標(biāo)題欄,這個(gè)FEATURE_NO_TITLE就是在Window.java中的,

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

這剛好就是我相要的,比起在IDE中一個(gè)一個(gè)看,這里這個(gè)功能不得不說(shuō)6的飛起。

  • History:這個(gè)幾乎沒(méi)有用,用處肯定也不大,我嘗試過(guò)各種搜索。

上面只是單一的搜索,如果是多個(gè)條件呢?這里依然滿足,

如搜索mediacodec.cpp中的start函數(shù),如圖所示:

由于AndroidXRef 使用的是 OpenGrok 引擎,因此還支持一些其他的搜索方式:在【 http://androidxref.com/6.0.0_r5/help.jsp 】,寫的相當(dāng)詳細(xì),感興趣的同學(xué)可以看看。

最后還是打個(gè)小宣傳吧,最近我正在參加CSDN 2016年度博客之星評(píng)選,拉票心累,趕緊幫投票吧! 時(shí)間:11月28日到12月18日每天都可以為我投一票 投票地址: http://blog.csdn.net/vote/candidate.html?username=hejjunlin ,點(diǎn)擊 【閱讀原文】可直接幫投 ,微信,qq,微博都可以。麻煩了!

 

 

 

來(lái)自:http://mp.weixin.qq.com/s?__biz=MzI2OTQxMTM4OQ==&mid=2247484275&idx=1&sn=bc4f8352b63a5b6dd84de0217946050a&chksm=eae1f621dd967f37732165c0dae157fb00799cba265fb2718d0745bcd9bc79c2cde38d36d21a#rd

 

標(biāo)簽: Google 代碼 搜索 搜索引擎

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:深入理解Java G1垃圾收集器

下一篇:Java開發(fā)代碼性能優(yōu)化總結(jié)