Json、XML
數據存儲格式的大家,相信大多都沒聽過Protocol Buffer
Protocol Buffer
其實 是 Google
出品的一種輕量 & 高效的結構化數據存儲格式,性能比 Json、XML
真的強!太!多!因爲
Protocol Buffer
已經具有足夠的吸引力微信
Protocol Buffer
攻略,含介紹、特色、具體使用、源碼分析、序列化原理等等,但願您們會喜歡。一種 結構化數據 的數據存儲格式(相似於 XML、Json
)網絡
Protocol Buffer
目前有兩個版本:proto2
和proto3
- 由於
proto3
仍是beta 版,因此本次講解是proto2
經過將 結構化的數據 進行 串行化(序列化),從而實現 數據存儲 / RPC 數據交換的功能數據結構
- 序列化: 將 數據結構或對象 轉換成 二進制串 的過程
- 反序列化:將在序列化過程當中所生成的二進制串 轉換成 數據結構或者對象 的過程
XML、Json
數據存儲格式,Protocol Buffer
有以下特色:傳輸數據量大 & 網絡環境不穩定 的數據存儲、RPC 數據交換 的需求場景框架
如 即時IM (QQ、微信)的需求場景源碼分析
在 傳輸數據量較大的需求場景下,Protocol Buffer
比XML、Json
更小、更快、使用 & 維護更簡單!性能
Protocol Buffer
的性能好:傳輸效率快,主要緣由 = 序列化速度快 & 序列化後的數據體積小,其緣由以下:序列化速度快的緣由: a. 編碼 / 解碼 方式簡單(只須要簡單的數學運算 = 位移等等) b. 採用 PB
自身的框架代碼 和 編譯器 共同完成編碼
序列化後的數據量體積小(即數據壓縮效果好)的緣由: a. 採用了獨特的編碼方式,如Varint
、Zigzag
編碼方式等等 b. 採用T - L - V
的數據存儲方式:減小了分隔符的使用 & 數據存儲得緊湊.net
更加詳細的介紹,請看文章:Protocol Buffer 序列化原理大揭祕 - 爲何Protocol Buffer性能這麼好?3d
至此, 關於Protocol Buffer
的序列化原理講解完畢。下面將繼續講解如何具體使用Protocol Buffer
code
使用 Protocol Buffer
的流程以下:
下面,我將對流程中的每一個流程進行詳細講解。
Protocol Buffer
,須要先在電腦上安裝Protocol Buffer
至此, Protocol Buffer
已經安裝完成。下面將講解如何具體使用Protocol Buffer
Protocol Buffer
消息對象模型Android(Java)
平臺爲例)詳細介紹每一個步驟。至此, 關於Protocol Buffer
的語法 & 如何構建Protocol Buffer
消息對象模型講解完畢。下面將繼續講解如何具體使用Protocol Buffer
Android
平臺)此處以
Android
平臺 爲例
至此, 關於Protocol Buffer
的使用講解完畢。下面將講解Protocol Buffer
的源碼分析
在下面的源碼分析中,主要分析的是:
Protocol Buffer
具體是如何進行序列化 & 反序列化 ?XML、Json
相比,Protocol Buffer
序列化 & 反序列化速度 爲何如此快 & 序列化後的數據體積這麼小?本文主要講解
Protocol Buffer
在Android
平臺上的應用,即Java
平臺
具體的源碼分析請看文章:Android:手把手帶你分析 Protocol Buffer使用 源碼
至此,關於 Protocol Buffer
的全部內容講解完畢,含介紹、特色、具體使用、源碼分析、序列化原理等等。
Protocol Buffer
比XML、Json
更小、更快、使用 & 維護更簡單!Protocol Buffer
的整個步驟流程:Protocol Buffer
的系列文章請看:Android
相關知識 ,有興趣能夠繼續關注Carson_Ho的安卓開發筆記