Android 知識梳理目錄

1、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) - 容器類算法

2、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、開源框架

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 註解的使用

4、算法知識梳理

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

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

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

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

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

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

算法知識梳理(4) - 數組第一部分

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

算法知識梳理(5) - 數組第二部分

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

算法知識梳理(6) - 數組第三部分

  • 在遞增排序的數組中,查找指定數字出現的個數
  • 查找數組中只出現一次的兩個數字
  • 在遞增排序的數組中,查找和爲s的兩個數
  • 輸入一個正數s,打印出全部和爲s的連續正數序列
  • 數組當中的最大最小值

算法知識梳理(7) - 數組第四部分

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

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

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

5、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) - 運行時的泛型

6、多線程知識梳理

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

7、 插件化知識梳理

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

8、NDK 知識梳理

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

9、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、性能優化工具知識梳理

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) - 內存優化

11、架構設計知識梳理

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

12、設計模式知識梳理

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

十3、Framework 源碼分析知識梳理

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

十4、其它

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

相關文章
相關標籤/搜索