原创 SparseArray源碼淺析

前言 最近有小夥伴去面試了,在羣裏分享的面試題有一道是關於SparseArray的,本來是不想看的o(╥﹏╥)o,沒想到是個面試題,那沒辦法只能看看了。 概述 本文還是跟前面分析HashMap、LruChache的方式一樣分別介紹構造

原创 Android 手動實現熱更新

前言 在上篇Android ClassLoader淺析中我們分析了安卓ClassLoader和熱更新的原理,這篇我們在上篇熱更新分析的基礎上寫個簡單的demo實踐一下。 概述 我們先回顧下熱更新的原理 PathClassLoader是

原创 Android ClassLoader淺析

前言 最近在看Tinker的原理,發現核心是通過ClassLoader做的,由於之前也從未接觸過ClassLoader趁着上週末看了安卓ClassLoader相關源碼,這裏分享一發安卓的ClassLoader和熱更新的實現原理。 Cl

原创 HashMap源碼解析(JDK8)

前言 這段時間有空,專門填補了下基礎,把常用的ArrayList、LinkedList、HashMap、LinkedHashMap、LruCache源碼看了一遍,List相對比較簡單就不單獨介紹了,Map準備用兩篇的篇幅,分別介紹Ha

原创 LruCache源碼解析

前言 本篇將介紹LruCache,而LruCache是用LinkedHashMap實現的,LinkedHashMap繼承HashMap所以沒看過HashMap的先看下我另外篇博文HashMap源碼解析(JDK8)再來看本篇。 接下來是

原创 關於Android MvvM的一些體會

前言 由於我司項目較老有很多歷史包袱代碼結構也比較混亂,需求複雜的頁面動輒activity中1000多行,看着很是頭疼,於是趁着加班提前做完需求餘下的時間學習了mvvm對項目部分功能進行了改造,目前已經使用3個版本了,本篇博文分享下

原创 讓你不再俱怕Fragment State Loss

讓你不再俱怕Fragment State Loss 原文鏈接http://toughcoder.net/blog/2016/11/28/fear-android-fragment-state-loss-no-more/ 使用過Fragm

原创 WebSocket安卓客戶端實現詳解(二)--客戶端發送請求

WebSocket安卓客戶端實現詳解(二)–客戶端發送請求 本篇接着上一篇講解WebSocket客戶端發送請求和服務端主動通知消息,還沒看過第一篇的小夥伴,這裏附上第一篇鏈接WebSocket安卓客戶端實現詳解(一)–連接建立與重連. 本

原创 IPC(中)-進程間通訊方式詳解

IPC(中) 1 Android中IPC方式 在第一篇IPC(上)中我們已經介紹了IPC的基礎知識:序列化和Binder,本篇將詳細介紹各種跨進程通訊方式.具體有如下幾種: Intent中extras傳遞 共享文件 Binder Co

原创 rxjava操作符結合使用場景簡介

rxjava操作符結合使用場景簡介 前言 本文將通過實際的例子來介紹rx相關的操作符,如果對rxjava還不熟悉的同學請先查看rxjava相關基礎姿勢再來查看本文 準備 本文依賴rxjava版本如下 implementation

原创 WebSocket安卓客戶端實現詳解(三)--服務端主動通知

WebSocket安卓客戶端實現詳解(三)–服務端主動通知 本篇依舊是接着上一篇繼續擴展,還沒看過之前博客的小夥伴,這裏附上前幾篇地址 WebSocket安卓客戶端實現詳解(一)–連接建立與重連 WebSocket安卓客戶端實現詳解(二

原创 Thread->線程池

前言Callable與Future 在介紹線程池前,我們先介紹下Callable與Future因爲等會封裝異步任務會用到.而異步任務Runnable相信都在熟悉不過了,Callable與Runnable類似,但Callable有返回值.

原创 泛型(二)->擦除&擦除帶來的問題

泛型(二)->擦除&擦除帶來的問題 本篇首先介紹泛型的擦除,然後圍繞泛型擦除所帶來的問題進行精確打擊,話不多說,我們直接開始正文. 文中很多例子都會用到Pair這個對象,這裏統一聲明. public class Pair<T> {

原创 Android6.0權限管理

臨近放假了時間比較充裕,就琢磨着乾點啥,想來想去6.0運行時權限一直沒弄過而且項目也總有一天要升級的,既然這樣,那就趁熱來一發吧 那麼爲了學到原滋原味的6.0權限,官方文檔是第一選擇,這裏附上鍊接https://developer.a

原创 IPC(上)-多進程入門

1 IPC介紹 既然是IPC的開篇那麼先介紹下IPC的定義 IPC:進程間通信或者跨進程通信,即進程間交換數據的過程. 說到進程,那麼需要了解下什麼是進程.什麼是線程,按操作系統描述,線程是CPU調度的最小單元,同時線程是一種有限的系