Framework學習方法彙總

這部分參考:
https://www.zhihu.com/question/46486807
https://www.cnblogs.com/hackerkevin/p/5616913.html

一、Framework需求開發與維護注意點

1、需求開發

1) 非常熟悉相關功能的現有模塊,否則會有非常大的風險

2 )所寫代碼儘量與已有類似的代碼保持風格一致

3 )必要的註釋

寫代碼的時候認爲代碼的意圖貌似是理所當然,但是當別人看你的代碼或者過一段時間你自己查閱代碼的時候,很有可能由於代碼量過大,在代碼的海洋中未必容易理解某一段代碼的意圖

4 )找比自己能力強的,經驗較爲豐富的同事review代碼。

系統層畢竟是上層應用的基礎,必須保證其極高的穩定性,不像app即使有一些bug可以快速的迭代和發版推送。

2、維護

1 )優秀的代碼設計。

Android的代碼加工的順序大致是Google源碼->芯片廠商的修改->OEM廠商的修改。這些代碼裏積累了大量世界級優秀的代碼設計方式,架構思想,這樣咱們對代碼的學習和認識的起步就是不低的,所以閱讀大量的代碼過後,我們再嘗試寫代碼的時候,一般也不會寫出低質量的代碼

2 )分析定位的技巧。

一個經驗豐富的工程師的價值,主要會體現在遇到問題時,能夠分析定位解決問題的能力和效率,而很少會聽說我這有個20年經驗的工程師,他的價值在於別人一個小時能寫成的代碼他在一分鐘就寫出來了。

3 framework層維護開發的五個階段:

  • 第一階段:熟悉各種基本工具的使用,比如linux,git,sourceinsight,svn等等

  • 第二階段:對所需要維護模塊的代碼逐漸熟悉起來,可以通過定位問題來梳理代碼流程,當然此時主要是通過log定位

  • 第三階段:這個階段往往是一個瓶頸,因爲可以直接通過Log定位的問題佔大多數,這時候很多人就會自我感覺良好,也逐漸形成了惰性不再追求更多的知識,並且還會認爲自己已經熟悉了很多的模塊。
    切切不可如此!!!看代碼,梳理流程,這是最基本的工作模式,這個時候我們追求更“牛逼”的分析手段
    1 比如使用性能分析工具systrace和traceview,
    2 比如Google提供的功耗分析工具buttery historal2.0,
    3 比如ddms裏的內存分析工具mat和層級觀察器工具(能夠直接對應到UI上)

  • 第四階段:追求性能穩定性的問題解決

  • 第五階段:Android整體架構,對方案設計的優劣有自己的認識,並且能提出更好的改進方案

二、閱讀Android源碼的術與道:

1、Android源碼的道

Android的功夫,在Android之外。要想“理解”而非單純的“知道”,想“學習”而非單純的“記誦”。

必備基礎:信息檢索能力、編程語言(C\C++、Java)、計算機系統知識、設計模式、JVM,多線程設計

2、Android源碼的術

針對每一個模塊本身的職責,詢問更細節的實現,永遠記住,先有的問題,之後纔有的代碼。代碼實現是新鮮的,但是有了之前的鋪墊和對問題的預期,它們的出現纔是可理解的。

總結:先理解模塊對應的要解決的“問題”是什麼,再去給問題找解決方案的思路去理解源碼;

理解源碼的功夫不止在Android本身,也要提高Android之外的姿勢水平。

三、閱讀源碼時候的注意點

開始看的時候要忽略細節,跟着流程走。工作原理一般都可以文字描述,如何實現的,跟着函數調用一步一步套,流程通了,細節就不在話下了。
  看不懂的多讀、不重要的少讀、邊讀邊思考、不是所有的都需要思考、記得做筆記。

1、高度抽象,構建框架

2、重要函數,深究細節

3、善用工具,及時總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章