原创 Jetpack + 協程的玩安卓客戶端

在此非常感謝鴻洋大神提供的 WanAndroid API 該項目基於「玩 Android 接口」接口,整體採用 MVVM, Android Jectpack, Retrofit, Kotlin 協程進行編寫。 是由 kukyxs 和 T

原创 Android Jetpack成員之一:DataBinding

本篇文章將從以下幾點介紹 DataBinding: 環境配置 在 Activity 中使用 DataBinding 在 Fragment 中使用 DataBinding 在 RecyclerView 中使用 DataBinding

原创 KTX - 更簡潔的開發Android

介紹 如果你已經在使用 Kotlin 開發 Android 了,相信你深深的體會到了 Kotlin 的簡潔、高效。不止如此,Google 爲了讓開發者更好的利用 Kotlin 語言能力(例如擴展函數/屬性、lambda、命名參數和參數默認值

原创 圖解二叉樹的創建和遍歷

二叉樹定義:二叉樹是每個結點最多有兩個子樹的樹結構。 二叉樹的特點: 每個節點最多有兩個子節點,即二叉樹不存在大於2的節點; 二叉樹的子樹有左右之分,其子樹的次序不能顛倒。 二叉樹的結構: 二叉樹的性質: 在非空二叉樹中,

原创 WanAndroid客戶端 - Kotlin版

使用Kotlin語言開發的WanAndroid客戶端,優先採用了Google推薦的 AndroidX 庫以及流行的 RxJava、Retrofit、OkHttp 等開源技術。 本項目使用的所有接口API都是來自:wanandroid 看完之

原创 圖解二叉堆

二叉堆本質上其實就是一種完全二叉樹(不熟悉二叉樹的可以看前面的文章:圖解二叉樹),它分爲兩種類型: 最大堆:堆中任何一個父節點的值都大於等於它左右子節點的值 最小堆:顯然和最大堆相反,堆中任何一個父節點的值都小於等於它左右子

原创 圖解二叉樹

二叉樹定義:二叉樹是每個結點最多有兩個子樹的樹結構。 二叉樹的特點: 每個節點最多有兩個子節點,即二叉樹不存在大於2的節點; 二叉樹的子樹有左右之分,其子樹的次序不能顛倒。 二叉樹的結構: 二叉樹的性質: 在非空二叉樹中,第 i 層

原创 動手實現基礎的ArrayList和LinkedList

基礎 ArrayList:順序列表,它是 Array 的增強版,也稱動態數組,提供了動態的增加和減少數組,如果你閱讀過它的源碼,你會發現它內部就是採用數組來存儲數據,並且動態擴容數組的長度,在日常開發中被廣泛使用。 LinkedLis

原创 動手實現基於數組的棧和隊列

基礎知識 棧 棧(stack)又名堆棧,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。 棧是一種後進先出(LIFO)的數據結構。 隊列 隊列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪

原创 Android源碼系列六:事件分發機制

基礎 在分析事件分發之前,我們先來了解三個相關的重要知識點: 事件分發的對象是什麼? 誰在分發? 依賴於什麼分發? 我們先把這三個問題弄清楚了再來看具體的原理: 事件分發的對象就是我們的觸摸屏幕產生的 Touch 事件。最常見的事件

原创 Android源碼系列五:AsyncTask源碼剖析

AsyncTask is designed to be a helper class around Thread and Handler and does not constitute a generic threading framew

原创 Android源碼系列三:Volley源碼剖析

Volley is an HTTP library that makes networking for Android apps easier and most importantly, faster. Volley是Google在20

原创 Android源碼系列一:Handler源碼剖析

利用Handler實現異步的完整操作 // 創建一個Handler的子類,實現handlerMessage()方法 inner class MyHandler : Handler() { override fun handleMes

原创 Android源碼系列四:線程池源碼剖析

線程池(英語:thread pool):一種線程使用模式。線程過多會帶來調度開銷,進而影響緩存局部性和整體性能。而線程池維護着多個線程,等待着監督管理者分配可併發執行的任務。這避免了在處理短時間任務時創建與銷燬線程的代價。線程池不僅能夠保

原创 Android源碼系列二:HandlerThread和IntentService源碼剖析

在分析了 Handler源碼 之後,我們緊接着加入了相關聯的 HandlerThread 和 IntentService 的源碼剖析。 HandlerThread 它是 Thread 的子類,並且自帶 Looper 光環 如何使用: