標籤:

對於一個Android 第三方庫源碼或Android 應用框架層源碼時,怎樣才能更有效的閱讀和理解?

求助求助


我的習慣是:先看抽象再看實現。

無論是第三方的庫提供的API,還是Android提供的API,都會歸屬於某個模塊。那個模塊肯定有它自己的UML圖,根據抽象類分析類之間的依賴關係後面的都是水到渠成的事了。


【我的30分鐘高效閱讀法則】

1) 寫一個demo,調用基礎api,試運行效果

2) 順著自己調用的api,逐級查找調用鏈,直至到底層核心邏輯。

3) 根據框架提供的設計圖,按圖索驥,有選擇地閱讀關鍵節點。比如eventbus為例:它的核心點是消息分發邏輯,消息發送者和消息觀察者。

4)對比法。找同類框架對比其相同點和差異點。我們項目也有自己寫的消息分發框架。對比分析,比如相同點都是採用handler來發送消息,支持ui線程和非ui線程通知回調。不同點:我們的消息框架是支持跨進程的(也即可以完美支持多進程)

5)顛覆or微創新。自己能不能寫一個新的框架來替代它或顛覆它。如果不行,是否可以做微創新,來完善它。這樣自己肯定是非常理解這個框架了。


我原來也提過這個問題。不過最後還是自己回答了。23333

正文

我一般看框架不會說一上來就看,我會把它的Api 實現功能全部寫一邊,最好是看這官方文檔。

如果有可能的話,最好能在項目中使用,因為有一些功能不在相應的場合是不會用到的。

然後先研究自己感興趣模塊,一邊問自己為什麼,一邊繼續看。

反正第一遍看下來就會有很多疑問,然後在進行第二遍,直到自己的疑問全部解決。

這個是我看框架的博客過程,希望對你有幫助

http://blog.csdn.net/it_peng/article/details/51581426


推薦閱讀:

國外有哪些關於Android的學習網站或資料或論壇?
有必要研究安卓源碼嗎?
Android 開發了解 Android虛擬機或者 JVM ,會有什麼樣的直接提升,或者實踐呢?
如何看待 Airbnb 新發布的 Lottie?

TAG:Android開發 |