Android博客大彙總

目錄介紹

  • 01.基礎組件(9篇)
  • 02.IPC機制(7篇)
  • 03.View原理(9篇)
  • 04.動畫機制(2篇)
  • 05.Res資源(6篇)
  • 06.消息機制(12篇)
  • 07.多媒體(16篇)
  • 08.View事件(9篇)
  • 09.多線程(12篇)
  • 10.Window(19篇)
  • 11.WebView(4篇)
  • 12.網絡相關(7篇)
  • 13.註解(14篇)
  • 14.音視頻(13篇)
  • 15.優化相關(19篇)
  • 16.流行框架(23篇)
  • 17.數據處理
  • 18.framwork
  • 19.複雜控件(12篇)
  • 20.Bug管理
  • 21.經典總結(16篇)
  • 23.架構技術(13篇)
  • 24.kotlin(29篇)
  • 25.RecyclerView(31篇)
  • 26.組件化(7篇)
  • 27.路由框架(7篇)

好消息

  • 博客筆記大彙總【16年3月到至今】,包括Java基礎及深刻知識點,Android技術博客,Python學習筆記等等,還包括平時開發中遇到的bug彙總,固然也在工做之餘收集了大量的面試題,長期更新維護而且修正,持續完善……開源的文件是markdown格式的!同時也開源了生活博客,從12年起,積累共計N篇[近100萬字,陸續搬到網上],轉載請註明出處,謝謝!
  • 連接地址:https://github.com/yangchong2...
  • 若是以爲好,能夠star一下,謝謝!固然也歡迎提出建議,萬事起於忽微,量變引發質變!

01.基礎組件

  • 02.Activity基礎介紹javascript

    • Activity生命週期,特殊狀況下生命週期,Activity的啓動模式,特殊狀況棧交互,Activity的Flags
  • 03.Activity啓動流程php

    • Launcher啓動開啓Activity,ActivityManagerService詳談,執行棧頂Activity的onPause方法,啓動Activity所屬的應用進程,執行啓動Acitivity重點邏輯
  • 04.Activity佈局建立java

    • handleLaunchActivity,performLaunchActivity,activity.attach,Activity的onCreate方法,setContentView源碼分析
  • 05.Activity佈局繪製android

    • Activity佈局加載簡介,handleResumeActivity,WindowManager做用,performTraversals()方法,Activity佈局繪製總結
  • 06.Activity探坑分析git

    • Activity異常生命週期,後臺Activity被系統回收,如何判斷activity優先級,App切換到後臺分析,Activity傳遞參數數據,Activity任務戰Task
  • 07.BroadCastReceiver1github

    • 什麼是廣播Broadcast,廣播Broadcast做用,廣播Broadcast分類,動態註冊BroadCast,發送本地廣播
  • 08.BroadCastReceiver2面試

    • 監聽網絡狀態變化,監聽電量變化,應用安裝更新卸載監聽
  • 09.BroadCastReceiver3數據庫

    • 廣播實現原理,抽象方法onReceive(),廣播的類型,內存泄漏分析
  • 12.Fragment基礎json

    • Fragment生命週期,Fragment靜態和動態使用方式,Fragment回退棧,Fragment與Activity通訊,Fragment旋轉場景,FragmentAdapter選擇
  • 13.Fragment進階segmentfault

    • 什麼是內存重啓,onHiddenChanged回調時機,Fragment與Activity之間傳值,Fragment與Fragment之間傳值,爲什麼不構造傳值,FragmentManager棧視圖,Fragment之懶加載使用,思考Fragment可否不依賴Activity
  • 14.Fragment填坑

    • getActivity()空指針,Fragment發生重疊,Fragment高耦合性,處理返回鍵邏輯
  • 16.Fragment源碼

    • Fragment管理流程源碼分析,Fragment生命週期是怎麼來的,Fragment回退棧是如何實現的
  • 32.Android混淆

    • 什麼是混淆,proguard-rules.pro文件
  • 36.CompileSdkVersion和MinSdkVersion

    • CompileSdkVersion的做用,MinSdkVersion的做用,TargetSdkVersion的做用
  • 40.Log深刻解析

    • 關於Log源碼介紹

02.IPC機制

  • 01.IPC通訊方式介紹

    • 使用Intent,使用文件共享,使用Messenger,使用AIDL,使用ContentProvider,使用Socket
  • 02.IPC之線程進程

    • Android中如何控件進程,進程的重要性,Android中線程,工做線程
  • 05.IPC之序列化

    • 什麼是IPC,開啓多進程,多進程影響,Serializable,Parcelable
  • 06.IPC之Messager

    • Messenger基本概述,服務端,客戶端,雙向通訊
  • 11.Aidl基礎介紹

    • 什麼是AIDL,AIDL做用,AIDL支持數據類型,服務端和客戶端,注意問題
  • 12.Aidl通訊案例

    • aidl通訊業務需求,操做步驟僞代碼,案例測試調試,可能出現的問題,aidl不要作耗時操做

03.View原理

04.動畫機制

  • 01.動畫機制總結

    • Android動畫類型分類,實現方式,ValueAnimator與ObjectAnimator區別,以及補間動畫原理,部分源碼分析
  • 02.動畫源碼解析

    • Animation和Animator區別,Animation運行原理和源碼分析,如何計算動畫數據,動畫數據如何存儲,Animation的調用;Animator運行原理和源碼分析,屬性動畫新的概念,屬性動畫start執行流程,屬性動畫cancel和end執行流程,屬性動畫pause和resume執行流程,
  • 07.加載json動畫

    • 如何解析json動畫,加載動畫優化點,加載json動畫原理,部分源碼解析說明,性能與常見動畫分析,可能出現的異常

05.Res資源(6篇)

  • 09.Selector選擇器總結

    • selector建立方式,狀態設置說明,義的xml文件能夠做爲兩種資源使用:drawable和color。TextView如何設置背景和字體選擇器?
  • 10.Shape自定義圖形彙總

    • shape能夠自定義四種類型的形狀,經常使用方法介紹
  • 11.Style樣式彙總

    • 樣式的定義,樣式的用法不僅是用於單個View,也能用於Activity或整個Application,如何簡化樣式從而分類拆分紅多個文件
  • 12.主題Theme的使用總結

    • style設置
  • 13.attr屬性介紹

    • attr屬性的定義/讀取/出錯/使用,自定義attr屬性與讀取,若是在attr中不一樣View引用相同屬性名字時出現錯誤的解決方法

06.消息機制

  • 01.Handler基礎使用

    • Handler常見使用方式,在子線程中定義Handler,Handler的post方法和view的post方法,避免子線程手動建立looper,解決Handler內存泄漏
  • 02.Handler機制體系

    • Handler做用與功能,MessageQueue做用與功能,Looper做用與功能,Message做用與功能,消息機制實現的步驟
  • 03.消息機制源碼流程

    • Handler發送消息,Looper輪訓操做,MessageQueue消息隊列,MessageQueue傳遞消息給Handler,Handler接收消息並處理
  • 04.Handler深度解析

    • Handler構造方法分析,handler.sendMessage(msg)
  • 05.Looper深度解析

    • Activity如何自動綁定Looper,Looper.prepare()方法源碼分析,Looper.prepare()可否調用屢次,Looper中用什麼存儲消息,Looper.loop()方法源碼分析,Activity生命週期依賴Looper,Looper死循環爲什麼不阻塞應用卡死
  • 06.MessageQueue

    • MessageQueue做用介紹,MessageQueue的定義,enqueueMessage()源碼,next()方法源碼分析
  • 08.主線程中Looper的輪詢死循環爲什麼沒阻塞主線程

    • 形成ANR的緣由,Looper.loop()方法無限循環,處理消息handleMessage方法,loop的循環消耗性能嗎?
  • 09.子線程更新UI

    • Android中子線程能夠更新UI嗎,子線程更新UI有哪些方式,runOnUiThread如何實現子線程更新UI,View.post(Runnable r)更新UI,子線程更新UI總結歸納
  • 12.HandlerThread

    • HandlerThread定義,HandlerThread幾個特性,HandlerThread源碼分析 ,
  • 13.消息機制ThreadLocal

    • Android消息機制,ThreadLocal基礎介紹,ThreadLocal分析 ,Handler爲什麼用ThreadLocal

07.多媒體

  • 01.圖片相關整理

    • 網絡請求圖片資源,保存bitmap圖片,實現帶有圓角的圖片
  • 03.加載圖片資源介紹

    • 加載Bitmap
  • 04.Bitmap計算內存

    • 如何計算佔用內存?bitmap內存大小 = 圖片長度 x 圖片寬度 x 單位像素佔用的字節數計算內存對嗎?一個像素佔用內存,使用API獲取內存
  • 05.Bitmap回收問題

    • recycle()方法,Bitmap緩存原理,Bitmap的複用,Bitmap如何複用
  • 06.Bitmap壓縮處理

    • Bitmap的壓縮方式,Bitmap質量壓縮,Bitmap採樣率壓縮,Bitmap縮放法壓縮
  • 07.Bitmap圖片處理

    • Bitmap,Drawable,InputStream,Byte[]之間進行轉換,將View控件轉換爲bitmap,Bitmap優化邏輯與原理
  • 08.加載大圖流程

    • 網絡請求圖片,壓縮緩存圖片,填充到View控件,自定義圖片控件,加載大圖原理
  • 09.SurfaceView源碼分析

    • SurfaceView是什麼,SurfaceView源碼分析 ,在子線程中執行繪製操做爲什麼不會阻塞線程?
  • 10.Android保存多張圖片到本地

    • 實際開發保存圖片遇到的問題,直接用http請求圖片並保存本地,用glide下載圖片保存本地,如何實現連續保存多張圖片
  • 11.Bitmap,Drawable,InputStream

    • Bitmap,Drawable,InputStream,Byte[ ] 之間進行轉換
  • 12.Bitmap避免OOM

    • Bitmap佔用內存介紹,影響Bitmap佔用內存因素,圖像加載的方式,加載圖像內存去哪裏了,具體實現加載圖片步驟
  • 16.自定義陰影控件

    • 陰影效果有哪些實現方式,實現陰影效果Api,設置陰影須要注意哪些,常見Shape實現陰影效果,自定義陰影效果控件,如何使用該陰影控件,在recyclerView中使用注意點

08.View事件

  • 01.View事件基礎

    • 事件分發的對象是誰?事件在哪些對象間進行傳遞?事件分發過程涉及方法?事件分發機制方法說明?
  • 02.View事件分發場景

    • 事件分發背景描述,事件傳遞狀況
  • 03.View事件機制源碼分析

    • Android中事件分發順序?Activity的事件分發機制?ViewGroup事件的分發機制 ?View事件的分發機制?onTouch()和onTouchEvent()的區別?
  • 04.View事件機制

    • 觸摸事件,分發事件,攔截事件,三個事件機制怎麼向其調用者傳遞處理結果,滑動衝突的思路及方法 ,以及具體的滑動衝突解決方案案例
  • 05.View的滑動衝突

    • 經過一個滑動衝突的案例,來說解外部攔截法解決滑動衝突,內部攔截法解決滑動衝突
  • 07.View事件總結1

    • Android事件分發機制,View和ViewGroup分發事件,onTouch()、onTouchEvent()和onClick()執行順序,View處理事件的優先級,點擊事件傳遞過程,事件傳遞規則要點
  • 08.View事件總結2

    • View滑動有哪些方法,Activity事件分發過程,Window事件分發過程,DecorView的事件分發,根View的事件分發

09.多線程

  • 00.Android多線程

    • Android中的線程,線程交互之Handler機制,線程切換的類,java中的多線程,線程池管理多線程,Handler和AsyncTask,線程安全問題
  • 01.頻繁建立Thread缺點

    • 遇到的問題分析,多線程實現Runnable弊端
  • 02.AsyncTask介紹

    • 先看下AsyncTask用法,AsyncTask源碼深刻分析 ,異步機制的實現,不一樣的SDK版本區別
  • 03.AsyncTask缺陷問題

    • AsyncTask對應線程池,AsyncTask生命週期問題,AsyncTask內存泄漏問題,AsyncTask結果丟失問題,AsyncTask並行仍是串行問題
  • 04.IntentService使用

    • 使用步驟,IntentService做用,IntentService使用場景
  • 05.IntentService源碼分析

    • IntentService的做用,使用場景,源碼分析,總體源碼展現及概括,如何單獨開啓1個新的工做線程,IntentService如何將Intent傳遞給服務而且依次插入到工做隊列中,IntentService與其餘線程對比,HandlerThread深刻分析
  • 08.線程池基礎

    • ThreadPoolExecutor類介紹,關於線程池的分類,線程池通常用法,線程建立規則
  • 09.線程池案例測試

    • 使用線程池管理線程的優勢,以及案例代碼測試效率
  • 10.Android中幾種進程

    • 在安卓系統中:當系統內存不足時,Android系統將根據進程的優先級選擇殺死一些不過重要的進程,優先級低的先殺死。進程優先級從高到低以下。
  • 15.Android線程池封裝庫

    • 輕量級線程池封裝庫,支持線程執行過程當中狀態回調監測(包含成功,失敗,異常等多種狀態);支持建立異步任務,而且能夠設置線程的名稱,延遲執行時間,線程優先級,回調callback等;能夠根據本身須要建立本身須要的線程池,一共有四種;線程異常時,能夠打印異常日誌,避免崩潰。

