zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

【Android Protobuf 序列化】Protobuf 简介 ( Protobuf 项目简介 | Protobuf 优缺点分析 )

Android项目 分析 简介 序列化 优缺点 Protobuf
2023-09-14 09:07:31 时间





一、Protobuf 简介



Protobuf 是 Google 开源项目 , 该项目是序列化数据的一种解决方案 , JSON , XML 等也可以进行序列化数据操作 ;

  • 序列化 : 将内存中的对象或数据 , 转为二进制数据 , 可存放或传输 ;
  • 反序列化 : 将二进制数据 转为 内存中的对象或数据 ;

Protobuf 使用场景 :

  • 数据交换 : 从网络中下载数据 , 发送数据给服务器 ;
  • 数据存储 : 获取或生成的数据 , 需要存储下来 ;

Protobuf 语言特点 : Protobuf 包含一套 " 数据结构接口描述语言 " , 以及与之配套的 " 编译器 " , 利用 " 编译器 " 生成对应数据结构的不同编程语言的代码 , 如 Java , Python , C++ 等 ;


Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf


Protobuf 当前支持的编程语言 , 平台 ;

一套 Protobuf 源文件 , 可以编译出不同的语言的源代码 , 支持的语言类型如下 :
在这里插入图片描述





二、Protobuf 优缺点分析





1、Protobuf 优点


性能方面 :

  • 体积小 : Protobuf 序列化后 , 体积小 , 序列化后 , 大约是 JSON / XML 等文本方式的 1 3 \cfrac{1}{3} 31 ; 序列化后可操作性高 , 存储时占用的空间少 , 传输时 , 消耗更少的带宽 ;

  • 序列化速度快 : Protobuf 序列化速度快 , 转换速度是 JSON / XML 的几十倍到上百倍 ;


在使用方面 , Protobuf

  • 使用简单 ,
  • 维护成本低 ,
  • 扩展性好 ,
  • 安全性好 ;

使用范围方面 , Protobuf 可以

  • 跨平台 ( MAC / Linux / Windows / Android / iOS ) ,
  • 跨语言 ( Java / Python / C / C++ / … ) ,
  • 可扩展 ;


2、Protobuf 缺点


通用性较差 : 目前 XML / JSON 广泛使用 , 是行业标准的序列化 , 反序列化格式 ;

解释性差 : 序列化 , 反序列化 Protobuuf , 需要有 Protobuf 源文件才可以进行 ;





三、参考资料



Protobuf 参考资料 :