
前言
作業一段時間一般都會出現一個瓶頸,這個時候學習的效率就會大打折扣,如果找不到好的方式,花的時間就會很長,然而進步的空間卻很小,那么好的方式是什么呢?答案就是知識體系的思維導圖,
構建自己的知識體系尤為重要,每個人都應該構建自己的知識體系,那么如何構建自己的知識體系呢?對于我來說,我是做 Android 開發的,從畢業到現在,大概六年多的時間,小公司呆過,大公司也呆過,自己獨立開發過產品,同時也跟大團隊一起開發過,因此基本上能經歷的都會經歷過,在這幾年的開發時間里,我基本都會有學習總結的習慣,有的是作業上用到的,有的是平常想到的 idea ,我都會總結下來,然后抽空整理一下,寫成博客,
這幾天一直在準備構成大綱,前天后后大概花了四天時間來完成大綱思維導圖,今天我就將它分享出來,歡迎大伙一起學習,
總綱
計算基礎
- 資料結構與演算法
- 作業系統
- 計算機網路
- 組成原理
編程語言
- Java
- ReactNative
- Flutter
Android學習
- 基礎入門
- 進階
- 高級
- 推薦書籍
面試總結
學習思維大綱主要由以上幾大部分組成,基礎部分,語言部分,還有其他方面的內容,不管作業還是生活都會涉及到,由于我是做 Android 開發的,因此主要會涉及 Android 開發的內容,接下來,我們就依次展開各個部分的詳細大綱進行描述:
計算機基礎
在計算機基礎部分中,最重要的當然屬于資料結構與演算法,這部分在我們實際的作業中,用到的比較多,因此本公眾號會著重總結所用到的各種資料結構以及演算法,
資料結構
復雜度分析
- 時間復雜度
- 空間復雜度
線性表
- 陣列
- 鏈表
- 單鏈表
- 雙向鏈表
- 回圈鏈表
- 靜態鏈表
- 佇列
- 順序存盤
- 鏈式存盤
- 堆疊
- 順序堆疊
- 鏈式堆疊
散串列
- 散列函式
- 沖突解決
樹
- 二叉樹
- 平衡二叉樹
- 二叉查找樹
- 平衡二叉樹(AVL樹,紅黑樹)
- 多路查找樹
- B樹
- B+樹
- 2-3樹
- 2-3-4樹
- 堆
- 小頂堆
- 大頂堆
- 二項堆
- 裴波那契堆
- 遍歷
- 深度優先
- 官渡優先
圖
- 存盤
- 鄰接矩陣
- 鄰接表
- 十字鏈表
- 最小生成樹
- 遍歷
- 最短路徑
- 拓撲排序
演算法
基本演算法思想
- 貪心演算法
- 分治演算法
- 動態規劃
- 回溯演算法
- 列舉演算法
排序
- O(n^2)
- 冒泡排序
- 插入排序
- 選擇排序
- 希爾排序
查找
- 線性表查找
- 散串列查找
- 樹結構查找
- 圖查找
搜索
- 廣度優先
- 深度優先
字串符
- 存盤
- 模式匹配
編程語言
由于 Android 開發主要使用 Java 語言,因此對于 Java 的學習顯得尤為重要,因此本公眾號也會著重學習 Java 各方面的知識點,對于 Android 開發,Google 目前也主推 kotlin ,因此也會涉及到 kotlin 相關的內容,對于跨平臺開發的內容,RN 和 Flutter 我們也會涉及到的,
基礎
- JDK/JRE區別
- 資料型別
- 自動裝包拆包
- 多載和重寫區別
- 介面
- 多型
- 繼承
- 內部類
高階
集合框架
- Collection
- List(ArrayLlst,LinkedList,Vector)
- set(Treeset,HashSet)
- Map
- HahsMap
- HashTable
- TreeMap
- ArrayMap
- 多執行緒容器
- CopyonwrteArrayLlst
- ConCurrencyHashMap
多執行緒/井發鎖
- 生命周期
- 啟動方式
- 執行緒安全/鎖
- 執行緒池
行程/通信方式
- Socket
- 訊息佇列
- 管道
- 記憶體共享
- AIDL
- 信號量
反射
泛型
動態代理
垃圾回收和GC
- 分代回收
- 回收演算法
- 垃圾回識訓制
- 可達性分析
- 參考型別
JVM虛擬機
- classLoader
- JVM記憶體模型
- GC回識訓制
注解
Android
接下來就是我們的重頭戲 Android 部分的知識點,Android 部分的知識點多而且雜,因此做一個學習大綱很重要,將重要的知識點都以大綱的形式列出來,這對于我們學習 Android 開發幫助很大,
入門
Androld studio安裝及插件使用
- 安裝
- 常用插件
- GsonFormat
- Android Parcelable code generator
- Lifecycle sorter
- Adb WIFI
- ECTranslation
四大組件
- Actlvity
- Activty啟動程序
- 啟動模式
- 生命周期
- taskAtfinity
- intent
- onNewIntent
- Service
- startService
- bindService
- IntentService
- ContentProvider
- BroadCaseReceiver
- 注冊方式(動態,靜態)
- 傳遞方式(有序,無序)
- 事件種類(自定義,系統)
- 范圍(全域,本地)
組件持有的Context和Appllcation區別
fragment
- 懶加載
- 與Activity/fragment通信
view的基礎知識
- 作業原理
- onMeasure
- onDraw(palnt,Bltmap,Canvas,Matrix,PorterDuftXtermode)
- onL ayout
- 基礎
- 查看工具(GestureDetector,VelootyTracker,VlewConfiguration)
- 監聽(onTouch,onTouchEvent,onCllck,執行順序)
- 滑動
- 事件分發(dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent)
- 滑動沖突解決
常用控制元件/布局
- Recyclerview
- SupportLibrary
- v4
- v7
- v11
- Webview
- JSBridge
- Deeplink
- 首屏加速
- 記憶體泄漏
- Surfaceview
- Dialog
- SnackBar
- Notitication
- ActlonBar
- 約束布局
基礎影片
- 屬性影片
- 幀影片
- Animation補問影片
- MaterialDesign影片
MaterialDesign
- 狀態欄/導航欄/沉漫式設計
資源
- 單位
- theme
- Layout
- Drawable
- .9patchEH
- Shape(gradient,size,stroke,padding,corners)
- selector
- 適配
進階
行程/執行緒/事件
- 執行緒通信
- Handler
- Timer/TimerTask
- Thread/ThreadPoolExcutor
- AsyncTask
- IntentServlce
- 行程
- 優先級(可見行程,服務行程,后臺行程,空行程,前臺行程)
- 行程間通信(Messager,AIDL,BInder,序列化,匿名共享記憶體)
- 事件
- 事件總線
- 應用保活
- 白色保活
- 黑色保活
- 灰色保活
資料持久化
- 本地存盤
- Sqlite
- sharedPreterence
- 檔案
- 資料格式
- Json
- xml
- 跨行程
- Serlalzable
- Parcelable
性能優化
- 記憶體優化
- 電量優化
- 資料傳輸優化
- 網路優化
- 快取優化
- 其他優化(啟動時間優化,布局優化,apk大小優化)
架構設計
- MVP
- MVC
- MVVM
- Androld Architecture Components
- Androld Jetpack
開源框架
- ORM資料庫框架/GreenDao
- 圖片快取框架/Glide/Fresco/UlL/picasso
- 檔案框架
- 網路框架/RetrofitlVolley/OKhttp
- 注入依賴/ButterKnite/Dagger2
- 序列化(gson/tastjson)
- 路由ARouter
- Rxjava
- 事件總銭EventBus
高級
Framework層原始碼
- UI組件
- 四大組件
- fragment
- context/application
- window
- webvlew
- recyclervlew
- 系統服務
- ActlvityManagerService
- Window/WIndowManager
- WindowManagerService
- ServlceManager
- 流程
- Androld系統啟動流程
- 應用啟動流程
- apk安裝程序
- apk打包程序
- Androld系統
- 記憶體管理機制
- 任務管理機制
- 訊息通信機制
- 安全機制
逆向安全
- root原理
- small位元組碼
- dex
- 加固和反加固
- hook
- ndk
- 混漸
- 簽名
虛擬機
- Dalvlk虛擬機
- ART虛擬機
熱門技術
- 插件話原理
- 組件化原理
- 熱修復原理

結尾
對于其他部分的內容,我將準備部分涉及到,作為平常學習的潤滑劑,主要的還是上面的三大部分,如果能將上面三大部分通學一遍,從入門到高級應該只是時間的問題,接來下的文章我們會分篇將對以上部分的大綱進行詳細的記錄學習總結,
關于程式員系統學習
我們都很渺小,在宇宙中甚至比不上一顆塵埃,可是人為何稱之為人,就是因為人懂得思考,知道學習的重要性,并且隨時愿意改變自己,重新出發,我們一生都在忙忙碌碌,為自己而活的時間太少太少,努力奔跑不僅僅是為了活著,更多的是實作我們自己的理想與報復,存在即為意義,我希望大家能跟我一樣堅持,你不知道下一個黃金浪潮在哪里,但是只要你在里面,總會趕上的啊!下一個Android輝煌的時刻可能就在明天呢?
目前我們要做的就是選好自己細分領域深入研究,對基礎原理性內容深入理解,盡快向高級水平靠近并達到,當然也要了解新技術,擁有開放的心態去學習一些新技術,不要一開始出來一個新技術就轉入學習,這樣會導致啥都會一點啥都不會,當然新技術是有一個發展程序的,不會立馬流行和大量應用等它稍微成熟點,
這樣你會少踩很多坑,也不要排斥它,完全不去理會和了解學習,正確的方式是簡單了解這個技術產生是為了解決什么問題,有什么優缺點已經目前發展成熟度和應用范圍,我們還是要多抓住技術的本質和基礎,這樣出現了新技術學起來也會很輕松,當然機會合適了再去學習它, 所以,找準自己的定位及細分領域,
多余的話就不講了,接下來將分享面試的一個復習路線,如果你也在準備面試但是不知道怎么高效復習,可以參考一下我的復習路線,有任何問題也歡迎一起互相交流,加油吧!
首先是超級詳細得不能再詳細的Android開發學習思維導圖,因為圖片實在是太大了,所以我就只把二級目錄的內容放出來,更加詳細的你們可以私信獲取,