10.Window

  • 01.Activity、Window、View三者關係

    • 深刻分析Activity、Window、View三者之間的關係
  • 02.Toast源碼深度分析

    • 最簡單的建立,簡單改造避免重複建立,show()方法源碼分析,scheduleTimeoutLocked吐司如何自動銷燬的,TN類中的消息機制是如何執行的,普通應用的Toast顯示數量是有限制的,用代碼解釋爲什麼Activity銷燬後Toast仍會顯示,Toast偶爾報錯Unable to add window是如何產生的,Toast運行在子線程問題,Toast如何添加系統窗口的權限等等
  • 03.DialogFragment源碼分析

    • 最簡單的使用方法,onCreate(@Nullable Bundle savedInstanceState)源碼分析,重點分析彈窗展現和銷燬源碼,使用中show()方法遇到的IllegalStateException分析
  • 04.Dialog源碼分析

    • AlertDialog源碼分析,經過AlertDialog.Builder對象設置屬性,Dialog生命週期,Dialog中show方法展現彈窗分析,Dialog的dismiss銷燬彈窗,Dialog彈窗問題分析等等
  • 05.PopupWindow源碼分析

    • 顯示PopupWindow,注意問題寬和高屬性,showAsDropDown()源碼,dismiss()源碼分析,PopupWindow和Dialog有什麼區別?爲什麼彈窗點擊一下就dismiss呢?
  • 06.Snackbar源碼分析

    • 最簡單的建立,Snackbar的make方法源碼分析,Snackbar的show顯示與點擊消失源碼分析,顯示和隱藏中動畫源碼分析,Snackbar的設計思路,爲何Snackbar老是顯示在最下面
  • 07.彈窗常見問題

    • DialogFragment使用中show()方法遇到的IllegalStateException,什麼常見產生的?Toast偶爾報錯Unable to add window,Toast運行在子線程致使崩潰如何解決?
  • 09.onAttachedToWindow和onDetachedFromWindow

    • onAttachedToWindow的調用過程,onDetachedFromWindow能夠作什麼?
  • 10.DecorView介紹

    • 什麼是DecorView,DecorView的建立,DecorView的顯示,深度解析
  • 11.彈窗問題總結

    • PopupWindow和Dialog區別
  • 15.窗口管理框架概述

    • Android顯示系統分爲3層,Android顯示框架裏幾個角色
  • 18.窗口管理服務WMS

    • Window窗口介紹 ,WindowManager介紹,Window的添加流程,Window的刪除流程,Window的更新流程
  • 19.佈局解析者Inflater

    • LayoutInflater介紹,PhoneLayoutInflater介紹,inflate源碼分析,獲取XmlResourceParser,解析View樹操做步驟,解析View操做步驟

11.WebView

  • 01.WebView基礎使用

    • WebView的經常使用方法,WebView經常使用類的介紹,WebView注意事項,WebView滑動監聽,爲WebView自定義錯誤顯示界面,判斷WebView是否已經滾動到頁面底端
  • 02.WebView和js交互

    • Android去調用JS的代碼方式,JS去調用Android的代碼方式,Android 調用HTML中的javascript腳本並傳遞參數,HTML中的javascript腳本調用Android本地代碼並傳遞參數,何時注入js探索
  • 03.WebView防坑總結

    • WebView頁面中播放音視頻,退出Activity後仍然有聲音,後臺沒法釋放js致使發熱耗電,301/302業務場景及白屏問題,WebSettings.setJavaScriptEnabled安全問題,加載證書錯誤,WebView內存泄漏問題場景和解決辦法,如何處理加載錯誤(Http、SSL、Resource)?,如何操做cookie?H5頁面如何處理登陸失效問題?,H5頁面有混合http和https的連接,5.0以上系統不支持混合模式,須要經過配置來開啓
  • 04.WebView源碼分析

    • loadurl,LoadData ,loadDataWithBaseURL分析

12.網絡相關

13.註解

  • 01.Annotation註解詳細介紹
  • [02.Dagger2深刻分析,待更新]()
  • 03.註解詳細介紹

    • 什麼是註解,註解分類有哪些?自定義註解分類?運行註解案例展現分析,以一個最簡單的案例理解註解……使用註解替代枚舉,使用註解限定類型
  • 04.APT技術詳解

    • 什麼是apt?理解註解處理器的做用和用途……android-apt被替代?annotationProcessor和apt區別? 什麼是jack編譯方式?
  • 06.自定義annotation註解

    • @Retention的做用?@Target(ElementType.TYPE)的解釋,@Inherited註解能夠被繼承嗎?Annotation裏面的方法爲什麼不能是private?
  • 07.註解之兼容kotlin

    • 後期更新
  • 08.註解之處理器類Processor

    • 處理器類Processor介紹,重要方法,Element的做用,修飾方法的註解和ExecutableElement,瞭解修飾屬性、類成員的註解和VariableElement……
  • 10.註解遇到問題和解決方案

    • 沒法引入javax包下的類庫,成功運行一次,修改代碼後再運行就報錯
  • 11.註解代替枚舉

    • 在作內存優化時,推薦使用註解代替枚舉,由於枚舉佔用的內存更高,如何說明枚舉佔用內存高呢?這是爲何呢?
  • 13.Android之註解問題

    • 13.0.0.1 什麼是註解?系統內置的標準註解有哪些?SuppressWarnings用過沒?Android中提供了哪些與線程相關的註解?
    • 13.0.0.2 什麼是apt?apt的難點和優點?什麼是註解處理器?抽象處理器中四個方法有何做用?annotationProcessor和apt區別?
    • 13.0.0.3 註解是怎麼分類的?自定義註解又是怎麼分類的?運行期註解原理是什麼?實際註解案例有哪些?
    • 13.0.0.4 在自定義註解中,Annotation裏面的方法爲什麼不能是private?Annotation裏面的方法參數有哪些?
    • 13.0.0.5 @Inherited是什麼意思?註解是不能夠繼承的,這是爲何?註解的繼承這個概念該如何理解?
    • 13.0.0.6 什麼是依賴注入?依賴注入案例舉例說明,有哪些方式,具有什麼優點?依賴查找和依賴注入有什麼區別?
    • 13.0.0.7 路由框架爲什麼須要依賴注入,不用的話行不行?路由用什麼方式注入,這些注入方式各具何特色,爲什麼選擇註解注入?
    • 13.0.0.8 實際開發中使用到註解有哪些,使用註解替代枚舉?如何經過註解限定傳入的類型?爲什麼說枚舉損耗性能?

