原创 Jetpack-ViewModel原理解析

一、ViewModel介紹 ViewModel 作爲 Jetpack 組件庫首屈一指的高頻組件之一,ViewModel 類旨在以注重生命週期的方式存儲和管理界面相關的數據。ViewModel 類讓數據可在發生屏幕旋轉等配置更改後繼續留存。

原创 Jetpack-LiveData原理解析

前言 LiveData 組件是 Jetpack 推出的基於觀察者的消息訂閱/分發組件,具有宿主(Activity、Fragment)生命週期感知能力,這種感知能力可確保 LiveData 僅分發消息給處於活躍狀態的觀察者,即只有處於活躍狀態

原创 Jetpack-Lifecycle 原理解析

介紹 Lifecycle 它是 Jetpack 組件庫的的核心基礎 ,具備宿主生命週期感知能力的組件。它能持有組件(如 Activity 或 Fragment)生命週期狀態的信息,並且允許其他觀察者監聽宿主的狀態,大大減少了業務代碼發生內存

原创 Android源碼分析之setContentView()

前言: 當做Android開發一段時間後,對於瞭解熟悉系統源碼是一個無法逃避的劫,因爲不管在以後找工作面試,還是提升自己的技術水平都能起着(高逼格)不小的作用,這裏就從Activity的setContentView() 開始,一點一點的揭開

原创 自定義View之SwitchView

工作(我)太(太)忙(懶) 太長時間沒有寫博客了,再不寫今年一晃就要過去了,順便也總結下今年工作的一些技術點吧。這篇先從一個簡單的自定義控件開始吧 先看最終效果圖: 這是一個性別選擇的控件 本質上是一個Switch類似的控件 需要滿足的需

原创 MAC ApkTool,dex2jar,JD-GUI 反編譯APK

ApkTool下載:https://ibotpeaches.github.io/Apktool/install/ 下載安裝步驟: 注意點:在操作過程中可能會報錯權限相關的問題,需要對2個文件進行取消權限操作 cd /usr/local/b

原创 高仿淘票票頭像動畫

當pm對上一版的馬蜂窩頭像泡泡動畫審美疲勞後,這次又覺得淘票票的頭像動畫好看,然後。。。 先看看效果吧! 效果原理分析 佈局排列 這裏可以同自定義View 或繼承ViewGroup去實現 不過自定義View複雜度會高很多 我這

原创 仿百度外賣水波紋

套路一: 無圖無真相 這裏要感謝兩位大神的博客 參照很多 Android仿百度貼吧客戶端Loading小球 仿百度外賣的酷炫水波紋效果及解析 下面的4個小球完全參照 Android仿百度貼吧客戶端Loading小球 實現 有

原创 Android源碼setContentView()之Material Design適配

前言: 在上篇文章中已經對普通Activity的setContentView()是如何將xml文件解析成view加載到App內存中進行了分析,但是從Android 5.0後提出的新概念Material Design(需要科學上網)以及後面的

原创 高仿馬蜂窩旅遊頭像泡泡動畫

當pm制定完下一版本需求打開馬蜂窩旅遊app準備出去嗨一圈的時候 看到了馬蜂窩旅遊app的一個用戶頭像動畫後。。。(=@__@=) 先看看效果圖 效果分析: 涉及到有多個view在做動畫操作 這裏需要繼承FrameLayout來左父佈

原创 Android源碼之Activity從啓動到顯示到界面

前言: 在上兩篇文章中對setContentView()是如何將我們的內容視圖添加到系統提供的根視圖中以及PhoneWindow的創建等做了粗略的分析,且這個時候內容視圖還完全處於內存中 我們是還看不見的,本篇趁熱打鐵繼續跟進 將要了解Ac

原创 MAC之終極反編譯APK二 AndroidDecompiler,Jadx

繼上篇MAC ApkTool,dex2jar,JD-GUI 反編譯APK後 這篇將介紹2款比較厲害的反編譯apk工具 AndroidDecompiler和Jadx 一. AndroidDecompiler 下載 https://githu