接下來就需要梳理知識,提升儲備了!(Android移動架構師七大專題學習資源)
-
架構師筑基必備技能:深入Java泛型+注解深入淺出+并發編程+資料傳輸與序列化+Java虛擬機原理+反射與類加載+動態代理+高效IO
-
Android高級UI與FrameWork原始碼:高級UI晉升+Framework內核決議+Android組件內核+資料持久化
-
360°全方面性能調優:設計思想與代碼質量優化+程式性能優化+開發效率優化
-
解讀開源框架設計思想:熱修復設計+插件化框架解讀+組件化框架設計+圖片加載框架+網路訪問框架設計+RXJava回應式編程框架設計+IOC架構設計+Android架構組件Jetpack
-
NDK模塊開發:NDK基礎知識體系+底層圖片處理+音視頻開發
-
微信小程式:小程式介紹+UI開發+API操作+微信對接
-
Hybrid 開發與Flutter:Html5專案實戰+Flutter進階
知識梳理完之后,就需要進行查漏補缺,所以針對這些知識點,我手頭上也準備了不少的電子書和筆記,這些筆記將各個知識點進行了完美的總結,
然后再是通過原始碼來系統性地學習
只要是程式員,不管是Java還是Android,如果不去閱讀原始碼,只看API檔案,那就只是停留于皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的,
真正最能鍛煉能力的便是直接去閱讀原始碼,不僅限于閱讀各大系統原始碼,還包括各種優秀的開源庫,

《486頁超全面Android開發相關原始碼精編決議》
刷大廠面試題備戰,增加大廠通過率
歷時半年,整理了這份市面上最全面的安卓面試題決議大全,
1.可以通過目錄索引直接翻看需要的知識點,查漏補缺,
2.五角星數表示面試問到的頻率,代表重要推薦指數

《379頁Android開發面試寶典》
以上內容均免費分享給大家,需要完整版的朋友,點這里可以看到全部內容,
最后還有耗時一年多整理的一系列Android學習資源:Android原始碼決議、Android第三方庫原始碼筆記、Android進階架構師七大專題學習、歷年BAT面試題決議包、Android大佬學習筆記等等,這些內容均免費分享給大家,需要完整版的朋友,點這里可以看到全部內容,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/255929.html
標籤:其他