14.音視頻

15.優化相關(19篇)

  • 01.內存泄漏優化

    • 常見的內存泄漏場景分析,原理分析,及解決辦法,好比:錯誤使用單例形成的內存泄漏,錯誤使用靜態變量,Handler使用不當形成的內存泄漏,非靜態內部類建立靜態實例形成的內存泄漏,資源未關閉形成的內存泄漏,動畫資源未釋放致使內存泄漏等等。
  • 02.網絡優化

    • 圖片分類優化,獲取網絡數據優化,網絡請求異常攔截優化
  • 03.佈局優化

    • 常見佈局優化方法,使用include標籤,ViewStub深度解析,視圖層級<merge/>
  • 04.懶加載優化

    • ViewPager+Fragment組合,當Fragment處理可見時,纔去請求網絡數據,同時onLazyLoad()加載數據條件,以及部分源碼分析
  • 05.代碼優化

    • lint檢查去除無效代碼,代碼規範優化,View異常優化,去除淡黃色警告優化,合理使用集合,Activity不可見優化,節制的使用Service
  • 06.App線程優化

    • 建立Thread弊端,爲什麼要用線程池,那些地方使用線程池
  • 07.App啓動頁優化

    • 存在白屏問題,解決白屏的辦法,Application啓動速度優化,啓動頁面屏蔽返回按鍵
  • 08.圖片優化

    • bitmap優化,glide加載優化
  • 09.靜態變量優化

    • 不要用靜態變量保存核心數據,實際開發中遇到的問題
  • 10.APP瘦身優化

    • APK組成,如何壓縮優化apk,如何檢測哪些無效代碼
  • 11.App卡頓緣由

    • Android卡頓原理,複雜的視圖樹,頻繁的requestlayout(),UI線程被阻塞,內存抖動
  • 12.對象池Pools優化

    • 什麼是對象池,glide哪裏用到對象池,多條件key緩存bitmap,glide對象池總結,學以至用對象池,對象池的容量
  • 14.輪詢操做優化

    • 輪詢操做是啥,輪訓請求實踐,與長鏈接相關的輪訓請求,與頁面相關的輪訓請求
  • 15.網絡異常優化

    • 網絡請求異常分類,開發中注意問題,原始的處理方式,如何減小代碼耦合性,異常統一處理步驟
  • 16.註解替代枚舉

    • 使用註解限定傳入類型,使用註解替代枚舉
  • 17.四種引用優化

    • 軟引用使用場景,弱引用使用場景,使用場景分析
  • 19.去除重複依賴庫優化

    • 如何查詢重複庫,如何代碼去重配置
  • 20.狀態管理優化

    • 界面狀態有哪些,採用include方式管理,在Base類中處理邏輯,如何下降偶性和入侵性,封裝低入侵性狀態庫
  • 31.優化分析工具

    • Studio Profiler介紹,CPU分析器,內存分析器,網絡分析器,TraceView

19.複雜控件

  • 01.ScrollView詳細介紹

    • ScrollView滾動到頂部,ScrollView判斷是否滑動到頂部或者底部,ScrollView在最頂部或者最底部的時候不消費事件
  • 02.NestedScrollView

    • NestedScrollView滾動到頂部,NestedScrollView爲什麼有時滾不到頂部,NestedScrollView子佈局有時候顯示不出高度,NestedScrollView中嵌套ViewPager
  • 07.自定義TabLayout

    • 原生TabLayout侷限,TabLayout源碼解析,設置自定義tabView選項卡,自定義指示器的長度,設置滑動改變選項卡顏色,使用反射的注意要點
  • 09.CoordinatorLayout使用

    • CoordinatorLayout是什麼,如何搭配使用,CoordinatorLayout屬性,AppBarLayout屬性,Toolbar屬性
  • 10.CoordinatorLayout源碼

    • CoordinatorLayout類源碼說明,Behavior的初始化操做,CoordinatorLayout的測量佈局,CoordinatorLayout中依賴監聽,CoordinatorLayout的TouchEvent
  • 11.AppBarLayout

    • AppBarLayout是什麼,AppBarLayout屬性介紹
  • 12.CollapsingToolbarLayout

    • CollapsingToolbarLayout是什麼,CollapsingToolbarLayout屬性,其餘注意要點說明
  • 14.自定義Behavior

    • CoordinatorLayout滑動抖動問題描述,滑動抖動問題分析,自定義AppBarLayout.Behavior說明,CoordinatorLayout滑動抖動解決方案
  • 15.CoordinatorLayout問題

    • CoordinatorLayout+ViewPager滑動問題,AppbarLayout+ViewPager滑動問題
  • 20.ViewPager懶加載

    • ViewPager簡單介紹,ViewPager弊端分析,ViewPager預加載,懶加載出現問題,如何實現預加載機制
  • 21.PagerAdapter

    • PagerAdapter簡單介紹,PagerAdapter抽象方法,PagerAdapter原理介紹,PagerAdapter緩存和銷燬,自定義PagerAdapter

