前言 源碼大家可以到這里搜索下載 正文 Timer內(nèi)部有2個比較重要的成員變量 一個是任務(wù)隊列,一個是執(zhí)行任務(wù)的線程。我們線看下這個 TimerThread,它繼承自Thre...
前言 源碼大家可以到這里搜索下載 正文 Timer內(nèi)部有2個比較重要的成員變量 一個是任務(wù)隊列,一個是執(zhí)行任務(wù)的線程。我們線看下這個 TimerThread,它繼承自Thre...
一 前言 閱讀本文的前提是你已經(jīng)知道什么是Handler、Looper、ThreadLocal等基本類。源碼位置可以在這里搜索。 二 源碼分析 enqueueMessage方...
前言 本文假設(shè)你已經(jīng)了解了android中Binder相關(guān)的機制,如果你還未了解相關(guān)知識,就沒必要閱讀本文了。 正文 我們直接看ContextImp相關(guān)代碼 看線Activi...
前言 本文假設(shè)你已經(jīng)了解了android的Binder機制,如果你還未了解相關(guān)知識,就沒必要閱讀本文了。 正文 一個進程可以運行多個app(mainfest中通過proces...
一、lock的使用 通過源碼可知,Lock類是個interface,定義了一些方法,其中一個方法叫l(wèi)ock。ReentrantLock實現(xiàn)了Lock,我們先簡單的介紹下loc...
一、前言 本文只討論android通過隱式Intent查找組件(ComponentName)的方式。 二、intent-filter三要素 1. action action ...
一、前言 源碼位置在這里搜素。 本文只闡述SparseArry的數(shù)據(jù)結(jié)構(gòu),并簡單分析代碼實現(xiàn) 二、源碼分析 看線SparseArray的幾個成員變量 幾個成員變量非常簡單 D...
一、android中的Uri 1、Uri概述Uri是Universal Resource Identifier的縮寫,中文稱為統(tǒng)一資源標(biāo)示符。2、結(jié)構(gòu) 在android中體現(xiàn)...
先看一段代碼 我們預(yù)測下這段代碼的執(zhí)行結(jié)果,也就是count的最終值。有人可能會說是10000。但是實際結(jié)果是小于等于10000的一個數(shù)。原因是 是一個非原子操作,至少包含三...
一、內(nèi)部類基礎(chǔ) 成員內(nèi)部類先看一段代碼 執(zhí)行結(jié)果 我們看到,成員內(nèi)部類可以訪問外部類的一切成員變量和方法(包括static變量和static方法)。如果內(nèi)部類出現(xiàn)和外部類相同...
從內(nèi)存角度來分析static關(guān)鍵字對于這個問題,我們只需簡單知道三件事,棧、堆和方法區(qū)棧區(qū):存放對象的引用或者數(shù)組的引用堆區(qū):存放具體的對象或者數(shù)組方法區(qū):存放方法和共享變量...
先看一段代碼 大家猜下執(zhí)行結(jié)果。這個執(zhí)行結(jié)果很可能不是打印一次"create Fruit",我本次測試結(jié)果如下: 那為什么會出現(xiàn)這樣的結(jié)果呢?因為有可能多個線程都能跑過這段代...
一、前言 1、源碼位置在這里。 ArrayDeque的三個基本成員變量 實際上這就是一個數(shù)組+頭尾下標(biāo)。本文只簡單介紹ArrayDeque作為Queue使用的情況。 二、Ar...
一、前言 LinkedList源碼位置在這里。 LinkedList采用雙向鏈表,至于為什么采用雙向鏈表,我們結(jié)尾再說。 本文旨在簡單的了解LinkedList的數(shù)據(jù)結(jié)構(gòu),只...
一、什么是插件化 在android開發(fā)中,所謂插件化,就是在android運行中,我們可以動態(tài)加載dex文件到app的進程中。這樣的做的好處是app能在不升級的情況下更新有問...
一、前言 源代碼在這里。本文旨在于對Message做個簡單的介紹和分析,讓大家對Message有個大致輪廓上的認識,如果想要完全理解,還需研究Handler、MessageQ...
一、簡介 Parcelable定義了一組接口,只要開發(fā)者實現(xiàn)了這些接口,那么系統(tǒng)就可以把相關(guān)的對象轉(zhuǎn)換成二進制流進行傳輸。 二、少啰嗦,看代碼 代碼 定義了序列化的規(guī)范,也就...