原创 2022年個人年度總結 1. Android學習之旅 2. 總結2022 3. 展望2023

  逝者如斯夫,不捨晝夜!當我們在用一隻手在依依不捨的告別2022年,另外一隻手也在翹首以盼的迎着2023年。一年的時間太長了,我幾乎忘記去年這個時候在幹嘛,一年的時間也太短了,我覺得去年這個時候卻恍如昨日。今天是2022年的最後一天,我先

原创 Jetpack 源碼分析(七) - 手把手教你認識Navigation(上) 1. 概述 2. 基本使用 3. 基本結構 4. NavInflater解析過程 5. 總結

  從今天開始,我正式開始分析Navigation庫的基本使用和實現原理。其實本來沒打算學習這個庫,但是最近組內在整理頁面之間的跳轉流程,使其能夠組件化。而恰好的是,我們業務的頁面跳轉幾乎都是以單Activity + Fragment的方式

原创 2021年個人年度總結 1. 總結2021 2. 展望2022

  時無重至,華不再陽。2021年已經接近尾聲,2022年馬上就要嶄露頭角,我先在這裏提前祝大家新年快樂!今天是2021年的最後一天,在此我打算寫一篇文章總結一下自己在2021年一年時光裏面的歷程,同時還對2022年做一個規劃。總結過往,展

原创 Android - 手把手教你寫出一個支持嵌套滑動的View 1. 說說嵌套滑動 2. 準備工作 3. 支持單指滑動 4. 支持多指滑動 5. 支持Fling滑動 6. 總結

  嵌套滑動機制,想必大家都不陌生,當我們在使用CoordinatorLayout + AppBarLayout框架設計界面,嵌套滑動就顯得尤爲地重要。CoordinatorLayout成爲協調佈局,目的是協調多個佈局的聯動,聯動就會涉及多

原创 從一次實際經歷說說Java類初始化順序中容易忽略的點 1. 說說坑? 2. 聊聊Kotlin?

  我們從第一天學習Java開始,就對Java的類初始化順序牢記於心。但是在實際開發過程中,似乎很難能接觸這一部分的應用。在這之前,我也認爲它只是面試中八股文而已,直到最近踩了一個坑,這才發現它是多麼的重要。 1. 說說坑?   地球人都知

原创 從measure角度來優化ConstraintLayout 1. 實現方案 2.揭露原理 3. 總結

  熟悉ConstraintLayout的同學都知道ConstraintLayout內部的子View最少會measure兩次,一旦內部有某些View的measure階段比較耗時,那麼measure多次就會把這個耗時問題放大。在我們的項目中,

原创 從一次實際經歷來說說IdleHandler的坑 1. 概述 2. 說說坑在哪裏? 3. 怎麼排查問題的原因?

  最近樓主都在做性能優化相關的事,性能優化一般都會跟IdleHandler打交道。本文將介紹,樓主在實際開發過程中使用IdleHandler遇到的坑,主要包括自定義View以及View的動畫。   本文參考資料: View 動畫 An

原创 Jetpack 源碼分析(五) - Paging3源碼分析(上) 1. 概述 2. 基本使用 3. 基本架構 4. 首次加載 5. 加載更多 6. Drop操作 7. 總結

  Google爸爸在今年(2020年)的Jetpack庫裏面更新paging組件,推出了Paing3。按照Google爸爸文檔的描述,Paing3完全使用的是kotlin,其中還包括了kotlin 的很多特性,比如說協程,Flow和Cha

原创 2020年個人年度總結 1. 總結2020 2. 展望2021

  年難留,時易損,2020年已經過去,2021年已經到來,我在這裏祝大家新年快樂!今天是2021年的第一天,在此我打算寫一篇文章來總結一下自己在2020年一年時光裏的歷程,同時還在對2021年做一個計劃。總結過往,展望未來。 1. 總結2

原创 Jetpack 源碼分析(四) - Paging源碼分析 1. 概述 2. 基本架構 3.數據的加載 4. PagedList的Config配置 5. 總結

  距離上一篇Jetpack源碼分析的文章已經兩個月,時間間隔確實有點長。最近,感覺自己的學習積極性不那麼的高,看Paging的源碼也是斷斷續續的。時至今日,纔算是完成對Paging的源碼學習。今天我們就來學習Paging的實現原理。   

原创 Java 算法 - Guess Number Higher or Lower II(動態規劃和分治法) 題意 樣例 補充 1. 解題思路 2. 動態規劃 3. 分支法

  今天樓主在LeetCode上面刷到了一道動態規劃的題,感覺有必要的記錄下來。 題意 We are playing the Guess Game. The game is as follows: I pick a number from

原创 Java 算法 - Can I Win(記憶化搜索)

  今天在LeetCode上刷到一道題,這道題的解決方法是我之前沒有遇到,因此記錄一下。 題意 In the "100 game," two players take turns adding, to a running total, an

原创 2019年個人年度總結 1. 總結2019

  一年的時間如白駒過隙,2019年馬上就要過去,嶄新的2020年即將到來,在此提前祝大家新年快樂!今天也是2019年最後一個週六,在此我打算寫一篇文章來記錄2019年所做的事,總結過往,展望未來。 1. 總結2019   在寫這篇文章之前

原创 mvvm - mvvm框架的入門使用 1. mvvm的分層 2. 基本使用 3. 結語

  歷時4個月多,mvvm的第一個版本總算開發完成,心中的石頭也算是落下了。想起去年的國慶節,7天假期沒有邁出家門一步,抱着一本《kotlin 實戰》書死磕,每每磕到深夜,在七天裏面算是對kotlin這門語言入門了。學習了kotlin之後,

原创 git - Windows 上 git 中文亂碼 1. 配置git-bash 2. 命令執行 3. 環境變量的配置

  最近樓主在window上配置git,發現在使用git命令時,中文字符總是亂碼,沒辦法就百度了一把,網上大多數教程都不可用(不知道爲什麼),然後踩了無數的坑,總算解決了。如下記錄的便是我的解決辦法。 1. 配置git-bash   打開g