20.bug管理

  • 00.常見的異常

    • 分別列舉了實際開發中大部分的異常,主要包括1.異常Exception和2.異常Error
    • 針對開發中異常問題,大概記錄的是:該板塊是持續更新!!
    - A.詳細崩潰日誌信息
    - B.查看崩潰類信息
    - C.項目中異常分析
    - D.引起崩潰日誌的流程分析
    - F.解決辦法
    - G.其餘延申
  • 01.崩潰bug日誌總結1

    • 1.1 java.lang.UnsatisfiedLinkError找不到so庫異常
    • 1.2 java.lang.IllegalStateException非法狀態異常
    • 1.3 android.content.res.Resources$NotFoundException
    • 1.4 java.lang.IllegalArgumentException參數不匹配異常
    • 1.5 IllegalStateException:Can't compress a recycled bitmap
    • 1.6 java.lang.NullPointerException空指針異常
    • 1.7 android.view.WindowManager$BadTokenException異常
    • 1.8 java.lang.ClassCastException類轉化異常
    • 1.9 Toast運行在子線程問題,handler問題
  • 02.崩潰bug日誌總結2

    • 1.1 java.lang.ClassNotFoundException類找不到異常
    • 1.2 java.util.concurrent.TimeoutException鏈接超時崩潰
    • 1.3 java.lang.NumberFormatException格式轉化錯誤
    • 1.4 java.lang.IllegalStateException: Fragment not attached to Activity
    • 1.5 ArrayIndexOutOfBoundsException 角標越界異常
    • 1.6 IllegalAccessException 方法中構造方法權限異常
    • 1.7 android.view.WindowManager$BadTokenException,dialog彈窗異常
    • 1.8 java.lang.NoClassDefFoundError 找不到類異常
    • 1.9 Android出現:Your project path contains non-ASCII characters.
  • 03.崩潰bug日誌總結3

    • 1.1 OnErrorNotImplementedException【 Can't create handler inside thread that has not called Looper.prepare()】
    • 1.2 adb.exe,start-server' failed -- run manually if necessary
    • 1.3 java.lang.IllegalStateException: ExpectedBEGIN_OBJECT but was STRING at line 1 column 1 path $
    • 1.4 android.content.ActivityNotFoundException: No Activity found to handle Intent
    • 1.5 Package manager has died致使崩潰
    • 1.6 IllegalArgumentException View添加窗口錯誤
    • 1.7 IllegalStateException: Not allowed to start service Intent異常崩潰
    • 1.8 java.lang.IllegalStateException:Can not perform this action after onSaveInstanceState
    • 1.9 在Fragment中經過getActivity找不到上下文,報null致使空指針異常

21.經典總結

  • 02.Aidl進程間通訊詳細介紹

    • Aidl相關屬性介紹,實際開發中案例操做,部分源碼解析,客戶端綁定服務端service原理
  • 03.Scheme協議詳細介紹

    • Scheme協議格式解釋,Scheme如何使用 ,Scheme在短信息中注意要點
  • 04.加密和解密

    • 對稱加密和非對稱加密 ,加密和解密代碼展現,非對稱加密用途,RSA非對稱加解密案例代碼分析,注意RSA加密填充方式,RSA加密內容長度限制問題, 加解密效率測試
  • 05.系統日誌寫入文件

    • 自定義log工具類,一邊打印日誌一邊寫入文件,能夠清除7天或者n天以前的日誌文件
  • 06.數據序列化總結

    • 序列化簡單介紹,Parcelable與Serializable的性能比較,性能測試方法分析
  • 07.關於Activity跳轉動畫大彙總

    • 關於Activity實現切換的方式,使用overridePendingTransition方法實現Activity跳轉動畫,使用ActivityOptions切換動畫實現Activity跳轉動畫
  • 08.Android屏幕適配方案

    • 屏幕適配定義,相關重要的概念 ,Android適配問題及本質 ,通配符適配困境,傳統dp適配困境,今日頭條適配方案等等
  • 09.Android編碼規範

    • 包命名,類和接口命名,方法的命名,變量命名,成員變量命名,常量命名,異常命名等等;註釋,類註釋,方法註釋,類成員變量和常量註釋等等;代碼風格,簡單實用的規範文檔
  • [10.上傳提交代碼到jcenter]()

    • 詳細的方法流程步驟
  • 11.產品開發流程

    • 屬於整理性文章
  • 13.Notification通知欄

  • 14.輪詢操做

    • 簡單理解就是App端每隔必定的時間重複請求的操做就叫作輪訓請求,好比:App端每隔一段時間上報一次定位信息,App端每隔一段時間拉去一次用戶狀態等,這些應該都是輪訓請求。
  • 31.App滑動標題欄漸變

    • 目前改變漸變顏色方式,ScrollView實現滑動漸變,RecyclerView滑動漸變,AppBarLayout滑動漸變

