原创 從頭到尾給你講明白Android View實現原理

Activity是Android開發者寫第一行代碼起就開始接觸到的。而在onCreate方法中調用setContentView(R.layout.main_activity),恐怕也是絕大多數開發者的頭等任務。然後我們可以調用findVi

原创 FileProvider使用以及源碼淺析

1. FileProvider的使用 1.1 AndroidManifest.xml中定義 <provider android:name="android.support.v4.content.FileProvi

原创 Android Context ContextWrapper ContextImpl Activity Service關係

初識Context 對於Android開發者來說,Activity應該是接觸到最早的四大組件之一。Activity可以渲染layout生成控件,可以獲取圖片資源、文本資源、動畫資源等等,還可以啓動另一個Activity,啓動一個後臺的Se

原创 Java命令行調試程序

第一部分 進入調試模式 通過jre提供的jdb程序可以實現命令行調試java程序。關於jdb的命令語法可以參考 官方文檔。下面我講通過實例手把手將大家學會命令行調試 Step 1 創建項目 1. mkdir -p ~/jdwp/src/m

原创 Java非靜態內部類外部this對象和final類型詳解

1. 非靜態內部類是如何引用外部類this對象的 Java內部類分爲靜態內部類和非靜態內部類。它們有一個比較大的區別在於,非靜態內部類擁有外部類的this對象的引用,從而使得非靜態內部類可以訪問外部類的成員函數,成員變量。這個結論我們大家

原创 Android事件分發機制

這篇文章我將用最容易理解的語言來講述Android事件分發的流程。我們重點將思路集中到ViewGroup和View類中。ViewGroup定義了三個和事件相關的方法dispatchTouchEvent(MotionEvent ev)、on

原创 Java WeakReference

關於WeakReference的定義引用維基百科定義 在計算機程序設計中,弱引用與強引用相對,是指不能確保其引用的對象不會被垃圾回收器回收的引用。一個對象若只被弱引用所引用,則被認爲是不可訪問(或弱可訪問)的,並因此可能在任何時刻被回收

原创 OkHttp源碼詳解之Okio源碼詳解

請在電腦上閱讀,效果更佳 本文將從兩個技術點講解OkHttp 1. 講解Okio,因爲Okhttp的IO操作都是基於Okio,拋開Okio的OkHttp講解是不完美的 2. 講解OkHttp源碼 Okio 1. Okio簡介 引用官方

原创 Android系統服務啓動順序

系統服務啓動分爲三類 1. startBootstrapServices() 2. startCoreServices() 3. startOtherServices() startBootstrapServices

原创 Java HashMap詳解

1. HashMap概覽 HashMap類定義 HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V> HashMap繼承了AbstractMap同時實

原创 Java命令行參數詳解

最近在學習Gradle相關的知識。下載Gradle源碼後,未能成功導入IDEA運行。所以想另闢蹊徑,通過命令行來調試運行Gradle程序。經過一番搜索和思考。發現Java通過jdwp可以遠程調試java程序的。在實踐的過程中,對一些命令行

原创 Java LinkedHashMap詳解

1. LinkedHashMap概覽 LinkedHashMap類定義 public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>

原创 OkHttp源碼詳解之二完結篇

1. 請大家思考幾個問題 在開始本文之前,請大家思考如下幾個問題。並請大家帶着這幾個問題,去本文尋找答案。如果你對下面幾個問題的答案瞭如指掌那本文可以略過不看 在瀏覽器中輸入一個網址,按回車後發生了什麼? Okhttp的TCP連接建立發

原创 Java Map接口一覽

Map接口 歸納總結下Map接口主要分爲四大類 2對修改操作(塊操作),3個遍歷操作,5個查詢操作 public interface Map<K,V> { // 查詢操作 int size(); boolean

原创 Java併發系列之六 CyclicBarrier源碼解析

CyclicBarrier概述 CyclicBarrier字面意思是可循環使用的線程屏障。 CyclicBarrier的功能和CountDownLatch功能有點相似。都能實現線程間相互等待,直到線程做完某些任務,喚醒等待線程。那麼既然他