原创 事件分發機制-InputEvent進入ViewGroup之前的流轉

文章目錄前言源碼探究事件監聽註冊InputChannel的初始化打開InputChannelAPP側InputChannelIMS側InputChannelInputEventReceiver的初始化小結輸入事件接收小結應用窗口事件派發隊列

原创 Glide v4 源碼淺析(2)-load方法與Registry說明

文章目錄簡述源碼分析RequestBuilder構建Registry註冊表補充說明簡述Glide圖片加載框架通過load方法設置數據源,本篇延續《Glide v4 源碼淺析(1)-with》中的例子,繼續分析在load方法中做了什麼操作。源

原创 LeakCanary2.3 核心原理淺析

文章目錄概述核心流程拆解源碼探究SDK自動初始化關於ContentProvider初始化AppWatcherInstallerInternalAppWatcher小結自動監測Android特定對象Activity的監測Fragment的監測

原创 AndroidX RecyclerView實踐-手寫卡片式佈局

文章目錄前言功能拆解代碼實現準備工作添加依賴MOCK數據創建適配器卡片佈局實現思路分析初始配置自定義LayoutManager手勢滑動移除實現思路分析自定義ItemTouchHelper.SimpleCallback點擊按鈕卡片飛出動畫實現

原创 AndroidX RecyclerView總結-ItemTouchHelper

概述RecyclerView不僅實現在有限窗口顯示大數據集,還支持對其中的item視圖進行Swipe(輕掃)和Drag(拖拽)操作,這可以藉助ItemTouchHelper輔助類輕鬆實現。基本使用關鍵代碼:// 1.創建ItemTouchH

原创 AndroidX RecyclerView總結-滑動處理

文章目錄概述源碼探究RecyclerView中的處理onInterceptTouchEvent滑動狀態onTouchEventscrollStepLinearLayoutManager中的處理updateLayoutStatefilloff

原创 AndroidX Fragment探究-狀態保存和恢復

文章目錄概述源碼探究狀態保存狀態恢復commit & commitAllowingStateLoss總結概述我們知道Activity提供了onSaveInstanceState和onRestoreInstanceState回調方法用於狀態保

原创 AndroidX Fragment探究-生命週期

文章目錄概述源碼探究Fragment的生命週期派發狀態常量值更新FragmentManagerImpl的生命週期狀態onCreateonStartonPostResumeonPauseonStoponDestroy小結更新Fragment的

原创 Activity啓動流程總結-生命週期

文章目錄前言源碼探究startActivitystartActivityAsUserstartActivityMayWaitstartActivityUncheckedresumeFocusedStackTopActivityLockedr

原创 Activity啓動流程總結-ActivityThread

文章目錄前言源碼探究入口函數mainattachattachApplicationbindApplicationmakeApplication總結前言對於Activity的啓動流程,從事Android開發的同學都很熟悉。這裏僅結合自己的理解

原创 Android常用Layout源碼總結—RelativeLayout

文章目錄前言RelativeLayout特點源碼探究構造函數初始化屬性設置兼容標記LayoutParams相對位置依賴關係圖節點Node依賴圖DependencyGraphonMeasure測量構建依賴關係圖輔助變量參數準備水平方向依賴約束

原创 手把手實現ScrollView+ViewPager+RecyclerView常規嵌套首頁佈局

文章目錄前言XML佈局一. SwipeRefreshLayout+頂部banner+RecyclerView二. SwipeRefreshLayout+頂部banner+ViewPager關於NestedScrollingParent2、N

原创 ViewGroup事件分發總結-多點觸摸事件拆分

文章目錄前言源碼探究MotionEvent說明獲取觸摸點索引獲取指定觸摸點ID獲取所有觸摸點ID獲取指定觸摸點位置座標拆分事件實際MotionEvent數據觸摸點索引和ID關係派發過程派發目標查找執行派發dispatchTransforme

原创 Android常用Layout源碼總結—LinearLayout

文章目錄前言LinearLayout特點源碼探究佈局屬性LayoutParamsonMeasure測量開始測量準備初始參數階段預測量階段補充測量階段測量尾聲階段onLayout佈局onDraw繪製總結前言通過學習Android官方Layou

原创 Android Architecture Components+MVVM+Androidx+kotlin APP開發實踐

文章目錄項目概述APP預覽源碼flutter版本項目概述藉助《玩Android》網站提供的開放API開發Android客戶端。項目全部遷移Androidx,使用kotlin語言開發,通過Android Architecture Compon