21.經典總結(4篇)

23.架構技術

  • 01.Android技術架構

    • MVC架構簡單介紹,MVC缺陷,MVP架構簡單介紹,如何設計一個靠譜MVP架構,以及MVC和MVP之間比較,結合實際代碼分析,避免過分設計
  • 02.Android組件化開發實踐和案例分享

    • 爲何要組件化,建立組件化框架,組件化實踐的開源項目,本博客已經受權鴻洋大神推薦!
  • 03.ARouter路由解析

    • ARouter路由框架一層層的解析,ARouter的工做流程
  • 11.設計路由條件

    • 爲什麼須要路由?實現路由方式有哪些,這些方式各有何優缺點?使用註解實現路由須要具有的條件以及簡單原理分析……
  • 12 經過註解去實現路由跳轉

    • 自定義Router註解,Router註解裏有path和group,這即是仿照ARouter對路由進行分組。而後看看註解生成的代碼,手寫路由跳轉代碼。
  • 13 自定義路由Processor編譯器

    • Processor介紹,重要方法,Element的做用,修飾方法的註解和ExecutableElement
  • 14 利用apt生成路由映射文件

    • 在Activity類上加上@Router註解以後,即可經過apt來生成對應的路由表,那麼到底是如何生成的代碼呢?
    • 在組件化開發中,有多個module,爲什麼要在build.gradle配置moduleName,又是如何經過代碼拿到module名稱?
    • process處理方法如何生成代碼的,又是如何寫入具體的路徑,寫入文件的?
    • 看完這篇文章,應該就可以理解上面這些問題呢!
  • 15 路由框架的設計和初始化

    • 編譯期是在你的項目編譯的時候,這個時候尚未開始打包,也就是你沒有生成apk呢!路由框架在這個時期根據註解去掃描全部文件,而後生成路由映射文件。這些文件都會統一打包到apk裏,app運行時期作的東西也很多,但總而言之都是對映射信息的處理,如執行執行路由跳轉等。那麼如何設計框架呢?
    • 生成的註解代碼,又是如何把這些路由映射關係拿到手,或者說在何時拿到手比較合適?爲什麼註解須要進行初始化操做?
    • 如何獲得獲得路由表的類名,如何獲得全部的routerAddress---activityClass映射關係?
  • [16 路由框架設計注意要點]()

    • 須要注意哪些要點?
  • 17 爲什麼須要依賴注入

    • 有哪些注入的方式能夠解耦,你能想到多少?路由框架爲什麼須要依賴注入?路由爲什麼用註解進行依賴注入,而不是用反射方式注入,或者經過構造方法注入,或者經過接口方式注入?
  • 18 Activity屬性注入

    • 在跳轉頁面時,如何傳遞intent參數,或者如何實現跳轉回調處理邏輯?

24.kotlin學習

