前言
成為一名優秀的Android開發,需要一份完備的知識體系,在這裡,讓我們一起成長為自己所想的那樣~。
今天,已經是2018年最後一天的工作日了,回想2018學習路上的點點滴滴,有收穫和喜悅,也有煩惱與焦慮,但是,總的來說,這一年,我在技術上的提升還是比較大的,因此,我感覺,我的付出是值得的,接下來,回顧一下2018年我的成長軌跡。
一、回顧我的2018年
第一季度(1-3月):
1、開源Awesome-WanAndroid(開源時間 2018年3月9日)
這是我在Github開源的第一個專案,也是第一個達到1K Star的專案。在這之前,我對開源的理解和大多數普通Android開發者的理解一樣,認為它只是一個免費的倉庫聚集地,其實,開源所包含的意義是巨大的,它對 整個Android社群的推動和發展 ,以及與 個人的成長緊密關聯 ,而我自身,也 因為開源,對Android本身的熱愛也更加濃厚了 。因此,希望每個人都能加入到這個大環境來,這能在某種程度上影響自身的發展。
再來說說這個專案,這個專案是基於鴻洋大神的個人網站WanAndroid進行開發的Android客戶端。它是一款會讓您覺得很nice的技術學習APP,所用技術基本涵蓋了當前Android開發中常用的主流技術框架,閱讀內容主要面向想在Android開發領域成為專家的朋友們,有興趣的朋友可以點選上面的連結進行檢視。
第二季度(4-6月):
1、開源Awesome-Android-Notebook(開源時間 2018年5月1日)
這個專案的發起還得從我的第一個開源專案Awesome-WanAndroid說起,在開源了這個專案之後,我收到了很多朋友的鼓勵,但同時,因為自身技術實力的薄弱,對很多專案本身所用技術和Android的理解層次不夠使我產生了一個將自己打造成為一個優秀Android開發的念頭,由此,Awesome-Android-Notebook誕生了,它是一份通往優秀Android開發的完備的計劃,有興趣的朋友可以參考下。
2、計算機網路系統學習
主要基於《計算機網路:自頂向下方法》一書對計算機網路OSI中的五層架構模型相關知識進行了較為深入的學習與理解。
3、系統學習Android單元測試
基於Awesome-WanAndroid 專案對Android單元測試的相關技術進行了系統學習,有興趣的可以檢視該專案的test測試目錄進行學習。
第三季度(7-9月):
1、開源Awesome-Android-Interview專案(開源時間 2018年7月29日)
隨著Android技術發展的成熟,Kotlin、大前端技術RN、Flutter、小程式等一下子就進入了我們的視野內,同時,Android自身的技術棧也正在不斷擴充套件,比如前段時間Google推出的Jetpack。因此,Android開發者們越來越焦慮,越來越迷茫,每個人的時間和精力是有限的,我們到底該學什麼才能有效地提高自身的競爭力呢?其實,首先我們應該優先深入學習工作中用到的技術,其次,關注這2年來Android最新的面試題所涉及的知識點,根據自身的實際情況有選擇地進行鍼對性的學習和提升。只有這樣,自身才不會被所謂的 網際網路寒冬 嚇倒。
2、Python基礎 && 資料分析基礎學習
這一塊主要是基於公司的後臺演算法專案為目的對Python基礎知識和資料分析相關基礎進行了學習。
第四季度(10-12月):
1、Android核心知識點學習
基於 《Android開發藝術探索》 、 《Android進階之光》 對Android應用開發涉及的核心知識點進行了系統的學習 & 複習 & 理解,並對其中的重難點知識進行了部落格輸出:
- Android觸控事件傳遞機制
- Android View的繪製流程
- Android中的訊息機制Handler
- Android中的執行緒和執行緒池
- ...
2、開源Awesome-Third-Library-Source-Analysis專案(開源時間 2018年12月18日)
Awesome-Third-Library-Source-Analysis專案地址
眾所周知,優秀原始碼的閱讀與理解是最能提升自身功力的途徑,如果想要成為一名優秀的Android工程師,那麼Android優秀三方庫原始碼的分析和理解則是必備技能。因此,為了將知識成體系地聚合起來,筆者建立了Awesome-Third-Library-Source-Analysis這個專案,為的就是讓每一個Android工程師能夠從以下七方面全方位地提升自己:
這個專案目前已進行進行到第四步——響應式程式設計,最近幾天就會輸出RxJava的原始碼分析文章,此前,已經對Android中的網路、圖片載入、資料庫熱門框架原始碼進行了分析,感興趣的可以點此檢視,目前,估計在2019年1月底此係列將會完結,後續會馬上推出Android核心原始碼的分析系列,敬請期待。
3、C/C++核心基礎知識複習
要想深入研究Android原始碼,C/C++基礎則是必備之一,因此,我重新撿起了C/C++,下面是C/C++的核心知識速記筆記:
接下來,下面對我的2019年做了最核心的學習計劃,所以會盡可能地去完成好它。
二、初始化我的2019年
第一季度(1-3月):
1、Android主流開源庫原始碼分析系列部落格
Android高階開發者必須瞭解的核心開源庫原始碼:
- 記憶體洩露:LeakCanary
- 依賴注入:ButterKnife、Dagger2
- 事件匯流排:EventBus
2、Android核心原始碼
與Android應用開發緊密相關的Framework核心原始碼( 主要基於《Android進階解密》一書 ):
- Context家族
- AMS
- WMS
- PMS
- JNI原理
3、Android外掛化知識相關
學習和理解外掛化知識能將FrameWork核心原始碼的相關知識融會貫通( 主要基於《Android進階解密》一書 ):
- JVM核心知識
- Davilk/ART核心知識
- 類載入
- 熱修復
- 外掛化(基於VirtualAPK)
4、元件化
結合公司新版專案系統學習元件化架構的設計與理念。
5、演算法
LetteCode 每日一題 ==> 思考&練習&記錄,基於以下學習課程:
第二季度(4-6月):
1、Android原始碼設計模式
主要基於 Android原始碼 和 《Android原始碼設計模式解析與實戰》 一書進一步加深對Android FrameWork層的的理解與思考。
2、演算法
LetteCode 每日一題 ==> 思考 & 練習 & 記錄,基於以下學習課程:
- 極客時間之《資料結構和演算法之美》
第三季度(7-9月):
1、深入理解Android熱修復
主要基於 現有的熱修復技術 和 《深入探索Android熱修復技術原理》 一書進一步加深對Android熱修復技術的的理解與思考解。
2、深入理解Android外掛化
主要基於 現有的外掛化技術 和 《Android外掛化開發指南》 一書進一步加深對Android外掛化技術的理解與思考。
3、演算法
LetteCode 每日一題 ==> 思考 & 練習 & 記錄,基於以下學習課程:
- 極客時間之《演算法面試通關40講》
第四季度(10-12月):
1、深入學習Android效能優化
主要基於 極客時間之《Android開發高手課》 和 《Android應用效能優化最佳實踐》、收藏的其它效能優化博文對Android效能優化相關知識進行全面、系統、深入地學習。
2、演算法
LetteCode 每日一題 ==> 思考 & 練習 & 記錄。
三、總結
如果想要成為一名優秀甚至卓越的Android工程師,就必須給自己 制定好切合自身的計劃 ,並 不斷地刻意練習和思考 ,只有這樣,我們才能像鍛鍊肌肉一樣去強化我們的大腦,最終,我們便會擁有 一通百通、快速學習的能力 。