原创 Android架構組件(二)——LiveData

Android架構組件(二)——LiveData 上一篇文章講到了Android架構組件之一Lifecycle組件(Android 架構組件(一)——Lifecycle-Aware Components),現在我們再來看看另一個成員Li

原创 Java 引用分類:StrongReference、SoftReference、WeakReference、PhantomReference

一,定義 在Java中,引用的定義是:如果reference類型的數據中存儲的數值代表的是另一塊內存的起始地址,就稱這塊內存代表着一個引用。後面在JDK1.2開始,引用的概念被擴充,引用被分爲強引用(StrongReference)、軟引

原创 設計模式——迭代器模式

上次我們講了下觀察者模式《設計模式——觀察者模式》,這次我們來看下迭代器模式。迭代器模式我們自己可能很少直接的使用,但是我們卻經常在間接地使用,Java集合類就用到了這個模式,這個可以通過他們的源碼來驗證。 我們知道對容器對象的訪問必然

原创 設計模式基礎——UML類圖

一,基本概念 類是對象的集合,封裝了對象的屬性和方法。類主要有屬性(Attribute)和方法(Method)構成,屬性代表對象的狀態,方法代表對象的操作行爲。類圖是軟件工程的統一建模語言(UML)一種靜態結構圖,該圖描述了類的屬性和類之

原创 如何正確的給ViewGroup設置OnClickListener

在Android的日常開發中,我們總會碰到要給某個LinearLayout、RelativeLayout等設置OnClickListener,以便達到點擊其子view能夠觸發設置的OnClickListener。但是當我們點擊子view

原创 ButterKnife 基本使用

導語 在Android的日常開發中,最煩的應該是寫一大堆的findViewById()了,偏偏這個還不得不寫。總想讓工具來解放我們的雙手,能有多懶就儘量有多懶,最好能實現人腦和電腦之間通過腦電波傳輸,然後啪啪啪代碼就寫好了(或許若干年之

原创 帶你深入理解Activity啓動模式(LaunchMode)

我們知道默認情況下,當我們多次啓動同一個activity時,系統會創建多個實例並把他們一個個放入任務棧,當我們按back鍵,這些activity又會一個個退出。在講activity的launchmode之前,我們有必要了解下“任務棧(Ta

原创 Android架構組件(三)——ViewModel

Android架構組件(三)——ViewModel 上一篇文章講到了Android架構組件之LiveData(Android架構組件(二)——LiveData),現在我們再來看看另一個成員ViewModel。 ViewModel是什麼

原创 Android Studio導入framework.jar等系統jar包方式

從Eclipse 轉到Android Studio,必經 的一個過程就是導入第三方jar包,導入普通的jar包方式比較簡單,網上其他的例子也比較多,但是關於導入framework.jar包內容就比較少。 有時候開發需要一些依賴framew

原创 Java集合ArrayList實現原理——源碼分析

一,ArrayList簡述      ArrayList是實現了List接口的動態數組,動態數組是指它的大小是可變的。ArrayList實現了所有可選列表操作,並允許保存包括null在內的所有元素。ArrayList除了實現List接口

原创 設計模式——單例模式

上次我們講到迭代器模式(設計模式——迭代器模式),這次我們來看一個最常用的設計模式——單例模式。單例模式的使用場景很多,比如處理偏好和設置註冊表對象、日誌對象、對話框等。單例模式是應用最廣的設計模式之一,也是很多同學最熟悉的模式,因爲它使

原创 Android--MonkeyRunner的基本使用

     先說下背景:DQA總會測出一些難以重現的bug,經常出現“有時出現”、“偶爾出現”等字眼,這種問題真是一萬個草泥馬跑過啊.....。你不能逮着DQA的人問怎麼出現的啊,如何才能出現,一般情況下你得到的回答都是“它就是出現了.

原创 深入理解Java ThreadLocal

歡迎轉載,轉載請註明出處:深入理解Java ThreadLocal! 一、定義 我們知道多線程環境下訪問共享資源的會產生衝突,一般情況下我們可以通過鎖機制來限定單個線程訪問共享資源,讓其他線程等待,但是這種方式會導致阻塞。避免多線程對共享

原创 深入理解Android 消息機制(一)——綜述

在日常開發和學習中,我們肯定都會接觸到Android消息機制。我們知道,在非UI線程中不能直接更新UI,一般我們都是在非UI線程中通過Handler發送一條消息來更新UI。通過Handler可以將任務切換到Handler所在的線程中。An

原创 設計模式——觀察者模式

觀察者模式是一種非常常見的模式,它最常用在GUI系統和訂閱發佈系統。像Android系統中的View的各種listener用到的就是觀察者模式。使用觀察者模式一個重要的原因就是解耦,將被觀察者和觀察者之間解耦,使得他們之間的依賴減小。 一