博客 / 列表

認真的紫菜 - Android經典面試題之Glide的緩存大揭秘

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 Glide緩存 關聯類:Engine、LruResourceCache、LruCache、ActiveResources ActiveResources:弱引用緩存池 @VisibleForTesting final MapKey, ResourceWeakReference a

glide , 圖片 , Android , JAVA , 程序員

認真的紫菜 - Android面試題經典之Glide取消加載以及線程池優化

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 Glide通過生命週期取消加載 生命週期回調過程 onStop ---RequestManager.onStop --RequestTracker.pauseRequest -- SingleRequest.pause -- SingleReques

glide , 圖片 , Android , JAVA , 程序員

認真的紫菜 - Android面試題之Kotlin協程一文搞定

定義 協程基於線程,是輕量級的線程 作用 處理耗時任務,這種任務常常會阻塞主線程 保證主線程安全,即確保安全地從主線程調用任何suspend函數 特點 讓異步邏輯同步化 最核心的點就是,函數或者一段程序能夠被掛起,稍後再在掛起得位置恢復 掛起函數 使用suspend關鍵字修飾的函數 掛起函數只能在協程體內或其他掛起函數內調用 掛起和阻塞的區別 掛起不會阻塞主線程,主線程

Kotlin , 面試 , 協程 , Android

認真的紫菜 - 為什麼建議大家加快擁抱Kotlin,説點不一樣的

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 Kotlin自2017年起被Google正式宣佈為Android的編程語言之一,隨後在2019年進一步宣佈Kotlin為Android的首選語言,普及速度逐漸加快,越來越多的公司和項目在引入Kotlin。 那Kotlin有哪些特點,為何建議大家要加快擁抱Kotlin的速度呢? 方

Kotlin , swift , 協程 , Android , 程序員

認真的紫菜 - Android面試題之Kotlin Jetpack組件LifecycleScope

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 在Kotlin中,LifecycleScope是Android Jetpack架構組件的一部分,主要用於簡化與生命週期相關的協程管理。 它屬於androidx.lifecycle:lifecycle-runtime-ktx庫的一部分,通過結合使用 LifecycleOwne

Kotlin , jetpack , 面試 , 協程 , Android

認真的紫菜 - Kotlin協程的取消機制:深入理解和優雅實現

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 Kotlin協程提供了一種高效的方式來處理併發和異步任務。在協程的生命週期管理中,取消協程是一項重要的操作。本文將深入探討Kotlin協程的取消機制,介紹除了直接使用Job的cancel方法之外的其他方式,並提供優雅的實現策略。 1. 協程取消的基本概念 在Kotlin協程中,取

Kotlin , 面試 , 協程 , Android , JAVA

認真的紫菜 - Kotlin小技巧之用Transformations.map方法轉換LiveData

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 在Kotlin中,transformations.map是用於將一個 LiveData 的數據進行轉換的拓展函數,它屬於 Android Architecture Components 中的 LiveData 轉換部分。這個函數允許你在 LiveData 的數據發生變化時,自動地

Kotlin , 面試 , mvvm , Android , 程序員

認真的紫菜 - Android Kotlin中使用 LiveData、ViewModel快速實現MVVM模式

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 使用 Kotlin 實現 MVVM(Model-View-ViewModel)模式是開發 Android 應用程序的一種常見架構方式。MVVM 模式將應用程序的 UI 邏輯和業務邏輯分離,使用 LiveData、ViewModel 和 DataBinding 可以使代碼更加模塊化

Kotlin , 面試 , mvvm , Android , 程序員

認真的紫菜 - Android面試題之Kotlin協程併發問題和互斥鎖

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 Kotlin 語言提供了多種機制來處理併發和同步,其中包括高層次和低層次的工具。對於常規的併發任務,可以利用 Kotlin 協程提供的結構化併發方式。而對於需要更低層次的鎖定機制,可以使用 Mutex 來實現對共享資源的線程安全訪問。 Kotlin 協程與併發(Coroutine

Kotlin , 協程 , Android , 併發 , 併發編程

認真的紫菜 - 一個Android App最少有幾個線程?實現多線程的方式有哪些?

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 多線程編程是Android應用開發中非常重要的一個環節,可以有效地提升應用的性能和用户體驗。下面是對Android中多線程相關內容的詳細介紹,包括app最少有幾個線程。 1. 基本概念 主線程(UI線程): Android應用啓動時,操作系統會啓動一個主線程,主線程負責更新U

Kotlin , 面試 , Android , 多線程 , JAVA

認真的紫菜 - Android經典面試題之組件化原理、優缺點、實現方法?

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 組件化的原理 組件化是一種軟件架構設計方法,它將複雜的應用程序分解為更小、更易於管理的模塊或組件。在Android開發中,組件化允許開發者將應用分割成獨立的、可複用的模塊,每個模塊封裝特定的功能。 組件化的優點 提高開發效率:團隊成員可以並行開發不同的組件,減少等待時間。

Kotlin , 面試 , 面試問題 , Android , JAVA

認真的紫菜 - Android經典面試題之Kotlin中Lambda表達式有哪些用法

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 Kotlin的lambda表達式是一種簡明且靈活的語法結構,用於表示函數類型的匿名函數(即沒有名字的函數)。Lambda表達式廣泛應用於Kotlin的集合操作、函數式編程以及許多標準庫函數中。 Lambda表達式語法 一個典型的Kotlin lambda表達式的基本語法如下: {

Kotlin , 匿名函數 , lambda , Android , 程序員

認真的紫菜 - Android經典面試題之Kotlin中Lambda表達式和匿名函數的區別

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 在Kotlin中,匿名函數和lambda表達式都是用於表示函數類型的匿名函數(即沒有名字的函數)。雖然它們在某些情況下可以互換使用,但是它們在語法和使用場景上存在一些細微的差別。 匿名函數 匿名函數使用fun關鍵字來定義,語法更接近於普通函數聲明。匿名函數可以用於需要更詳細控制流

Kotlin , 匿名函數 , 面試 , Android , 程序員

認真的紫菜 - Android面試題之kotlin中怎麼限制一個函數參數的取值範圍和取值類型等

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 在Kotlin中,限制函數參數的取值範圍和取值類型可以通過多種方式實現,包括使用類型系統、條件檢查以及自定義類型等。 以下是一些常見的方法: 1. 使用類型系統限制參數類型 Kotlin的類型系統允許你通過參數類型限制參數可以接受的值。例如,如果只想接受某些枚舉值作為參數,可以使

Kotlin , 面試 , Android , 泛型 , 程序員