Android 知識梳理目錄

澤毛發表於2017-12-21

一、Java 知識梳理

Java&Android 基礎知識梳理(1) - 註解
Java&Android 基礎知識梳理(2) - 序列化
Java&Android 基礎知識梳理(3) - 記憶體區域
Java&Android 基礎知識梳理(4) - 垃圾收集器與記憶體分配策略
Java&Android 基礎知識梳理(5) - 類載入&物件例項化
Java&Android 基礎知識梳理(6) - 位元組輸入輸出流
Java&Android 基礎知識梳理(7) - Android 虛擬機器
Java&Android 基礎知識梳理(8) - 容器類

二、Android 基礎知識

2.1 Activity 知識梳理

Activity 知識梳理(1) - Activity 生命週期
Activity 知識梳理(2) - Activity 棧
Activity 知識梳理(3) - Activity 狀態儲存和恢復

2.2 Fragment 知識梳理

Fragment 知識梳理(1) - Fragement 原始碼解析
Fragment 知識梳理(2) - Fragment 狀態儲存和恢復
Fragment 知識梳理(3) - FragmentPagerAdapter 和 FragmentStatePagerAdapter 解析
Fragment 知識梳理(4) - FragmentPagerAdapter 和 FragmentStatePagerAdapter 的資料更新問題

2.3 View 繪製體系知識梳理

View 繪製體系知識梳理(1) - LayoutInflater#inflate 原始碼解析
View 繪製體系知識梳理(2) - setContentView 原始碼解析
View 繪製體系知識梳理(3) - 繪製流程之 Measure 詳解
View 繪製體系知識梳理(4) - 繪製過程之 Layout 詳解
View 繪製體系知識梳理(5) - 繪製過程之 Draw 詳解
View 繪製體系知識梳理(6) - 繪製過程之 requestLayout 和 invalidate 詳解
View 繪製體系知識梳理(7) - getMeasuredWidth 和 getWidth 的區別

2.4 View 事件傳遞體系知識梳理

View 事件傳遞體系知識梳理(1) - 事件分發機制
View 事件傳遞體系知識梳理(2) - 巢狀滑動的實現原理

2.5 RecyclerView 知識梳理

RecyclerView 知識梳理(1) - 綜述
RecyclerView 知識梳理(2) - Adapter
RecyclerView 知識梳理(3) - LayoutManager
RecyclerView 知識梳理(4) - ItemDecoration
RecyclerView 知識梳理(5) - ItemTouchHelper

2.6 圖片基礎知識梳理

圖片基礎知識梳理(1) - ImageView 的 ScaleType 屬性解析
圖片基礎知識梳理(2) - Bitmap 佔用記憶體分析
圖片基礎知識梳理(3) - Bitmap&BitmapFactory 解析

2.7 圖片壓縮知識梳理

圖片壓縮知識梳理(0) - 圖片壓縮學習計劃
圖片壓縮知識梳理(1) - PNG 原理
圖片壓縮知識梳理(2) - 減小 PNG 大小
圖片壓縮知識梳理(5) - VectorDrawable 簡介
圖片壓縮知識梳理(6) - VectorDrawable 及 AnimatedVectorDrawable 使用詳解
圖片壓縮知識梳理(8) - WebP 使用詳解
圖片壓縮知識梳理(9) - 選擇合適的圖片格式

2.8 Canvas & Paint 知識梳理

Canvas&Paint 知識梳理(1) - Canvas 基礎
Canvas&Paint 知識梳理(2) - Canvas 的儲存和恢復
Canvas&Paint 知識梳理(3) - 顏色合成 Paint#setColorFilter
Canvas&Paint 知識梳理(4) - 影像合成 Paint#setXfermode
Canvas&Paint 知識梳理(5) - Paint#setShader
Canvas&Paint 知識梳理(6) - 繪製路線 Path 基本用法

2.9 Loader 知識梳理

Loader 知識梳理(1) - LoaderManager初探
Loader 知識梳理(2) - initLoader和restartLoader的區別
Loader 知識梳理(3) - 自定義Loader

2.10 動畫體系知識梳理

動畫體系知識梳理(1) - 轉場動畫 ContentTransition 理論篇
動畫體系知識梳理(2) - 轉場動畫 ContentTransition 實踐篇

2.11 Android 非同步任務知識梳理

Android 非同步任務知識梳理(1) - AsyncTask 解析
Android 非同步任務知識梳理(2) - HandlerThread 解析
Android 非同步任務知識梳理(3) - AsyncQueryHandler 解析

2.12 Android 資料儲存知識梳理

Android 資料儲存知識梳理(1) - SQLiteOpenHelper 原始碼解析
Android 資料儲存知識梳理(2) - Android儲存目錄
Android 資料儲存知識梳理(3) - SharedPreference 原始碼解析
Android 資料儲存知識梳理(4) - 資料庫升級操作的處理策略

三、開源框架

3.1 Retrofit 知識梳理

Retrofit 知識梳理(1) - 流程分析
Retrofit 知識梳理(2) - Retrofit 動態代理內部實現

