原创 EventBus要點記錄

1、EventBus方法註冊 先從註冊的對象中找到對應的方法 1)先從對外聲明的方法找,如果發生異常,再找全部方法 找全部方法的時候會設置變量findState.skipSuperClasses = true; 這樣就不用再次找父類的方法

原创 LeakCanary2.0版本原理簡單查看

這幾天看了一下leakCanary2.0版本的源碼,在這裏做一下記錄。 2.0版本使用kotlin重寫的,使用起來也非常簡單,省去了在Application中的註冊,只需要在build.gradle文件中加入依賴 debu

原创 Fiddler抓包flutter的請求

近期在學習flutter的時候想通過fiddler抓一下網絡請求包。配置好了手機wifi的代理,項目一運行,咦,啥都沒有抓到。然後趕緊上網找一通,終於找到了解決辦法。 首先說一下解決辦法: 在代碼中通過代碼爲HttpClient設置代理:

原创 Flutter中Image的fit屬性解析

flutter中image的fit屬性表示在圖片和image控件大小不一樣的時候,圖片該以何種方式展現在控件中。fit的屬性都包含在枚舉類BoxFit中,一共有以下7種方式: 1、fill 2、contain 3、cover 4、fit

原创 flutter中頁面跳轉之Navigator

在安卓和蘋果設備上都有頁面跳轉的操作,flutter中是使用Navigator來管理頁面之間的跳轉的。在萬物皆Widget的flutter中,Navigator自然也沒有逃過成爲一個widget的命運,它屬於StatefulWidget

原创 DiskLruCache源碼解析

DiskLruCache是一種使用有限數量的緩存空間來緩存文件的硬盤緩存,採用了最近最少使用策略在一定的空間大小下來緩存經常使用到的文件。在許多方面都有用到,比如移動開發中的圖片在硬盤緩存時,經常用到的就是DiskLruCache. j

原创 okhttp之ConnectInterceptor

ConnectInterceptor是okhttp中負責和服務端建立連接的一個攔截器,ConnectInterceptor類中代碼看起來是不多,但千萬不要被它純潔的外表給欺騙了,實際上負責的操作都被封裝到其他的類裏了。下面來看代碼:

原创 okhttp之CacheInterceptor

CacheInterceptor是okhttp中緩存攔截器,是負責http請求的緩存處理。當從上個攔截器中獲取到http請求時,會從緩存裏面取出對應的響應(之前緩存過的),如果沒有,返回null。然後會根據request和獲取到的緩存的

原创 okhttp之RetryAndFollowUpInterceptor

RetryAndFollowUpInterceptor是okhttp自己的第一個攔截器,這個攔截器主要負責請求的重定向和重試。下面看代碼: 先來分析重試部分的代碼 @Override public Response intercept(

原创 ImageLoader圖片加載流程分析

ImageLoader加載圖片的方法有兩種: 1.loadImage 2.displayImage 經過查看源碼,發現其實兩種加載方法最終是一樣的,因爲loadImage方法最終也是調用的displayImage方法。代碼如下:

原创 okhttp之BridgeInterceptor

BridgeInterceptor是okhttp中的第二個攔截器,這個攔截器的主要作用就是在對用戶的請求頭部加了一些信息,然後在獲取到的響應中也做了一些處理。而這些處理對用戶是透明的,減少了客戶請求的工作。下面來看一下對用戶的請求做了哪

原创 okhttp之CallServerInterceptor 分析

CallServerInterceptor是okhttp中的最後一個攔截器,用來向服務器發送客戶端的請求數據,並且封裝服務器返回來的Response。開始分析代碼: @Override public Response intercept

原创 Activity、View、Window之間關係的分析

看大家都放圖,我也來一張 通常我們所看到的Activity和View最直觀的關係是在onCreate()方法中設置setContentView(LayoutId),爲activity設置佈局文件,這樣view就在界面上顯示出

原创 Android屬性動畫

Android動畫分爲三種:1.Tween動畫,也叫補間動畫 2.幀動畫 3.屬性動畫。今天要說的就是第三種動畫,屬性動畫。屬性動畫主要是改變對象本身的屬性來形成的動畫。屬性動畫是Android3.0以後纔開始引用的,所以只有在3.

原创 關於Jni開發中遇到的問題undefined reference to `__android_log_print'

前幾天用到了jni,在開發中遇到一問題,就是我在android studio的c代碼中添加了一個打印log的代碼,如下: #include <android/log.h> //#define LOGV(...) __android_