原创 Glide4緩存機制源碼解析

這篇文章基於Glide4,只分析Glide4的緩存機制,如果大家還不瞭解Glide4源碼,可以去看一下下面這兩篇做一下鋪墊: Glide4初始化 Glide4數據模型轉換與數據獲取 好了,直接進入正題~~ 這裏以加載一張網絡圖片來講解緩存

原创 關於AsyncTask的onPostExcute方法是否會在Activity重建過程中調用的問題

假設下面一種情況: 當前Activity中持有一個fragment對象,且fragment中有一個AsyncTask異步任務正在執行,當配置發生改變時(比如屏幕旋轉),假設消息隊列的情況如下 1.配置改變,用戶旋轉屏幕,但是此時Async

原创 初學Flutter基礎:關於InheritedWidget的理解

InheritedWidget是Flutter的一個功能型的Widget基類,它能有效地將數據在當前Widget樹中向它的子widget樹傳遞。 它的子Widget樹可以通過 BuildContext.inheritedFromWidge

原创 使用BottomSheet和BottomSheetDialog實現嵌套滑動效果

先看效果:  這就是我們要實現的嵌套滑動效果,即在同一個事件序列中,先滑動外部控件,當外部控件滑到設定的高度時,滑動內部空間。我們都知道,在傳統的時間分發機制中,某個View一旦決定攔截,那麼這一個事件序列都只能由它來處理(如果事件序列

原创 初學Flutter入門:State生命週期

State作爲StatefulWidget的邏輯和內部狀態的持有者. 一個StatefuleWidget類會對應一個State類,在Widget生命週期內,當Widget被build或者Widget發生改變時,會同步讀取State的信息。

原创 關於Class.forName()與ClassLoader.loadClass()與new的區別

這篇文章解決三個問題: 1.Class.forName()與ClassLoader.loadClass()的區別; 2.new與Class.forName()的區別; 3.有了new,爲什麼還要Class.forName(); 一、Cla

原创 Android存儲路徑

總結存儲路徑,方便下次查閱,看了很多介紹存儲路徑的文章,但是還是自己驗證一下來的爽快~ 這裏分爲內部存儲和外部存儲。 內部存儲:即手機自帶的存儲目錄。 外部存儲:如SD卡。 不管現在的手機是否有可移動的SD卡,總是有外部存儲和內部存儲。

原创 組件化入門——寫一個Demo

組件化開發就是基於可重用的媽的,將一個大的軟件系統分離,拆分成多個獨立的組件。組件可以是模塊、web資源、軟件包等。 最近想知道組件化是什麼東西,於是看了很多博客,設計到很多理論知識,但是越看越懵。還不如找個Demo學一下,學的過程又遇到

原创 Android——View繪製流程

ActivityManagerService 在介紹ActivityManagerService之前,我們先簡單瞭解一下Android Zygote系統啓動過程。 在Android系統中,所有的應用程序進程和系統服務進程SystemSer

原创 簡單使用Camera自定義相機

最近需要使用到自定義的相機,由於網上的教程大多講不清楚,於是自己去找了個開源的自定義相機學習了下。現在起碼知道怎麼用了,所以在此簡單記錄一下,順便加深一下理解。 先看效果圖: 首先,想要使用相機,那我們需要的就是一個能夠顯示攝像頭拍攝到

原创 常用網絡命令ARP、FTP

ARP常用命令 ARP(地址解析協議)        地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到網

原创 沉浸式狀態欄詳解

要想知道各式各樣的狀態欄怎麼實現的,我們先要了解一下下面幾個方法的作用! setSystemUiVisibility 這個方法可以改變系統UI的可見性。使用如下: int flag = View.SYSTEM_UI_FLAG_LAYOU

原创 MainThread的loop爲什麼不會造成死循環?

MainThread的loop爲什麼不會造成死循環? 因爲這個loop處理一切的事件,包括繪製,點擊事件等等,它停止了,那整個android程序就退出了。   一個線程可能有一個Looper,它包含一個MessageQueue。爲了使用這

原创 Android——new Canvas(Bitmap)中對canvas和bitmap的理解

最近剛接觸自定義View的時候,看到Canvas有一個構造函數需要傳入一個Bitmap,不解。於是有了這篇文章! 我們先看Canvas的定義: The Canvas class holds the "draw" calls. To dr

原创 簡潔易懂——網絡七層協議

國際標準化組織ISO於1984年提出了OSI(Open Ssystem Interconnection Reference Model,開放系統互聯參考模型)。OSI很快成爲計算機網絡通信的基礎模型。 OSI依層次結構來劃分:第一層,物理