Android開發5年,分享下初級中級高級劃分標準 [復制鏈接]

2019-9-29 10:45
XGBS 閱讀:521 評論:1 贊:0
Tag:  Android開發

前言

移動研發在最近兩年可以說越來越趨于穩定,因為越來越多人開始學習Android開發,造成市場參差不齊。正所謂入門容易成長很難,對未來比較迷茫,不知道自己技能該怎么提升,并且對于初級中級高級需要怎么進行成才,很多人都比較迷惑。



這是一線互聯網公司Android崗位薪資職位圖譜。為了方便大家成才,我把初級、中級、高級和資深四個常見的崗位需要掌握的一些知識進行如下整理。

初級

初級研發工程師的定義是掌握基礎的Android知識,能夠獨立完成一個功能,工作年限大概在1-2年,這個層級大部分人通過看一些資料書籍再經過項目練習很快可以達到。這個級別的人往往需要掌握如下一些技能:

  • 掌握Android 四大組件知識,深入了解相關生命周期,對于Application、Fragment、Intent常見的開發知識也必須掌握。
  • 掌握Android 基本布局和控件的屬性和使用,常用布局有LinearLayout、RelativeLayout、ConstraintLayout等,控件有- TextView、ImageView、RecyclerView、ScrollView等。
  • 對Android的資源訪問使用有基本了解,了解Android針對不同國家、語言、屏幕、API的適配原理。
  • 掌握android系統服務和工具類的使用,對網絡訪問和數據庫操作有基本認知。
  • 熟練掌握研發工具,如IDE、模擬器、網絡代理、日志等。

中級

我對中級工程師的定義是能夠熟練完成功能研發外,還需要掌握常見開源庫的一些原理,并仿照開源庫去造輪子練習。這個階段的人大多工作3-5年,業務開發能力熟練,碰到任何一個問題都能夠得到解決,這個級別的人往往需要具備如下技能:

  • 熟悉SOLID基礎設計原則,掌握23種設計模式。
  • 對于研發語言特性java/kotlin有深入理解,如反射、動態代理、apt等。
  • 對Android架構有基礎了解,對apk結構和打包原理有深入了解。
  • 對于Android各個版本特性有基本了解,如MD設計、權限管理、doze模式等。
  • 熟練掌握各種研發調試工具,如git、gradle、mat、layout inspector等。
  • 掌握Handler\AsyncTask原理,熟悉多線程開發。
  • 對繪頁面制原理有初步理解,能夠實現一個復雜自定義控件。
  • 能夠熟練掌握開源庫的使用,如圖片庫(Glide\Fresco)、網絡庫(Volley\okhttp\Retrofit)、工具(Dagger\RxJava\EventBus)等,能夠對這些常用的庫進行二次封裝。
  • 熟悉應用常見的優化方法,避免編寫內存泄漏的代碼。

高級

對于高級,就不僅限于功能和業務開發,還需要深入理解Android系統的運行原理,達到融會貫通,部分可夠作為Android端架構師。這一階段的人大多工作5-8年,具備開源庫設計能力,同時對于Android系統的運行原理也比較了解。

  • 掌握java高級特性,如JUC、線程池、NIO\BIO等;掌握jvm虛擬機知識,如內存模型、GC原理、類加載機制、線程模型等。
  • 對Android運行環境有深入理解,理解Android沙盒機制,掌握AIDL原理及Binder通信原理,了解app和activity啟動原理。
  • 掌握熱修復原理,各大廠商方案的優缺點。
  • 對于Android事件分發有深入理解,重點掌握觸摸事件機制。
  • 深入理解Android繪制原理,理解VSYNC和surface機制和窗口原理。
  • 深入理解Android動畫原理,包括補間動畫和屬性動畫。
  • 對于Android安全機制有基本認知,理解Android安全原理。
  • 深入理解端上設計范式思想,如mvc\mvp\mvvm\clean-arch等。
  • 理解架構演進,有良好的分層和拆分思路,掌握模塊化、插件化、動態部署等。
  • 對新技術敏感(,理解掌握下一代架構dynamic feature等。

如果達到這一水平,恭喜你,你已經超過70%左右的人,但是如果要再進一步,比如架構中/開發專家,那么除了理解Android的一些核心原理外,還需要具有架構設計能力,能夠從更高層面看待問題,理解整個系統的設計。

專家

作為開發專家,那么除了理解Android的一些核心原理外,還需要具有架構設計能力,能夠從更高層面看待問題,理解整個系統的設計。

  • 理解微服務、SOA思想,對于后端開發有一定涉獵。
  • 了解前端研發工具和思想,知道vue react等研發框架。
  • 深入理解跨端技術,如phonegap、weex/RN flutter、小程序快應用等。

一線互聯網公司主流的Android架構師技術體系詳解

以前我們一直被公司和技術牽著走,并不是自己在選擇技術,而是不自覺地被推到了現在尷尬的處境。想想有多少人對于自己將來要發展的方向和技術類型進行過深入思考和比較呢?

今天,就為大家整理一份目前互聯網公司最主流的Android開發架構技術。按照這個框架去完善和深入自己的技術,年薪40w又有何難呢?

1.Java語言進階與Android相關技術核

Android應用是由Java語言進行開發的,SDK也是由Java語言編寫,對于Android來說,只要SDK沒有用Kotlin重寫,那么Java語言是都需要學習的。而且Android APK的后臺服務器程序大概率是Java語言構建,所以掌握Java也是一種必然,這就是為什么BAT面試為什么死摳你的Java水平。


Android開發5年,分享下初級中級高級劃分標準


2.APP開發框架體系

APP開發這塊知識是現今使用者最多的,并且大多都是CV工程師,程序員界的2-8定律:80%的問題只需要使用20%的知識就可以解決,Android開發也不例外。因而,我們大部分人已經逐步變成了代碼搬運工而自己卻不知道。代碼容易搬運,架構體系卻難以復制,要成為架構師,你必須自己親自去項目實戰,讀源碼,研究原理。


Android開發5年,分享下初級中級高級劃分標準


3.性能調優

我們不僅僅對項目要運籌帷幄,還要能解決一切性能問題。只有具備深厚的代碼功底,深入學習源碼原理以及使用工具進行測試和檢查調優,才能達到知其然,知其所以然的效果。


Android開發5年,分享下初級中級高級劃分標準


4.移動架構師專題項目實戰

架構師不是天生的,是在項目中磨練起來的,所以,我們學了技術就需要結合項目進行實戰訓練,那么在Android里面最常用的架構無外乎 MVC,MVP,MVVM,但是這些思想如果和模塊化,層次化,組件化混和在一起,那就不是一件那么簡單的事了,我們需要一個真正身經百戰的架構師才能講解透徹其中蘊含的深理。


Android開發5年,分享下初級中級高級劃分標準


Android高級架構技術腦圖;查漏補缺,體系化深入學習提升


Android開發5年,分享下初級中級高級劃分標準

我來說兩句
您需要登錄后才可以評論 登錄 | 立即注冊
facelist
所有評論(1)
xcy_001 2019-10-1 19:11
  
回復
領先的中文移動開發者社區
18620764416
7*24全天服務
意見反饋:[email protected]

掃一掃關注我們

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粵ICP備15117877號 )

海南特区七星彩