Android Framework學習方法彙總

  剛入行Android系統開發兩年,發如今項目維護和需求開發的時候僅僅考慮快速解決,而沒有深刻理解其設計思想和思考高效穩定的解決方法,畢竟framework修改直接影響系統的穩定性,任何問題的修改,須要慎重。隨着項目的開展和積累,愈加以爲須要深刻學習理解framework的設計,下面是網上和相關書籍總結的學習思路,僅僅在此彙總下。html

 

1、閱讀Android源碼的術與道:java

  一、Android源碼的道linux

  Android的功夫,在Android以外。要想「理解」而非單純的「知道」,想「學習」而非單純的「記誦」。必備基礎:信息檢索能力、編程語言(C\C++、Java)、計算機系統知識、設計模式、JVM,多線程設計git

  二、Android源碼的術編程

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

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

   理解源碼的功夫不止在Android自己,也要提升Android以外的姿式水平。架構

 

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

  一、需求開發框架

1) 相關功能的現有模塊須要很是熟悉,不然會有很是大的風險

2 )所寫代碼儘可能與已有相似的代碼保持風格一致

3 )必要的註釋,寫代碼的時候認爲代碼的意圖貌似是理所固然,可是當別人看你的代碼或者過一段時間你本身查閱代碼的時候,頗有可能因爲代碼量過大,在代碼的海洋中未必容易理解某一段代碼的意圖

4 )找比本身能力強的,經驗較爲豐富的同事review代碼。系統層畢竟是上層應用的基礎,必須保證其極高的穩定性,不像app即便有一些bug能夠快速的迭代和發版推送。

  二、維護

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

2 )分析定位的技巧。一個經驗豐富的工程師的價值,主要會體如今遇到問題時,可以分析定位解決問題的能力和效率,而不多會據說我這有個20年經驗的工程師,他的價值在於別人一個小時能寫成的代碼他在一分鐘就寫出來了。

  剛踏入framework層維護開發的時候所須要注意和經歷的階段:

第一階段:熟悉各類基本工具的使用,好比linux,git,sourceinsight,svn等等,固然基本的編程知識須要有,若是如java之類的使用都還不是很熟,建議先回家讀書

第二階段:對所須要維護模塊的代碼逐漸熟悉起來,能夠經過定位問題來梳理代碼流程,固然此時主要是經過log定位

第三階段:這個階段每每是一個瓶頸,由於能夠直接經過Log定位的問題佔大多數,這時候不少人就會自我感受良好,也逐漸造成了惰性再也不追求更多的知識,而且還會認爲本身已經熟悉了不少的模塊。好比你按照這種方式工做了五年,我保證你再出去也找不到工做,由於你並無五年的工做經驗,只是使用了一個月能達到的經驗工做了五年!!!看代碼,梳理流程,這是最基本的工做模式,這個時候咱們追求更「牛逼」的分析手段,好比使用性能分析工具systrace和traceview,好比Google提供的功耗分析工具buttery historal2.0,好比ddms裏的內存分析工具mat和層級觀察器工具(可以直接對應到UI上)

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

第五階段:Android總體架構,對方案設計的優劣有本身的認識,而且能提出更好的改進方案

 

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

  開始看的時候要忽略細節,跟着流程走。工做原理通常均可以文字描述,如何實現的,跟着函數調用一步一步套,流程通了,細節就不在話下了。

  看不懂的多讀、不重要的少讀、邊讀邊思考、不是全部的都須要思考、記得作筆記。

一、高度抽象,構建框架
二、重要函數,深究細節
三、善用工具,及時總結

 

參考:https://www.zhihu.com/question/46486807

   https://www.cnblogs.com/hackerkevin/p/5616913.html

相關文章
相關標籤/搜索