Android原生開發飽和後,為什麼還有這麼多人沒轉行?
曾聽過很多人說Android學習很簡單,做個App就上手了,工作機會多,畢業後也比較容易找工作。這種觀點可能是很多Android開發者最開始入行的原因之一。
在工作初期,工作主要是按照業務需求實現App頁面的功能,按照設計師的設計稿實現頁面的效果。
在實現的過程中,總是會被提如下的需求:
這個字能不能大點或者醒目點兒?
顏感覺顏色和設計稿有差別,能不能再調調?
怎麼老是崩潰啊,行不行啊?
......

所以,工作過一年後你會發現,自己的工作重點就是 將找各種各樣的元件、框架,拖拖拽拽,改改樣式。 在極端情況下出現了問題後(比如部分機型上崩潰,載入圖片慢),也不知道該如何解決!都不好意思說自己是搞技術的。
造成這種局面的有兩種原因:
- 所開發的App功能要求並不複雜,在效能上呢,也不需要極致的追求;
- 自己的意識不夠,不知道如何從平凡的工作中提煉可優化的點,在向上提升方面也沒有 完整的規劃 。
從自身規劃的角度講,技術上的進階分如下幾個階段:
- 做好業務需求的功能 。這個是初級程式設計師就應該有的能力。
- 解決極端情況下的技術問題,比如效能優化,OOM等。 稍有點規模的公司,肯定都會遇到這種問題,比如上文中說的App在部分機型上崩潰、頁面載入不出來等。只是大部分程式設計師會覺得難以復現,或者是因為小概率事件而忽略了。 在忽略這些問題的過程中,也放棄了進一步提升的可能性。 還有一部分程式設計師是看到了這些問題,但一直不知道怎麼解決,因為這些問題的產生基本都是要往底層框架去找原因,而平時只關注上層的業務邏輯程式碼,因而沒有深入研究底層的原理,導致心有餘而力不足。
- 在開發框架和效率上做文章。 舉個例子,很多程式設計師說自己的精力都在和產品的撕逼中浪費了,但有沒有想過,能夠通過技術手段將自己從繁雜的無技術含量的工作中解救出來?比如是否能夠做到只編寫一次程式碼,或者改個配置引數就能夠做到在不同平臺上執行。更高的要求是,能否將這些方案做成通用框架或產品。
沒轉行的Android程式設計師大多都是希望能在這方面繼續學習提升的。而上面列舉的幾個階段,首先要從思考方式上去逼迫自己不斷地逼迫自己,不要偷懶。其次,要想按照上述階段發展,還需要落在實處,在具體的技術體系中不斷的學習。
舉個例子:
對於OOM,需要知道有哪些優化工具可以使用(Lint、MAT等),如何檢測OOM,以及垃圾回收機制等深層次的原理。對於 效能優化 來說,如何減少apk體積、資源動態載入等都是必會的。以下是效能優化相關思維導圖。

(Android效能優化思維導圖)
在體系化的學習過程中,部落格、書籍、視訊課程都是較好的學習手段。
鑑於Android也是基於java語言的,因此很多與java相關的基礎也是必須掌握的,比如《深入理解Java虛擬機器》、《Effective Java》等相關書籍也是必讀的。
Android相關的書籍包括《Android權威程式設計指南》、《Android開發藝術探索》等,進一步的還可以去閱讀Android相關原始碼,配合《Android原始碼設計模式解析與實戰》等書籍,對閱讀原始碼大有裨益。

(Android學習推薦書籍)
如果你覺得自己看書太慢難以全部理解,部落格不夠系統,依然覺得有些茫然,可以去找一套系統的高階進階視訊來學習提升

進階視訊和麵試專題整理,部分截圖
我有整理完整系統的一套Android進階p7級別的視訊教程,以及根據現在各大企業面試和公司內部的需求,整理的一套面試專題。希望可以幫到大家找到一份好工作。
上面截圖裡的進階視訊和麵試資料可以免費分享 ,有需要可以加Android技術交流群;964557053,找群管理免費領取。只要備註一下簡書看到的來領取資料就可以了!(如果沒拿到可以回來噴我)##### 點選連結加入群聊當然真正能進階達到阿里p7級別的Android高階工程,只有少數人。至少你得精通下面這份高階技術大綱裡百分之八十的技術(包括Java在Android開發中應用、APP框架知識體系、高階UI、全方位效能調優,NDK開發,音視訊技術,人工智慧技術,跨平臺技術等深入學習視訊資料)
技術大綱太大無法完全顯示,請點選##### 技術大綱腦圖詳細地址
而這套完整的高階視訊教程其實就是大綱裡所有的技術。預期學完要花八個月時間。所以我剛剛說真正能達到阿里p7級的人只有極少數。沒有足夠的毅力和決心的人不可能堅持到底,想要得到多少,就得付出多大少的代價。很多人跟我抱怨過,我經常加班,甚至一直都是996,我怎麼可能有時間和精力去學習提升自己?不過我從不會去勸別人,因為我以前也是這麼過來的,明白其中的艱辛。每個人都有不同的選擇,然後走上不同的人生。

全套高階視訊教程截圖