本人在某做手機ROM的廠商工作近兩年,雖然工作年限不長,但是對此類“工種”已有比較初步的認識,寫下來供大家參考借鑒。
framework的工作相對於其他比較成熟的軟件開發類似,分為維護和需求開發。
需求開發需要注意的是:
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整體架構,對方案設計的優劣有自己的認識,並且能提出更好的改進方案