3.2 OkHttp 知識梳理

OkHttp 知識梳理(1) - OkHttp 原始碼解析之入門
OkHttp 知識梳理(2) - OkHttp 原始碼解析之非同步請求 & 執行緒排程
OkHttp 知識梳理(3) - OkHttp 之快取基礎

3.3 Volley

Volley 知識梳理 - Volley 原始碼解析

3.4 Glide

Glide 知識梳理(1) - 基本用法
Glide 知識梳理(2) - 自定義Target
Glide 知識梳理(3) - 自定義transform
Glide 知識梳理(4) - 自定義animate
Glide 知識梳理(5) - 自定義GlideModule

3.5 RxJava2 理論

RxJava 知識梳理(1) - RxJava 解析
RxJava 知識梳理(2) - RxJava2 操作符實踐
RxJava 知識梳理(3) - RxJava2 基礎知識小結

3.6 RxJava2 實戰

RxJava2 實戰知識梳理(1) - 後臺執行耗時操作,實時通知 UI 更新
RxJava2 實戰知識梳理(2) - 計算一段時間內資料的平均值
RxJava2 實戰知識梳理(3) - 優化搜尋聯想功能
RxJava2 實戰知識梳理(4) - 結合 Retrofit 請求新聞資訊
RxJava2 實戰知識梳理(5) - 簡單及進階的輪詢操作
RxJava2 實戰知識梳理(6) - 基於錯誤型別的重試請求
RxJava2 實戰知識梳理(7) - 基於 combineLatest 實現的輸入表單驗證
RxJava2 實戰知識梳理(8) - 使用 publish + merge 優化先載入快取,再讀取網路資料的請求過程
RxJava2 實戰知識梳理(9) - 使用 timer/interval/delay 實現任務排程
RxJava2 實戰知識梳理(10) - 螢幕旋轉導致 Activity 重建時恢復任務
RxJava2 實戰知識梳理(11) - 檢測網路狀態並自動重試請求
RxJava2 實戰知識梳理(12) - 實戰講解 publish & replay & share & refCount & autoConnect
RxJava2 實戰知識梳理(13) - 如何使得錯誤發生時不自動停止訂閱關係
RxJava2 實戰知識梳理(14) - 在 token 過期時,重新整理過期 token 並重新發起請求
RxJava2 實戰知識梳理(15) - 實現一個簡單的 MVP + RxJava + Retrofit 應用

3.7 Dagger2 知識梳理

Dagger2 知識梳理(1) - Dagger2 依賴注入的兩種方式
Dagger2 知識梳理(2) - @Qulifier 和 @Named 解決依賴注入迷失
Dagger2 知識梳理(3) - 使用 dependencies 和 @SubComponent 完成依賴注入
Dagger2 知識梳理(4) - @Scope 註解的使用

四、演算法知識梳理

演算法知識梳理(1) - 排序演算法

  • 插入排序
  • 希爾排序
  • 選擇排序
  • 氣泡排序
  • 計數排序
  • 基數排序
  • 歸併排序
  • 快速排序
  • 雙向掃描的快速排序
  • 堆排序

演算法知識梳理(2) - 字串演算法第一部分

  • 替換字串中的空格
  • 輸入一個字串,列印出該字串的所有排列
  • 第一個只出現一次的字元
  • 翻轉句子
  • 計算字串之間的最短距離

演算法知識梳理(3) - 字串演算法第二部分

  • 查詢字串中的最長重複子串
  • 求長度為N的字串的最長迴文子串
  • 將字串中的*移到前部,並且不改變非*的順序
  • 不開闢用於交換的空間,完成字串的逆序C++
  • 最短摘要生成
  • 最長公共子序列

演算法知識梳理(4) - 陣列第一部分

  • 二維陣列的整數查詢
  • 旋轉陣列中的最小數字(旋轉陣列中的最大數字)
  • 調整陣列使奇數位於偶數之前
  • 找出陣列中出現次數超過一半的數字

演算法知識梳理(5) - 陣列第二部分

  • 找到最小的k個數
  • 連續子陣列的最大和
  • 連續子陣列的最大和(二維)
  • 求陣列當中的逆序對

演算法知識梳理(6) - 陣列第三部分

  • 在遞增排序的陣列中,查詢指定數字出現的個數
  • 查詢陣列中只出現一次的兩個數字
  • 在遞增排序的陣列中,查詢和為s的兩個數
  • 輸入一個正數s,列印出所有和為s的連續正數序列
  • 陣列當中的最大最小值

演算法知識梳理(7) - 陣列第四部分

  • 求陣列當中的最長遞增子序列(求陣列當中的最長遞減子序列)
  • 區間重合判斷
  • 一個整數陣列,長度為n,將其分為m份,使各份的和相等,求m的最大值

演算法知識梳理(8) - 二分查詢演算法及其變型

  • 普通二分查詢
  • 查詢關鍵字第一次出現的位置
  • 查詢關鍵字最後一次出現的位置
  • 查詢小於關鍵字的最大數字出現的位置
  • 查詢大於關鍵字的最小數字出現的位置

