Android開發初級中級高級怎麼劃分

移動研發在最近兩年能夠說愈來愈趨於穩定,由於愈來愈多人開始學習Android開發,形成市場良莠不齊。正所謂入門容易成長很難,對將來比較迷茫,不知道本身技能該怎麼提高,而且對於初級中級高級須要怎麼進行成才,不少人都比較迷惑。
爲了方便你們成才,我把初級、中級、高級和資深四個常見的崗位須要掌握的一些知識進行以下整理。前端

初級

初級研發工程師的定義是掌握基礎的Android知識,可以獨立完成一個功能,工做年限大概在1-2年,這個層級大部分人經過看一些資料書籍再通過項目練習很快能夠達到。這個級別的人每每須要掌握以下一些技能:
掌握Android 四大組件知識,深刻了解相關生命週期,對於Application、Fragment、Intent常見的開發知識也必須掌握。
掌握Android 基本佈局和控件的屬性和使用,經常使用佈局有LinearLayout、RelativeLayout、ConstraintLayout等,控件有TextView、ImageView、RecyclerView、ScrollView等。
對Android的資源訪問使用有基本瞭解,瞭解Android針對不一樣國家、語言、屏幕、API的適配原理。
掌握android系統服務和工具類的使用,對網絡訪問和數據庫操做有基本認知。
熟練掌握研發工具,如IDE、模擬器、網絡代理、日誌等。vue

中級

我對中級工程師的定義是可以熟練完成功能研發外,還須要掌握常見開源庫的一些原理,並仿照開源庫去造輪子練習。這個階段的人大多工做3-5年,業務開發能力熟練,碰到任何一個問題都可以獲得解決,這個級別的人每每須要具有以下技能:
熟悉SOLID基礎設計原則,掌握23種設計模式。
對於研發語言特性java/kotlin有深刻理解,如反射、動態代理、apt等。
對Android架構有基礎瞭解,對apk結構和打包原理有深刻了解。
對於Android各個版本特性有基本瞭解,如MD設計、權限管理、doze模式等。
熟練掌握各類研發調試工具,如git、gradle、mat、layout inspector等。
掌握HandlerAsyncTask原理,熟悉多線程開發。
對繪頁面制原理有初步理解,可以實現一個複雜自定義控件。
可以熟練掌握開源庫的使用,如圖片庫(GlideFresco)、網絡庫(VolleyokhttpRetrofit)、工具(DaggerRxJavaEventBus)等,可以對這些經常使用的庫進行二次封裝。
熟悉應用常見的優化方法,避免編寫內存泄漏的代碼。java

高級

對於高級,就不只限於功能和業務開發,還須要深刻理解Android系統的運行原理,達到融會貫通,部分可夠做爲Android端架構師。這一階段的人大多工做5-8年,具有開源庫設計能力,同時對於Android系統的運行原理也比較瞭解。
掌握java高級特性,如JUC、線程池、NIOBIO等;掌握jvm虛擬機知識,如內存模型、GC原理、類加載機制、線程模型等。
對Android運行環境有深刻理解,理解Android沙盒機制,掌握AIDL原理及Binder通訊原理,瞭解app和activity啓動原理。
掌握熱修復原理,各大廠商方案的優缺點。
對於Android事件分發有深刻理解,重點掌握觸摸事件機制。
深刻理解Android繪製原理,理解VSYNC和surface機制和窗口原理。
深刻理解Android動畫原理,包括補間動畫和屬性動畫。
對於Android安全機制有基本認知,理解Android安全原理。
深刻理解端上設計範式思想,如mvcmvpmvvmclean-arch等。
理解架構演進,有良好的分層和拆分思路,掌握模塊化、插件化、動態部署等。
對新技術敏感(,理解掌握下一代架構dynamic feature等。
若是達到這一水平,恭喜你,你已經超過70%左右的人,可是若是要再進一步,好比架構中/開發專家,那麼除了理解Android的一些核心原理外,還須要具備架構設計能力,可以從更高層面看待問題,理解整個系統的設計。react

專家

做爲開發專家,那麼除了理解Android的一些核心原理外,還須要具備架構設計能力,可以從更高層面看待問題,理解整個系統的設計。
理解微服務、SOA思想,對於後端開發有必定涉獵。
瞭解前端研發工具和思想,知道vue react等研發框架。
深刻理解跨端技術,如phonegap、weex/RN flutter、小程序快應用等。android

相關文章
相關標籤/搜索