原创 Router/ARouter/路由框架原理及實現

路由框架 主流路由框架Router/ARouter/WMRouter等… 本文主要講解Router和ARouter的實現原理,並實現一個路由框架 1. 路由的作用與優點 1. 在一些複雜的業務場景下,靈活性比較強,很多功能都是動態

原创 Jetpack Compose

Jetpack Compose:聲明式UI框架 (Composition over inheritance) 組合優於繼承 1. 什麼是Compose,有什麼優勢? Jetpack Compose 是一個現代工具包,旨在簡化UI

原创 同步屏障/協程/CyclicBarrier

1. 適用範圍 在業務邏輯中有的時候會遇到一些等待多個子線程的返回結果再執行某個功能的情況,這種處理在代碼上體現出來就不好閱讀和維護,針對這一系列痛點建議java使用CyclicBarrier同步屏障,kotlin使用攜程來處理,

原创 合併多個PDF文件 - Java/Android

因爲最近公司有新的需求需要把多個pdf在本地合成一個pdf展示,在網上翻閱了很多文章寫的不全面又或者要積分,故此對比了很多方法決定使用下面的方法,親測可用合併速度快,不模糊; 1. 合併多個pdf 注:需要下載 pdfbox.jar 設

原创 Retorfit

1. Retrofit優點 api設計簡潔,註解化配置高度解耦,支持多種解析器,支持Rxjava 2. Retrofit與OKHttp的關係 Retrofit是基於OKHttp的網絡請求框架的二次封裝,其本質仍是OKHttp 3. 與Vo

原创 TCP協議四次揮手過程分析?爲什麼握手三次揮手四次?

1. 爲什麼四次揮手? 爲什麼連接的時候是三次握手,關閉的時候卻是四次握手? 答:因爲當Server端收到Client端的SYN連接請求報文後,可以直接發送SYN+ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。但是關閉連

原创 HTTP 1.0,HTTP1.1與HTTP2.0的主要區別

HTTP 1.0 與 HTTP1.1 的主要區別 長連接 節約帶寬 HOST域 HTTP1.1 與 HTTP 2.0的主要區別 多路複用 二進制分幀 首部壓縮 服務器推送 HTTP 1.0 與 HTTP1.1 的主要區別 長連

原创 TCP協議握手過程,以及爲什麼握手,不握手又會怎麼樣?

1. 爲什麼要用三次握手 在《計算機網絡》一書中其中有提到,三次握手的目的是“爲了防止已經失效的連接請求報文段突然又傳到服務端,因而產生錯誤”,這種情況是:一端(client)A發出去的第一個連接請求報文並沒有丟失,而是因爲某些未知的原因

原创 極光推送Android端集成

【快速搞定】2分鐘搞定極光推送(極光推送Android端集成) 一、前言 2分鐘只是一個虛數哈,不過只要你速度快,兩分鐘還真是能搞定的哦。在2.1.8版本以前,極光的配置還是非常麻煩的,需要在清單文件(AndroidManifest.xm

原创 Android Lint

1. 簡介 Lint 是Android Studio 提供的 代碼掃描分析工具,它可以幫助我們發現代碼結構/質量問題,同時提供一些解決方案,而且這個過程不需要我們手寫測試用例。 我個人極力推薦,方便無需下載集成Android

原创 Android 修改TextView字體樣式

關於Android TextView修改字體樣式 使用Typeface只需要三行代碼就可以修改TextView的字體樣式 Typeface tf3 = Typeface.createFromAsset(getAssets(),