原创 art虛擬機啓動過程分析

標籤(空格分隔): art android5.1 啓動流程 jvm 我們都已經知道,Android系統是基於Linux內核,而應用程序大都由Java語言實現的一個操作系統,包含一套C/C++ Framework和Java Fra

原创 RXAndroid源碼分析(三) map過程

標籤(空格分隔): rxandroid rxjava map 上一篇文章分析了一層結構最簡單的事件觸發的過程,接下來分析map過程,對於map過程宏觀上的認識,借用官網上的一個圖 從這個圖中,我們可以看到,map的過程是一

原创 RXAndroid源碼分析(二) 簡單的例子

標籤(空格分隔): rxandroid rxjava RxJava: “a library for composing asynchronous and event-based programs using observable

原创 Activitty狀態保存onSaveInstanceState和恢復onRestoreInstanceState

標籤(空格分隔):Actiivty 狀態保存和恢復 當我們在前臺和後臺切換,或者橫豎屏切換的時候,Activity會被重新創建,Android系統默認是幫我們自動保存和恢復了和這個Activity有關的一些狀態,涉及到Activ

原创 android系統瀏覽器下載流程

android系統瀏覽器下載流程 標籤: android browser download 簡介 當我們用瀏覽器點開一個下載鏈接,然後去下載,從宏觀上認識,有下載進度的實時更新和界面的跳轉。整個過程中,主要涉及到以下過程。瀏覽器

原创 Volley Session的小結

Volley Session的小結 標籤(空格分隔): Volley Session小結 Volley創建過程 public static RequestQueue newRequestQueue(Context context

原创 Glide源碼分析(一),基本加載代碼流程

下面來看在Glide中最簡單的圖片加載代碼 Glide.with(this) .load("https://p.upyun.com/docs/cloud/demo.jpg")

原创 Glide源碼分析(三),Engine加載資源過程

通過前面的分析,我們知道真正去加載數據是在SingleRequest#onSizeReady方法中被觸發,這個裏面是調用了Engine#load方法,看到這個方法,我們大致可以猜到此時便開始去真正加載數據了,從緩存中讀取或者是從網絡獲取等

原创 Glide源碼分析(七),總綱思路梳理

對於Glide源碼分析,基本已經接近尾聲,整體下來,整個Glide工程代碼量還是比較大的,涉及的知識點以及設計模式也很多,很值得研究一下,這裏我貼上github源碼中,關於glide工程的一張簡單的引用關係。如下: 這樣大家面對這個

原创 DecodeHelper類相關方法分析

DecodeHelper類中,調用的方法,涉及到的東西比較多,最主要的是包括管理組件註冊以擴展或替換Glide的默認加載,解碼和編碼邏輯的Registry類。在Glide類的構造方法中,如下: Glide( @NonNull

原创 Glide源碼分析(五),EngineJob與DecodeJob代碼詳細加載過程

在Glide源碼分析(三),Engine加載資源過程文中,我們分析到Engine#load的最後一步,創建好了一對EngineJob和DecodeJob,隨之調用EngineJob的start方法,啓動加載任務。下面分析整個一個執行過程,

原创 Glide源碼分析(八),Glide的自定義模塊擴展與實踐

Generated API Glide v4使用註解處理器(Annotation Processor)來生成出一個API,在Application模塊中可使用該流式API一次性調用到RequestBuilder,RequestOption

原创 Glide源碼分析索引

gilde源碼分析,所有分析均是基於glide tag 4.7.1的代碼。 系列文章如下: Glide源碼分析(一),基本加載代碼流程 Glide源碼分析(二),基本加載類圖介紹 Glide源碼分析(三),Engine加載資源過程

原创 DataFetcherGenerator結構

UML如下: DataFetcherGenerator 使用已註冊的ModelLoaders{@link com.bumptech.glide.load.model.ModelLoader}和一個模型構造一系列的DataFetc

原创 FirebaseCrash和自定義Thread.UncaughtExceptionHandler的兼容處理

  最近在項目中集成了Firebase的crash報告插件,遇到了一個小的問題,由於項目中之前也使用的自定義的Thread.UncaughtExceptionHandler(具體實現是重啓了app,並屏蔽掉了系統的應用程序停止的彈框),導