原创 Android源碼探究:Activity啓動流程完全解析(上) 概述 行文脈絡 時序圖 主流程分析

概述 本文主要內容是從源碼角度進行Activity啓動流程的分析。由於整個啓動的過程非常長並且代碼非常多,同時受限於筆者的水平,所以本文不會細緻到解釋每一行的代碼的具體作用,只能抽取處關鍵部分的代碼就主體流程進行分析,如有錯誤之處,希望批評

原创 經典動態規劃問題:最短編輯距離算法的原理及實現 編輯距離的定義 Levenshtein 算法原理 圖解動態規劃求最短編輯距離過程 代碼實現

編輯距離的定義 編輯距離(Edit Distance)最常用的定義就是Levenstein距離,是由俄國科學家Vladimir Levenshtein於1965年提出的,所以編輯距離一般又稱Levenshtein距離。它主要作用是測量兩個字

原创 Android源碼探究:Activity啓動流程完全解析(下) 概述 主流程分析

概述 本文的內容緊接着上一篇文章Android源碼探究:Activity啓動流程完全解析(上),繼續介紹Activity的啓動流程。 主流程分析 8-1、ActivityManagerService#activityPaused(token

原创 Picasso源碼完全解析——學習其優秀思想 前言 幾個重要的類 加載圖片流程的詳細分析 小結 思路借鑑

前言 圖片加載框架Picasso相信大家都已經用過很多次了,對它們的使用方法也早就熟稔於心了,那麼本文就Picasso的源碼進行剖析,學習設計者的優秀的代碼設計理念和方法。 幾個重要的類 在源碼解析開始之前,筆者認爲有必要對Picasso的

原创 Android源碼探究:Android Native層消息機制完全解析 前言 Native層的消息機制 總結

前言 前文詳細分析了Java層的消息循環機制的工作原理,在分析MessageQueue的過程中,我們遇到了nativePollOnce()和nativeWake()方法的調用,下面我們就深入到Native層的消息機制來看看它背後的運作原理。

原创 Java源碼探究:ThreadLocal工作原理完全解析 前言 簡單的例子 源碼分析 總結

前言 ThreadLocal是一個平時Android開發中並不常見的類,正因爲少接觸,所以對它的瞭解並不多。但實際上,它對我們常用的Handler通信機制起着重要的支撐作用。ThreadLocal,顧名思義,線程封閉的變量,也即該變量的作用

原创 Android源碼探究:Android Java層消息機制完全解析 概述 Java層的消息機制 總結

概述 Android的消息機制對我們開發者來說應該是很熟悉的,其中最常見的用法就是利用Handler切換到主線程然後更新UI,消息機制的用法當然不僅僅侷限於這個場景,但總的來說,消息機制解決了線程間和線程內的消息通信的問題。Android消

原创 字符串相似度比較算法:Jaro–Winkler similarity的原理及實現 前言 算法定義 圖解Jaro-Winkler similarity求解過程 代碼實現 進一步探究

前言 在前面的文章中,筆者有對編輯距離以及Levenshtein距離進行詳細的說明,其實levenshtein距離是編輯距離的其中一種定義,本文所說的Jaro距離是編輯距離的另外一種定義,它也是對兩個字符串的相似度進行衡量,以得出兩字符串的

原创 Android源碼探究:Android Native層消息機制完全解析

前言 前文詳細分析了Java層的消息循環機制的工作原理,在分析MessageQueue的過程中,我們遇到了nativePollOnce()和nativeWake()方法的調用,下面我們就深入到Native層的消息機制來看看它背後的運作原理。

原创 Android源碼探究:Android Java層消息機制完全解析

概述 Android的消息機制對我們開發者來說應該是很熟悉的,其中最常見的用法就是利用Handler切換到主線程然後更新UI,消息機制的用法當然不僅僅侷限於這個場景,但總的來說,消息機制解決了線程間和線程內的消息通信的問題。Android消

原创 Android源碼探究:Activity啓動流程完全解析(下)

概述 本文的內容緊接着上一篇文章Android源碼探究:Activity啓動流程完全解析(上),繼續介紹Activity的啓動流程。 主流程分析 8-1、ActivityManagerService#activityPaused(token

原创 Android源碼探究:Activity啓動流程完全解析(上)

概述 本文主要內容是從源碼角度進行Activity啓動流程的分析。由於整個啓動的過程非常長並且代碼非常多,同時受限於筆者的水平,所以本文不會細緻到解釋每一行的代碼的具體作用,只能抽取處關鍵部分的代碼就主體流程進行分析,如有錯誤之處,希望批評

原创 淺談Android實現圓形頭像效果的幾種思路和方法

前言 我們在開發的過程中,經常會遇到如下的需求:在界面上展示圓形的用戶頭像,其實這個需求很普遍並且實現難度也不大,網上也有很多相關的教程,那麼本文主要來對幾種實現思路和方法進行一次總結,方便以後需要時可以隨時查閱。 兩個核心方法 對於圓形頭

原创 Java源碼探究:ThreadLocal工作原理完全解析

前言 ThreadLocal是一個平時Android開發中並不常見的類,正因爲少接觸,所以對它的瞭解並不多。但實際上,它對我們常用的Handler通信機制起着重要的支撐作用。ThreadLocal,顧名思義,線程封閉的變量,也即該變量的作用

原创 字符串相似度比較算法:Jaro–Winkler similarity的原理及實現

前言 在前面的文章中,筆者有對編輯距離以及Levenshtein距離進行詳細的說明,其實levenshtein距離是編輯距離的其中一種定義,本文所說的Jaro距離是編輯距離的另外一種定義,它也是對兩個字符串的相似度進行衡量,以得出兩字符串的