原创 踩坑子Module引用aar

主module會引用子module,如下所示: 子module則依賴一個aar: 這樣相當於主module間接的依賴着aar,但是這樣運行會報錯: 提示找不到aar,解決方法如下: Demo Demo地址

原创 LeetCode【位運算】371. 兩整數之和

不使用運算符 + 和 - ​​​​​​​,計算兩整數 ​​​​​​​a 、b ​​​​​​​之和。 示例 1: 輸入: a = 1, b = 2 輸出: 3 示例 2: 輸入: a = -2, b = 3 輸出: 1 解法 cla

原创 位運算基礎知識彙總

1.運算符 2.運算符說明 2.1與(&) 同爲1相與爲1,其他情況爲0 運算規則:0&0=0; 0&1=0; 1&0=0; 1&1=1; 2.2或(|) 只要有一個值爲1,結果爲1 運算規則:0|0=0; 0|1

原创 StringBuffer、StringBuilder區別以及Synchronized原理

1.爲什麼StringBuffer是線程安全的StringBuilder是線程不安全的 這裏我只是列舉了幾個方法來對比,其他方法對比可以查看兩個類的源碼,從上面的截圖可以看到StringBuffer實現線程安全是通過Synch

原创 架構組件專欄 | ViewModel深入淺出

本文是架構組件專欄的開篇文章,因此在文章開頭我打算花些筆墨談談什麼是架構組件以及我爲什麼打算寫這個專欄。 谷歌官方爲了幫助開發者加速開發並構建高質量的應用,推出了Jetpack。正如上圖你所看到的,Jetpack包含了四個庫,而

原创 空杯心態,重學Android——構建知識體系

Activity專題 Fragment專題 Service專題 BrocastReceiver專題 View體系 自定義View 高級UI 系統機制原理 架構組件 性能優化 Gradle專題 Java基礎 RxJava專題 組件化

原创 Activity啓動流程詳解

看到上面的標記A: 看到標記C處,這個IApplicationThread是什麼呢?這個我在Activity生命週期回調是如何被回調的?有解釋過,這裏我簡單的解釋一下:這個IApplicationThread是Android應

原创 Android面試闖關——Activity(持續更新中)

1.什麼是Activity Activity是一個可以與用戶交互的組件,從功能上來說,它作爲應用程序的界面框架,負責動態加載各種用戶界面視圖,實現底層的消息傳遞等,不能簡單地把Activity簡單視爲一個屏幕,而應把它看作一個功能強

原创 LruCache原理

創建LruCache對象,重寫其中的sizeOf方法: 然後看看LruCache內部長啥樣子??? 看到A處,這裏有個LinkedHashMap,這個是專門來存要緩存的對象,這個數據結構有個特點即鏈表+HashMap,HashMa

原创 Volley源碼分析

下面是Volley的基本用法: 看到上圖的第一步,創建請求隊列,我們跟進去看看具體情況: 接下去看上圖標記A處: 看到上圖的B處: 創建了請求隊列對象,然後調用了start方法,進去看下start方法如何工作吧: 看上圖D處:

原创 源碼分析SharePreferences的apply與commit的區別

apply與commit有什麼區別 還是從源碼分析來說明問題: 接上圖標記B1處,看下: 所以這個handler發送消息後,handleMessage會被調用看下: 上圖提到的Runnable對象是哪個呢??就是enqu

原创 源碼分析Handler機制

看下面例子: 在子線程發送一個消息,然後在主線程街道這個消息處理,這個消息是如何從子線程切換到主線程的呢?首先跟蹤一下handler.sendMessage(new Message())如下: 從上面兩圖看輾轉來到sendMes

原创 換個角度理解Android的AIDL原理

本文行思路 本篇文章筆者談論的是android使用AIDL進行進程間通信原理,但本文不打算一上來就介紹如何使用AIDL,本文會先假設Android沒有提供AIDL我們應該如何“用自己的方式”實現IPC,介紹完這一點之後,本文再對比AIDL

原创 使用Scroller實現彈性滑動

scrollTo、scrollBy View內部爲了實現滑動提供了這兩個方法,但是使用這兩個方法滑動的效果是瞬間的不夠平滑,如何實現View的彈性滑動呢?這正是本博文討論的主題。另外這兩個函數滑動的是View的內容不是View本身。比如對

原创 帶你從源碼角度分析ViewGroup中事件分發流程

序言 這篇博文不是對事件分發機制全面的介紹,只是從源碼的角度分析ACTION_DOWN、ACTION_MOVE、ACTION_UP事件在ViewGroup中的分發邏輯,瞭解各個事件在ViewGroup的分發邏輯對理解、解決滑動衝突問題很有