25.RecyclerView(25篇)

  • 00.RecyclerView複雜封裝庫

    • 幾乎融合了該系列博客中絕大部分的知識點,歡迎一遍看博客一遍實踐,一步步從簡單實現功能強大的庫
  • 01.RecyclerView

    • RecycleView的結構,RecyclerView簡單用法介紹
  • 02.Adapter

    • RecyclerView.Adapter扮演的角色,通常經常使用的重寫方法說明,數據變動通知之觀察者模式,查看.notifyChanged();源碼
  • 03.ViewHolder

    • ViewHolder的做用,如何理解對於ViewHolder對象的數量「夠用」以後就中止調用onCreateViewHolder方法,ViewHolder簡單封裝
  • 04.LayoutManager

    • LayoutManager做用是什麼?setLayoutManager源碼分析
  • 05.SnapHelper

    • SnapHelper做用,什麼是Fling操做 ,SnapHelper類重要的方法,
  • 06.ItemTouchHelper
  • 07.SpanSizeLookup

    • SpanSizeLookup如何使用,同時包含列表,2列的網格,3列的網格如何優雅實現?
  • 08.ItemDecoration

    • ItemDecoration的用途,addItemDecoration()源碼分析
  • 09.RecycledViewPool

    • RecyclerViewPool用於多個RecyclerView之間共享View。
  • 10.ItemAnimator

    • 官方有一個默認Item動畫類DafaultItemAnimator,其中DefaultItemAnimator繼承了SimpleItemAnimator,在繼承了RecyclerView.ItemAnimator,它是如何實現動畫呢?
  • 11.RecyclerView上拉加載

    • 添加recyclerView的滑動事件,上拉加載分頁數據,設置上拉加載的底部footer佈局,顯示和隱藏footer佈局
  • 12.RecyclerView緩存原理

    • RecyclerView作性能優化要說複雜也複雜,好比說佈局優化,緩存,預加載,複用池,刷新數據等等
  • 13.SnapHelper源碼分析

    • SnapHelper旨在支持RecyclerView的對齊方式,也就是經過計算對齊RecyclerView中TargetView 的指定點或者容器中的任何像素點。
  • 16.自定義SnapHelper

    • 自定義SnapHelper
  • 18.ItemTouchHelper 實現交互動畫

    • 須要自定義類實現ItemTouchHelper.Callback類
  • 19.自定義ItemDecoration分割線

    • 須要自定義類實現RecyclerView.ItemDecoration類,並選擇重寫合適方法
  • 21.RecyclerView優化處理

    • RecyclerView滑動卡頓緣由有哪些?如何解決嵌套佈局滑動衝突?如何解決RecyclerView實現畫廊卡頓?
  • 22.RecyclerView問題彙總

    • getLayoutPosition()和getAdapterPosition()的區別
  • 23.RecyclerView滑動衝突

    • 01.如何判斷RecyclerView控件滑動到頂部和底部
    • 02.RecyclerView嵌套RecyclerView 條目自動上滾的Bug
    • 03.ScrollView嵌套RecyclerView滑動衝突
    • 04.ViewPager嵌套水平RecyclerView橫向滑動到底後不滑動ViewPager
    • 05.RecyclerView嵌套RecyclerView的滑動衝突問題
    • 06.RecyclerView使用Glide加載圖片致使圖片錯亂問題解決
  • 24.ScrollView嵌套RecyclerView問題

    • 要實如今NestedScrollView中嵌入一個或多個RecyclerView,會出現滑動衝突,焦點搶佔,顯示不全等。如何處理?
  • 25.RecyclerView封裝庫和綜合案例

    • 自定義支持上拉加載更多【加載中,加載失敗[好比沒有更多數據],加載異常[無網絡],加載成功等多種狀態】,下拉刷新,能夠實現複雜的狀態頁面,支持自由切換狀態【加載中,加載成功,加載失敗,沒網絡等狀態】的控件,拓展功能[支持長按拖拽,側滑刪除]能夠選擇性添加。具體使用方法,能夠直接參考demo案例。
  • 27. RecyclerView瀑布流優化

    • 瀑布流實現,瀑布流上拉加載,給瀑布流設置分割線,如何避免刷新抖動,爲什麼有時出現跳動,瀑布流圖片優化,onBindViewHolder優化,瀑布流item點擊事件優化,Glide加載優化,建議指定圖片的寬高

26.組件化(7篇)

  • 01.爲什麼組件化

    • APP迭代維護成本增高,APP架構方式是單一工程模式,業務規模擴大,那就涉及到多人協做問題……
  • 02.組件化概念

    • 什麼是組件化,區分模塊化與組件化,區分組件化和插件化,application和library,組件化優點好處,注意第三方sdk拆分問題
  • 03.組件化框架

    • 傳統APP架構圖,組件化須要考慮問題,組件化架構圖,組件通訊是經過路由轉發,業務組件的生命週期
  • 05.組件化案例

    • 如何建立模塊,如何創建依賴,如何統一配置文件,組件化的基礎庫包含哪些,組件和集成模式如何切換,組件初始化問題
  • 06.組件化填坑

    • Fragment通訊難點,組件化解決重複依賴,業務組件聯動致使耦合,組件化之數據庫分離,組件化時資源名衝突,butterKnife使用問題
  • 07.選擇合適路由

    • 選擇那個開源路由庫,阿里Arouter基礎原理,使用Arouter注意事項

27.路由框架

  • 01.設計路由條件

    • 爲什麼須要路由,實現路由方式,路由具有要點,ARouter簡單案例,路由實現原理
  • 02.經過註解實現路由跳轉

    • 首先看ARouter註解實現方案,自定義Router註解,查看生成的註解代碼,倒推生成代碼如何產生的
  • 03.生成路由映射文件

    • 前沿介紹,定義註解處理器,如何拿到module名稱,process處理方法,生成的文件
  • 04.框架設計與初始化

    • 看阿里ARouter總體設計,這樣設計框架目的,仿照ARouter設計本身框架,爲什麼須要初始化操做,初始化操做邏輯,如何獲得獲得路由表的類名
  • 05.路由參數傳遞接收
  • 06.依賴注入詳解

    • 什麼是依賴注入,依賴注入案例,依賴查找和依賴注入,路由框架爲什麼須要依賴注入,路由用什麼方式注入
  • 07.Activity屬性傳遞

    • 依賴注入實現,註解實現分析,AbstractProcessor,如何注入屬性,注入源碼分析

其餘介紹

01.關於博客彙總連接

02.關於個人博客

相關文章
相關標籤/搜索