一、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
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 註解的使用
四、演算法知識梳理
- 插入排序
- 希爾排序
- 選擇排序
- 氣泡排序
- 計數排序
- 基數排序
- 歸併排序
- 快速排序
- 雙向掃描的快速排序
- 堆排序
- 替換字串中的空格
- 輸入一個字串,列印出該字串的所有排列
- 第一個只出現一次的字元
- 翻轉句子
- 計算字串之間的最短距離
- 查詢字串中的最長重複子串
- 求長度為
N
的字串的最長迴文子串 - 將字串中的
*
移到前部,並且不改變非*
的順序 - 不開闢用於交換的空間,完成字串的逆序
C++
- 最短摘要生成
- 最長公共子序列
- 二維陣列的整數查詢
- 旋轉陣列中的最小數字(旋轉陣列中的最大數字)
- 調整陣列使奇數位於偶數之前
- 找出陣列中出現次數超過一半的數字
- 找到最小的
k
個數 - 連續子陣列的最大和
- 連續子陣列的最大和(二維)
- 求陣列當中的逆序對
- 在遞增排序的陣列中,查詢指定數字出現的個數
- 查詢陣列中只出現一次的兩個數字
- 在遞增排序的陣列中,查詢和為
s
的兩個數 - 輸入一個正數
s
,列印出所有和為s
的連續正數序列 - 陣列當中的最大最小值
- 求陣列當中的最長遞增子序列(求陣列當中的最長遞減子序列)
- 區間重合判斷
- 一個整數陣列,長度為
n
,將其分為m
份,使各份的和相等,求m
的最大值
- 普通二分查詢
- 查詢關鍵字第一次出現的位置
- 查詢關鍵字最後一次出現的位置
- 查詢小於關鍵字的最大數字出現的位置
- 查詢大於關鍵字的最小數字出現的位置
五、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
十二、設計模式知識梳理
十三、Framework 原始碼分析知識梳理
Framework 原始碼解析知識梳理(1) - 應用程式與 AMS 的通訊實現
Framework 原始碼解析知識梳理(2) - 應用程式與 WMS 的通訊實現
Framework 原始碼解析知識梳理(3) - 應用程式之間的通訊實現
Framework 原始碼解析知識梳理(4) - 從原始碼角度談談 Handler 的應用
Framework 原始碼解析知識梳理(5) - startService 原始碼分析
Framework 原始碼解析知識梳理(6) - ContentProvider 原始碼解析