原创 Android性能優化第(十)篇---佈局優化

之前在Android性能優化第(四)篇—Android渲染機制說了一下UI的渲染,我們知道Android系統每隔16ms就重新繪製一次Activity,如果沒有完成就會有丟幀的現象。爲了減輕UI繪製的負擔,有必要把Layout編寫

原创 流行網絡庫第(三)篇---動手寫圖片加載的三級緩存

有很多第三方網絡庫都有三級緩存機制,比如BitmapUtil,ImageLoader等,今天來談一談是怎麼實現的,首先三級指的是內存,文件,網絡三級。OK下面開始寫代碼了。 對於圖片的下載邏輯,我們使用AsyncTask,在這個I

原创 Gradle系列第(一)篇---Groovy語法初探

一、從Java到Groovy的關係 Groovy能直接接受你的Java代碼,也就是說在Groovy中寫java代碼也是可以的,因爲Groovy 是一門JVM 語言,也就是,Groovy 的代碼最終也會被編譯成JVM 字節碼,交給虛

原创 Gradle系列第(三)篇---Android Studio與Gradle那些事兒

· 本來這篇要寫Android性能優化的,個人時間比較少,每天加班到很晚,寫博客的時間就很少了,但是Gradle系列的文章還沒有寫完,所以補一篇,在Gradle系列第(二)篇—Gradle編程主要對象主要寫了Gradle中的幾個

原创 流行網絡庫第(二)篇---Volley源碼解析

在上一篇,流行網絡庫第(一)篇—Volley用法解析中瞭解了Volley的基本使用,但是對於Volley可能有些朋友還不是特別清楚。我也是結合源碼與其他人的分析,才真正弄清楚Volley的工作原理。 先看一個Demo,Voll

原创 Android源碼解析四大組件系列(七)---廣播的發送過程

本篇文章的目錄 1、廣播數據結構分析 2、線程的切換 3、processNextBroadcast分析 3.1、處理並行廣播 3.2、處理Pending廣播 3.3、處理有序廣播 3.4、獲取下一條廣播 3.5、檢查是否是動態廣播 3.

原创 Android源碼解析四大組件系列(六)---廣播的處理過程

這篇文章緊接着上篇分析廣播的發送過程,發送廣播都是調用ContextImpl的接口去實現的,總共有二十多個,最終都是調用到AMS的broadcastIntent。主要分成下面九小節來說明。 1、設置Flag 2、檢查Broadca

原创 Android窗口系統第三篇---WindowManagerService中窗口的組織方式

Android窗口系統第一篇—Window的類型與Z-Order確定 Android窗口系統第二篇—Window的添加過程 上面文章梳理了一個窗口的添加過程,系統中有很多應用,每個應用有多個Activity,一個Activity上有一個

原创 Android源碼解析四大組件系列(五)---廣播的註冊過程

廣播這個篇幅打算用四篇文章來寫,分別爲廣播註冊、廣播處理、廣播的發送,廣播深入細節理解,如果都寫到一篇文章會比較長,所以拆分成四篇來寫。 第一篇 Android源碼解析—廣播的註冊過程 第二篇 Android源碼解析—廣播的處理

原创 Android架構設計---關於MVVM模式的探討

一、MVP模式優缺點 在說MVVM之前,簡單回顧一下MVP分層,MVP總共分成三層: - a 、View: 視圖層,對應xml文件與Activity/Fragment; - b 、Presenter: 邏輯控制層,同時持有View和M

原创 Android源碼解析四大組件系列(八)---廣播幾個問題的深入理解

接上篇文章,這篇文章主要是總結前面知識,並且瞭解一些細節問題,加深對廣播機制的理解,比如有播有序是怎麼保證有序的?廣播攔截機制是怎麼實現的?廣播發送超時了是怎麼處理的?registerReceiver方法發返回值有什麼用?粘性廣播等等。

原创 Android架構設計---MVP模式第(二)篇,如何減少類爆炸

今天是2017年3月16日,差不多一年前,寫過一篇MVP基礎類型的文章Android架構設計—MVP模式第(一)篇,梳理了一下MVP怎麼使用。OK,先回憶一下。 一、基礎知識 1.1、MVP分層 總共分成三層 - a 、View: 視圖

原创 Android源碼解析四大組件系列(四)---Activity啓動詳細流程

在上一篇博客http://www.jianshu.com/p/98fa08ee1bfb,我們起碼知道了Zygote是怎麼啓動SystemServer進程的,AMS是怎麼註冊的,啓動的,啓動之後通過Socket怎樣與Zygote進程通信的,

原创 Android源碼解析四大組件系列(三)---Activity啓動過程之ActivityThread是如何運行起來的

這篇文章,深入源碼,分析Launcher進程向SystemServer進程發起startActivity請求,SystemServer進程在向zygote進程發起請求,最後孵化出應用進程(我們的APP進程)的這一過程,爲什麼要分析這個呢,

原创 Android插件化系列第(五)篇---Activity的插件化方案(代理模式)

這篇文章介紹Activity的插件化方案,Activity的插件化方案不止今天介紹的這一種。建議在看本文之前,先看我的前兩篇博客,如果前兩篇有認真看過,那麼閱讀本文至多十分鐘完事兒! Android插件化系列第(一)篇—Hook技術之A