五、Kotlin 知識梳理

Kotlin 知識梳理(1) - Kotlin 基礎
Kotlin 知識梳理(2) - 函式的定義與呼叫
Kotlin 知識梳理(3) - 類、物件和介面
Kotlin 知識梳理(4) - 資料類、類委託 及 object 關鍵字
Kotlin 知識梳理(5) - lambda 表示式和成員引用
Kotlin 知識梳理(6) - Kotlin 的可空性
Kotlin 知識梳理(7) - Kotlin 的型別系統
Kotlin 知識梳理(8) - 運算子過載及其他約定
Kotlin 知識梳理(9) - 委託屬性
Kotlin 知識梳理(10) - 高階函式:Lambda 作為形參或返回值
Kotlin 知識梳理(11) - 行內函數
Kotlin 知識梳理(12) - 泛型型別引數
Kotlin 知識梳理(13) - 執行時的泛型

六、多執行緒知識梳理

多執行緒知識梳理(1) - 併發程式設計的藝術筆記
多執行緒知識梳理(2) - synchronized 三部曲之基本使用
多執行緒知識梳理(3) - synchronized 三部曲之鎖優化
多執行緒知識梳理(4) - synchronized 三部曲之等待/通知模型
多執行緒知識梳理(5) - 執行緒池四部曲之 Executor 框架
多執行緒知識梳理(6) - 執行緒池四部曲之 ThreadPoolExecutor
多執行緒知識梳理(7) - ConcurrentHashMap 實現原理

七、 外掛化知識梳理

外掛化知識梳理(1) - Small 框架之如何引入應用外掛
外掛化知識梳理(2) - Small 框架之如何引入公共庫外掛
外掛化知識梳理(3) - Small 框架之宿主分身
外掛化知識梳理(4) - Small 框架之如何實現外掛更新
外掛化知識梳理(5) - Small 框架之如何不將外掛打包到宿主中
外掛化知識梳理(6) - Small 原始碼分析之 Hook 原理
外掛化知識梳理(7) - 類的動態載入入門
外掛化知識梳理(8) - 類的動態載入原始碼分析
外掛化知識梳理(9) - 資源的動態載入示例及原始碼分析
外掛化知識梳理(10) - Service 外掛化實現及原理

八、NDK 知識梳理

NDK 知識梳理(1) - 使用 CMake 進行 NDK 開發之初體驗
NDK 知識梳理(2) - 使用 CMake 進行 NDK 開發之如何編寫 CMakeLists.txt 指令碼

九、Material Design 控制元件知識梳理

Material Design 控制元件知識梳理(1) - Android Design Support Library 是什麼
Material Design 控制元件知識梳理(2) - AppBarLayout & CollapsingToolbarLayout
Material Design 控制元件知識梳理(3) - BottomSheet && BottomSheetDialog && BottomSheetDialogFragment
Material Design 控制元件知識梳理(4) - FloatingActionButton
Material Design 控制元件知識梳理(5) - DrawerLayout && NavigationView
Material Design 控制元件知識梳理(6) - Snackbar
Material Design 控制元件知識梳理(7) - BottomNavigationBar
Material Design 控制元件知識梳理(8) - TabLayout
Material Design 控制元件知識梳理(9) - TextInputLayout

十、效能優化工具知識梳理

10.1 效能優化工具知識梳理

效能優化工具知識梳理(1) - TraceView
效能優化工具知識梳理(2) - Systrace
效能優化工具知識梳理(3) - 除錯GPU過度繪製 & GPU呈現模式分析
效能優化工具知識梳理(4) - Hierarchy Viewer
效能優化工具知識梳理(5) - MAT
效能優化工具知識梳理(6) - Memory Monitor & Heap Viewer & Allocation Tracker
效能優化工具知識梳理(7) - LeakCanary
效能優化工具知識梳理(8) - Lint

10.2 效能優化技巧知識梳理

效能優化技巧知識梳理(1) - 佈局優化
效能優化技巧知識梳理(2) - 記憶體優化

十一、架構設計知識梳理

架構設計知識梳理(1) - Dagger2
架構設計知識梳理(2) - Flux

十二、設計模式知識梳理

設計模式知識梳理(1) - 設計模式概述

十三、Framework 原始碼分析知識梳理

Framework 原始碼解析知識梳理(1) - 應用程式與 AMS 的通訊實現
Framework 原始碼解析知識梳理(2) - 應用程式與 WMS 的通訊實現
Framework 原始碼解析知識梳理(3) - 應用程式之間的通訊實現
Framework 原始碼解析知識梳理(4) - 從原始碼角度談談 Handler 的應用
Framework 原始碼解析知識梳理(5) - startService 原始碼分析
Framework 原始碼解析知識梳理(6) - ContentProvider 原始碼解析

十四、其它

Gradle 使用配置總結
Ubuntu下 切換 JDK 版本
Android 狀態列知識點總結

相關文章