原创 高斯模糊效果及截屏

對圖片做了高斯模糊的處理,借鑑了FastBlur的對圖片做圖形矩陣算法的處理。貼一下源碼: public class FastBlur { public static Bitmap doBlur(Bitmap sent

原创 深入學習屬性動畫

深入學習屬性動畫 1.動畫三種方式 動畫名稱 動畫的定義 逐幀動畫 將一張完整的圖片拆成一張張圖片單獨的播放 補間動畫 可以對view進行一些列的動畫操作 屬性動畫 可以對非view的對象就行動畫操作,可以改變v

原创 自定義View(二)

簡單的自定義圓弧加載框。比較簡單,勿噴。 res/下的文件: <resources> <attr name="firstcolor" format="color" /> <attr name="firststro

原创 四大組件-BroadcastReciver的工作原理基於android9.0

Android中的廣播分爲動態廣播和靜態廣播,靜態廣播需要在清單文件中註冊,動態廣播使用代碼在需要的地方註冊,這裏只分析動態廣播的註冊過程, 註冊過程 動態的廣播註冊調用ContextWrapper的registerReceive

原创 四大組件-Service的工作原理基於android9.0

安卓中啓動Service的方式有兩種,startService及bindService,因此這篇文章會基於這兩種方式分析安卓9.0的源碼中對於這兩種方式的實現。另外只分析具體的流程,不對具體的細節做分析,這也是閱讀源碼需要避免的錯誤方

原创 Activity的工作原理-android9.0

startActivityForResult 方法 當開啓一個頁面的時候需要調用Activity的startActivity的方法。最終調用到了其內部的 startActivityForResult 方法。在 startActiv

原创 IntentService

簡介:繼承自Service,可以做耗時任務的Service。 使用 創建Service繼承IntentService 創建 MyIntentService 繼承IntentService ,實現 onHandleIntent方

原创 四大組件-ContentProvider的工作原理基於android9.0

ContentProvider是安卓的四大組件之一,底層使用Binder,可以用於跨進程通信,另外ContentProvider的啓動伴隨着進程的啓動,進程的啓動調用Process的start方法,並且新進程的入口是ActivityT

原创 框架源碼解析之EventBus源碼分析

一、簡述 EventBus 是安卓中的一個事件總線庫,可用於替代廣播,Handler和用於組件化中組件間通信的庫。 這是EventBus的Github上的一張介紹圖,從圖中可以理解EventBus的工作流程,發佈者即 Publish

原创 安卓的IPC機制之系列之Binder

Binder介紹 Binder是安卓中的一種誇進程通信的方式,在安卓源碼中Binder繼承了IBinder類。 public class Binder implements IBinder { Binder在安卓的frameWork層和應

原创 ConstraintLayout-約束佈局詳解

ConstraintLayout介紹 Constraintlayout繼承自ViewGroup,它是一個可以允許你以一種靈活的方式去 設置定位的控件,向下兼容到API 9。 ConstraintLayout的約束類型 Relati

原创 RemoteViews的作用和原理

RemoteViews RemoteView是一種遠程View,可以在其他進程中顯示。RemoteView在安卓中的使用主要有兩種:通知欄和桌面小部件。通知欄主要由NotifycationManager實現,桌面小部件主要由AppWidg

原创 greendao3.0的引入

greenDao 3的引入 導入AS app module下build.gradle buildscript { dependencies { classpath 'org.greenrobot:greendao-gradle-pl

原创 關於動態加載機制的熱更新的小結

前段時間公司準備在項目裏面引入熱修復技術,自己以前也看過關於熱修復的文章,比如qq空間團隊關於熱修復技術的,安卓App熱補丁動態修復技術介紹 。在瞭解熱修復之前,首先要明白安卓裏面的ClassLoader這個類,這個類下面有兩個子類:pa

原创 MarginDesign控件使用(一)

TabLayout的使用 比如在平常的項目中實現這樣的效果,一般都是都會使用viewPageIndicate等幾個開源框架直接實現,或者使用自定義的HorizontalScroll再配合ViewPage+Fragment實現。在谷歌推