【Android Protobuf 序列化】Protobuf 简介 ( Protobuf 项目简介 | Protobuf 优缺点分析 )
文章目錄
- 一、Protobuf 簡(jiǎn)介
- 二、Protobuf 優(yōu)缺點(diǎn)分析
- 1、Protobuf 優(yōu)點(diǎn)
- 2、Protobuf 缺點(diǎn)
- 三、參考資料
一、Protobuf 簡(jiǎn)介
Protobuf 是 Google 開源項(xiàng)目 , 該項(xiàng)目是序列化數(shù)據(jù)的一種解決方案 , JSON , XML 等也可以進(jìn)行序列化數(shù)據(jù)操作 ;
- 序列化 : 將內(nèi)存中的對(duì)象或數(shù)據(jù) , 轉(zhuǎn)為二進(jìn)制數(shù)據(jù) , 可存放或傳輸 ;
- 反序列化 : 將二進(jìn)制數(shù)據(jù) 轉(zhuǎn)為 內(nèi)存中的對(duì)象或數(shù)據(jù) ;
Protobuf 使用場(chǎng)景 :
- 數(shù)據(jù)交換 : 從網(wǎng)絡(luò)中下載數(shù)據(jù) , 發(fā)送數(shù)據(jù)給服務(wù)器 ;
- 數(shù)據(jù)存儲(chǔ) : 獲取或生成的數(shù)據(jù) , 需要存儲(chǔ)下來 ;
Protobuf 語(yǔ)言特點(diǎn) : Protobuf 包含一套 " 數(shù)據(jù)結(jié)構(gòu)接口描述語(yǔ)言 " , 以及與之配套的 " 編譯器 " , 利用 " 編譯器 " 生成對(duì)應(yīng)數(shù)據(jù)結(jié)構(gòu)的不同編程語(yǔ)言的代碼 , 如 Java , Python , C++ 等 ;
Protobuf 源碼地址 : https://github.com/protocolbuffers/protobuf
Protobuf 當(dāng)前支持的編程語(yǔ)言 , 平臺(tái) ;
一套 Protobuf 源文件 , 可以編譯出不同的語(yǔ)言的源代碼 , 支持的語(yǔ)言類型如下 :
二、Protobuf 優(yōu)缺點(diǎn)分析
1、Protobuf 優(yōu)點(diǎn)
性能方面 :
-
體積小 : Protobuf 序列化后 , 體積小 , 序列化后 , 大約是 JSON / XML 等文本方式的 13\cfrac{1}{3}31? ; 序列化后可操作性高 , 存儲(chǔ)時(shí)占用的空間少 , 傳輸時(shí) , 消耗更少的帶寬 ;
-
序列化速度快 : Protobuf 序列化速度快 , 轉(zhuǎn)換速度是 JSON / XML 的幾十倍到上百倍 ;
在使用方面 , Protobuf
- 使用簡(jiǎn)單 ,
- 維護(hù)成本低 ,
- 擴(kuò)展性好 ,
- 安全性好 ;
使用范圍方面 , Protobuf 可以
- 跨平臺(tái) ( MAC / Linux / Windows / Android / iOS ) ,
- 跨語(yǔ)言 ( Java / Python / C / C++ / … ) ,
- 可擴(kuò)展 ;
2、Protobuf 缺點(diǎn)
通用性較差 : 目前 XML / JSON 廣泛使用 , 是行業(yè)標(biāo)準(zhǔn)的序列化 , 反序列化格式 ;
解釋性差 : 序列化 , 反序列化 Protobuuf , 需要有 Protobuf 源文件才可以進(jìn)行 ;
三、參考資料
Protobuf 參考資料 :
-
Protobuf 官網(wǎng)主頁(yè) : https://developers.google.com/protocol-buffers
-
Protobuf 語(yǔ)法指南 : https://developers.google.com/protocol-buffers/docs/proto
-
Protobuf Java 語(yǔ)言對(duì)應(yīng)用法 : https://developers.google.com/protocol-buffers/docs/javatutorial
-
Protobuf 源碼地址 : https://github.com/protocolbuffers/protobuf
總結(jié)
以上是生活随笔為你收集整理的【Android Protobuf 序列化】Protobuf 简介 ( Protobuf 项目简介 | Protobuf 优缺点分析 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】NDK 动态库报错 ( dl
- 下一篇: 【Android Protobuf 序列