原创 DataBinding(一) 一、應用 DataBinding + LiveData 雙向監聽 二、原理分析

Android知識總結 一、應用 DataBinding + LiveData 雙向監聽 1.1、在build.gradle中配置 dataBinding { enabled = true } 1.2

原创 HashMap 一、前言 二、HashMap基礎 三、put 元素 四、轉換紅黑樹 五、HashMap擴容機制 六、獲取元素 (get) 七、移除元素 (remove)

Android知識總結 一、前言 隨着JDK(Java Developmet Kit)版本的更新,JDK1.8對HashMap底層的實現進行了優化,例如引入紅黑樹的數據結構和擴容的優化等。 HashMap:它根據鍵的hashCode值存儲

原创 Lifecycle 一、添加依賴 二、源碼講解 三、使用 四、關係圖

Android知識總結 一、添加依賴 1、非androidX項目引入: dependencies { //運行時 implementation "android.arch.lifecycle:runtime:1.1.1" // 編譯期

原创 Fragment(二) 一、生命週期調用流程 二、Fragment 三、提交任務

Android知識總結 注意:分析的是 androidx 一、生命週期調用流程 運用Fragment時,Activity 要繼承 FragmentActivity,我們先看FragmentActivity#onCreate fin

原创 ViewPager 一、測量 二、執行流程 三、Adapter 四、重寫 onMeasure 方法

Android知識總結 一、測量 1.1、onMeasure @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //設

原创 PKMS(二) 一、權限的分類 二、權限申請代碼 三、權限申請源碼流程 四、校驗權限流程 五、總結

Android知識總結 一、權限的分類 系統權限分爲兩類:正常權限 和 危險權限。 正常權限不會直接給用戶隱私權帶來風險。如果您的應用在其清單中列出了正常權限,系統將自動授予該權限。 危險權限會授予應用訪問用戶機密數據的權限。如果您的

原创 RecyclerView(三) 一、預加載流程 二、代碼展示

Android知識總結 一、預加載流程 有RecyclerView.onTouchEvent的ACTION_MOVE事件進入分析 GapWorker mGapWorker; public boolean onTouchEvent(Moti

原创 Activity 啓動流程(一) 一、Activity的啓動過程 二、判斷Activity是否註冊

一、Activity的啓動過程 ActivityManagerService:activity的啓動以及生命週期都統一由ActivityManagerService管理,而ActivityManagerService處於SystemSe

原创 RecyclerView(二) 一、緩存 二、緩存 mCachedViews

一、緩存 二、緩存 mCachedViews 執行LinearLayoutManager.onLayoutChildren方法 public void onLayoutChildren(RecyclerView.Recycler recy

原创 事件處理機制(二) 一、在ViewGroup 事件分發 二、在View中 事件處理 三、onTouch 和 onClick 執行的位置和關係

Android知識總結 一、在ViewGroup 事件分發 ViewGroup#dispatchTouchEvent 分發事件 public boolean dispatchTouchEvent(MotionEvent ev) {

原创 事件處理機制(一) 一、事件接收流程 二、View繼承關係調用

Android知識總結 一、事件接收流程 首先我們在ViewRootImpl#setView創建View的接收事件 public void setView(View view, WindowManager.LayoutParams

原创 View 繪製流程(二) 一、測量 二、View 解析 三、UI 刷新

Android知識總結 一、測量 private void performTraversals() { //這裏的mView在setView中被賦值爲DecorView final View hos

原创 View 繪製流程(一) 一、Activity的onResume流程 二、View 添加流程 三ViewRootImpl

Android知識總結 一、Activity的onResume流程 在ResumeActivityItem的execute方法執行 public void execute(ClientTransactionHandler clien

原创 網絡協議 一、計算機網絡體系結構 二、地址和端口號 二、TCP概述

一、計算機網絡體系結構 1.1、OSI七層模型 開放系統互連參考模型 (Open System Interconnect 簡稱OSI)是國際標準化組織(ISO)和國際電報電話諮詢委員會(CCITT)聯合制定的開放系統互連參考模型,爲開放式互

原创 動態換膚(一) 一、系統實例化View的流程 二、Factory 的使用 三、AssetManager 創建流程 四、資源加載流程

Android知識總結 一、系統實例化View的流程 我們進入AppCompatActivity中的onCreate方法: @Override protected void onCreate(@Nullable Bundl