原创 View繪製流程和加載過程(一)

屏幕的刷新包括三個步驟:CPU 計算屏幕數據、GPU 進一步處理和緩存、最後 display 再將緩存中(buffer)的屏幕數據顯示出來。 WindowManager 維護着所有 Activity 的 DecorView 和

原创 view.post源碼解析 (API29)

文章目錄view.post投遞消息HandlerActionQueue管理attachInfo未實例化之前的runnable對象attachInfo的實例化和賦值總結: View.post(runnable) runnable在主

原创 Context詳解(API29)

文章目錄Context實例化Activity中的ContextImpl實例化Service中的ContextImpl實例化Application中的ContextImpl實例化 Context是一個抽象類,我們通過這個Contex

原创 EventBus 3.1.1 源碼解析(二)

EventBus從3.0開始支持APT,編譯期生成文件,就可以得到eventType、subscriberMethod、subscriberClass的映射關係。 app下的build.gradle中引入EventBus和Even

原创 retrofit 2.6.1源碼解析(二)converter

文章目錄構建responseConverterGsonConverterFactoryGsonRequestBodyConverterGsonResponseBodyConverter Retrofit支持Gson,進行數據轉換

原创 HttpUrlConnection使用

在Android開發中網絡請求是最常用的操作之一, Android SDK中對HTTP(超文本傳輸協議)也提供了很好的支持,這裏包括兩種接口: 1、標準Java接口(java.NET) —-HttpURLConnection,可以

原创 Gson 2.8.5源碼解析(一)

文章目錄序列化反序列化TypeAdapter的獲取Factory的來源ReflectiveTypeAdapterFactory序列化、反序列化總結 序列化 將java對象,轉換爲Json格式的字符串 Gson gson = new

原创 Android自定義View——遙控器按鈕

效果圖: 原理: onSizeChanged拿到控件寬高,進行path和region的計算(此處,path和region的座標值都是以viewWidth/2,viewHeight/2爲座標原點進行計算的) 畫布平移,繪製

原创 Android 類加載機制(API27)

JVM加載的是class文件,系統提供的類加載器(BootStrapClassLoader、ExtensionClassLoader、ApplicationClassLoader) 安卓虛擬機加載的是dex文件,系統提供的

原创 關於靜態域,靜態方法,構造函數的執行順序探討

基類 public class Animal { //getClass()得到當前調用對象的類對象,Dog,getSuperClass()返回Animal類對象 private String Tag = getClass

原创 8皇后問題,92種可能(java 回溯)看不懂算我輸系列

代碼比較少,幾乎一比一的註釋,可以多看兩遍,debug試試。 public class Solution0812 { public static void main(String[] args) {

原创 okDownload1.0.5源碼分析(斷點續傳)

文章目錄okDownload引入和使用源碼解析構建DownloadTask並執行OkDownload統籌調度DownloadDispatcher 同步、異步任務調度構建DownloadCall執行下載請求是否支持斷點續傳重定向的考

原创 冷啓動視覺優化

文章目錄指定劉海屏顯示模式 定義主題theme theme配置相關屬性 支持延伸到劉海屏&沉浸式佈局 drawable設計爲layer-list方式 AndroidManifest定義theme <activity

原创 仿八大行星繞太陽3D旋轉效果

android實現八大行星繞太陽3D旋轉效果 仿上面效果,採用kotlin實現,邏輯要簡單些,註釋在源碼中,一看就懂 <com.example.androidxdemo.star.StarGroupView an