原创 Android Studio Gradle編譯優化方法

前言:最近發現Gradle項目編譯越來越慢,有時甚至需要好幾十分鐘,實在是讓人難以忍受。於是,便搜尋於網絡,經過驗證,發現此方案尤其有效,故留此博客,以備以後之需。 第1步: 打開AS安裝所在的位置,用記事本打開studio64.

原创 在Android應用中使用Https自定義證書,CER轉BKS

轉換方法參考:http://blog.csdn.net/raptor/article/details/18898937 轉換方法參考:http://blog.csdn.net/lmj623565791/article/detai

原创 設計模式-六大原則

當初作爲小白,提到設計模式,就會覺得很高大上,很牛叉。其實,在我們身邊,在我們的項目中,設計模式的身影無處不在。然而,什麼是設計模式呢?百度解釋爲:設計模式(Design Pattern)是一套被反覆使用、多數人知曉的、經過分類的

原创 Activity佈局加載流程源碼分析(III)

在Activity佈局加載流程源碼分析(I)、Activity佈局加載流程源碼分析(II)、DecorView繪製流程源碼分析與View繪製三大流程源碼分析等四篇文章中,已經很詳細分析了Acitivity的佈局加載過程及佈局的繪製

原创 Activity佈局加載流程源碼分析(II)

在Activity佈局加載流程源碼分析(I)文章中,已經詳細分析了setContentView()加載流程,但對於裝飾器DecorView怎麼被加載到Window上的,上篇博文沒有說到,所以本篇博文將會接着上篇博文,繼續分析Activit

原创 Activity啓動流程源碼分析(應用中)

在移動應用開發中,Android四大組件之一Activity是最常用的。很多界面,如:閃屏、主界面、次功能界面等都需要Activity來作爲主要的載體;界面與界面之間,即不同的Activity之間也都存在跳轉切換,弄懂這其中跳轉切換原理,

原创 Logger框架源碼解析

在移動軟件開發中,我們經常會用到很多框架,如網絡框架retrofit,圖片加載框架glide,數據庫框架litepal,日誌框架Logger等。這些框架對應用都很重要,日誌框架也是其中重要的一部分。因爲很多操作如調試,優化,修改bug等都

原创 Android消息機制源碼解析(Handler)

Android消息機制,其實也就是Handler機制,主要用於UI線程和子線程之間交互。衆所周知,一般情況下,出於安全的考慮,所有與UI控件的操作都要放在主線程即UI線程中,而一些耗時操作應當放在子線程中。當在子線程中完成耗時操作並要對U

原创 Android事件分發機制源碼分析

昨天我們對View繪製三大流程源碼已做了深入分析,所以關於View的繪製流程,我相信大家也有了一個大致的瞭解(如果不瞭解,請回看博文)。然而對於View,還有一個知識點,也是極其重要的,那就是View的事件分發機制(也即Android事件

原创 Android應用程序入口源碼解析

我們在寫C、C++或java應用時,都會有一個main函數,但Android的main函數在哪裏呢?偶記得從第一個HelloWorld應用開始,就知道,只要在AndroidManifest配置表中對Activity的intent-filt

原创 Android跨進程通信方式(IPC)解析

在Android的圈子裏,一直有一個聲音,那就是:要學會看Android源碼。在前期,android開發者比較缺乏階段,似乎大家也沒那麼重視,但隨着時間的發展,Android開發者早已供大於求,需要具備的技能也不在僅限於應用開發,還需要對

原创 DecorView繪製流程源碼分析

通過Activiyt佈局加載流程源碼分析(I)和Activiyt佈局加載流程源碼分析(II)兩篇博文,我們知道,首先,Activity的佈局內容被加載進入裝飾器DecorView中,然後WindowManager將DecorView添加到

原创 HTTP文件斷點續傳原理解析(源碼)

生活中,有許多事物,在沒有被揭開面紗之前,我們往往會覺得很神祕很高深,認爲它一定很難,進而望而卻步,失去了解它的機會。然而,很多事,只要我們自己能沉下心來,細細研究,那些神祕高深的,也會變得簡單明瞭。”HTTP文件斷點續傳”就是這樣一個好

原创 Activity啓動流程源碼分析(Launcher中)

Activity的啓動方式,嚴格來說有兩種形式。第一種是在Android應用中啓動,第二種是從Launcher中點擊應用快捷圖標啓動。Android應用中Activity啓動流程,在上篇博文Activity啓動流程源碼分析(應用中)已介紹

原创 Butter Knife框架源碼解析

最初的開始,findViewById()獲取View控件,setOnClickListener設置View的監聽事件,然後UI界面開始有響應。當初完成這個操作,有點興奮,而這也成爲我Android開發的起點。隨着時間的推移,android