前言
成為一名優秀的Android開發,需要一份完備的知識體系,在這裡,讓我們一起成長為自己所想的那樣~。
一轉眼,一年很快就過去了,還記得一年前我寫的2018年終總結,當時定了比較完善的學習計劃,到目前為止,由於今年換工作變動等等其它原因,使本年度實施的學習計劃與2018年所制定的有一些差異,接下來,便開始回顧一下我的2019年主要做了哪些事情。
二、回顧我的2019年
第一季度(1-3月):
1、完成Android主流開源庫原始碼分析系列部落格,並完成Awesome-Third-Library-Source-Analysis開源專案
Awesome-Third-Library-Source-Analysis專案地址
眾所周知,優秀原始碼的閱讀與理解是最能提升自身功力的途徑,如果想要成為一名優秀的Android工程師,那麼Android優秀三方庫原始碼的分析和理解則是必備技能。因此,為了將知識成體系地聚合起來,筆者建立了Awesome-Third-Library-Source-Analysis這個專案,為的就是讓每一個Android工程師能夠從以下七方面全方位地提升自己。
這個專案目前已經全部完成,感興趣的同學可以點選上方連結進行檢視。
2、Android核心原始碼
主要基於《Android進階解密》一書學習與Android應用開發緊密相關的Framework核心原始碼:
- Context家族
- AMS
- WMS
- PMS
- JNI原理
3、Android外掛化知識相關
主要基於《Android進階解密》一書學習和理解外掛化知識,以此將FrameWork核心原始碼的相關知識融會貫通:
- JVM核心知識
- Davilk/ART核心知識
- 類載入機制
- 熱修復原理
- 外掛化原理(基於VirtualAPK)
第二季度(4-6月):
1、面試
整個4月份則都是在反覆地重複找工作、面試的這樣的過程,期間也將Awesome-Android-Interview這個面試開源專案進行了進一步的總結與完善。
隨著Android技術發展的成熟,Kotlin、大前端技術RN、Flutter、小程式等一下子就進入了我們的視野內,同時,Android自身的技術棧也正在不斷擴充套件,比如前段時間Google推出的Jetpack。因此,Android開發者們越來越焦慮,越來越迷茫,每個人的時間和精力是有限的,我們到底該學什麼才能有效地提高自身的競爭力呢?其實,首先我們應該優先深入學習工作中用到的技術,其次,關注這2年來Android最新的面試題所涉及的知識點,根據自身的實際情況有選擇地進行鍼對性的學習和提升。
這裡多說一句,其實找工作就是一個不斷進行自我認知的一個過程,它能讓你清晰地認識到自己哪方面存在著不足,哪一方面自己可能有一些優勢,當你因此而找到自己的優勢或感興趣的方向時,堅持下去,肯定會有所收穫。
後面的5、6月份則都是在適應的過程中度過,因為以前都是在比較小的團隊進行開發,所以一下轉到大的開發團隊後則有一些不適應。而且,團隊內的外包人員佔總人員比例是比較大的,大致為80%左右,這導致了許多應用程式碼或多或少都存在一些問題。因此,我們需要定製更多的流程與元件來檢測甚至解決這些問題。
2、開發效率提升
主要基於 《Android群英傳 神兵利器》 一書系統提升開發效率。(主要是換了Mac pro,QAQ~)
第三季度(7-9月):
1、系統學習Android原始碼設計模式
主要基於 《HeadFirst設計模式》 與 《Android原始碼設計模式解析與實戰》 兩本書進一步加深對Android FrameWork層的的理解與思考。
2、工作、學習效率提升
主要基於 《番茄工作法圖解》 一書系統學習了番茄工作法的實施。
3、演算法基礎學習
主要基於 《漫畫演算法》 一書對演算法中常見的資料結構與一些比較經典的演算法實現進行了深入地瞭解。
第四季度(10-12月):
1、深入學習Android效能優化
主要基於 極客時間之《Android開發高手課》、國內Top團隊大牛帶你玩轉Android效能分析與優化、《移動效能實戰》 和 《Android應用效能優化最佳實踐》(已完成)、收藏的其它效能優化課程、文章對Android效能優化相關知識進行全面、系統、深入地學習。並且,因此我開源了Awesome-Android-Performance專案。
深入探索Android效能優化,從應用層、Framework層、Native層、ART/Dalvik以及Linux核心實現原理等各個層次深入挖掘各項效能優化技術~
眾所周知,效能優化是Android細分領域中最難且也是知識面涉及最深和最廣的方向之一,但是如果你想要成為一名頂尖的Android工程師,效能優化細分領域則是非常好的實戰與理論結合的場所。因此,為了將效能優化涉及的各個層面的知識成體系地糅合到一起,筆者建立了Awesome-Android-Performance這個專案,希望能帶領讀者從Android系統架構中的應用層、Framework層、Native層、ART/Dalvik以及Linux核心層這一大垂直領域去深入探索與挖掘效能優化的極致技術。
在寫這篇年終總結之前,我剛剛完成了《深入探索Android記憶體優化》這篇文章,這篇文章含金量比較高,建議對記憶體優化感興趣的同學仔細閱讀,必定有所收穫。而且,記憶體優化可以說是效能優化中最重要的優化點之一,可以說,如果你沒有掌握系統的記憶體優化方案,就不能說你對Android的效能優化有過多的研究與探索。
2、前端基礎
大前端是未來的趨勢,技多不壓身,因此,基於 《大前端入門指南 前端基礎部分》 一書我對HTML、CSS、JavaScript的基礎核心知識進行了學習。
3、演算法學習
主要基於 《劍指Offer》(進行中) 一書系統學習演算法面試的解題思路。
接下來,我對我的2020年制定了最核心的學習計劃,所以會盡可能高標準地去實現好它。
二、展望我的2020年
第一季度(1-3月):
1、繼續深入學習Android效能優化
主要基於 極客時間之《Android開發高手課》、國內Top團隊大牛帶你玩轉Android效能分析與優化、《移動效能實戰》 和 《Android應用效能優化最佳實踐》(已完成)、收藏的其它效能優化課程、文章對Android效能優化相關知識進行全面、系統、深入地學習。並且計劃在3月底完成Awesome-Android-Performance專案。
2、系統學習資料結構與演算法
演算法是比較難的東西,所以我將演算法的學習全部放在了早上,詳細的演算法學習計劃如下:
- 1、全面瞭解資料結構與演算法知識地圖,建立演算法知識框架
- 2、300分鐘搞定資料結構與演算法,學習Google演算法面試的精髓(每週六上午)
- 3、劍指Offer,系統學習演算法面試的解題思路 13 - 68題(每天早上)
- 4、位元組跳動leetcode 38道演算法題(每天早上)
- 5、騰訊leetcode 11道高頻演算法題(每天早上)
第二季度(4-6月):
1、Android Framework層深入學習
主要基於 剖析Framework面試 衝擊Android高階職位 課程 將Framework的設計思想與實現細節、總體流程融合起來,追求真正的融會貫通。
2、深入並系統學習熱修復與外掛化
主要基於 Android應用發展趨勢必備武器 熱修復與外掛化 課程深入並系統地學習熱修復與外掛化技術。
3、演算法
LetteCode 每日一題 ==> 思考 & 練習 & 記錄 & 總結 & 歸納
第三季度(7-9月):
1、繼續Android Framework層深入學習
主要基於 《深入理解Android核心設計思想》 一書將Framework的設計思想與實現細節、總體流程融合起來,追求真正的融會貫通。
2、繼續深入並系統學習熱修復與外掛化
主要基於 《深入探索Android熱修復技術原理》、《Android外掛化開發指南》 兩本書 深入並系統地學習熱修復與外掛化技術。
3、演算法
LetteCode 每日一題 ==> 思考 & 練習 & 記錄 & 總結 & 歸納
第四季度(10-12月):
1、全面深入地掌握NDK技術
NDK技術是成為Android開發高手必須掌握的一個技能,因此,為了督促自身去深入學習NDK技術,我開源了Awesome-Android-NDK專案。
深入解碼Android NDK技術、紮實C、C++、Shell、Linux基礎,掌握JNI語法實現,熟悉Cmake、MakeFile的編譯底層原理,全面解密頂級公司核心技術,搭乘著音視訊與影像處理的5G快車,成長為最具核心競爭力的高階人才。
2、演算法
LetteCode 每日一題 ==> 思考 & 練習 & 記錄
三、總結
成長的道路總會充滿坎坷與荊棘,但是夢想與熱情總是使我們充滿力量,我相信,未來,會有更廣闊的天空。
心中有多少希望,未來就會有多精彩,願你我都將充滿力量地前行。
複製程式碼
讚賞
如果這個庫對您有很大幫助,您願意支援這個專案的進一步開發和這個專案的持續維護。你可以掃描下面的二維碼,讓我喝一杯咖啡或啤酒。非常感謝您的捐贈。謝謝!
Contanct Me
● 微信:
歡迎關注我的微信:
bcce5360
● 微信群:
微信群如果不能掃碼加入,麻煩大家想進微信群的朋友們,加我微信拉你進群。
● QQ群:
2千人QQ群,Awesome-Android學習交流群,QQ群號:959936182, 歡迎大家加入~
About me
-
Email: chao.qu521@gmail.com
-
Blog: jsonchao.github.io/
-
掘金: juejin.im/user/5a3ba9…