【Android Protobuf 序列化】Protobuf 简介 ( Protobuf 项目简介 | Protobuf 优缺点分析 )
文章目录
- 一、Protobuf 简介
- 二、Protobuf 优缺点分析
- 1、Protobuf 优点
- 2、Protobuf 缺点
- 三、参考资料
一、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 等文本方式的 13\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 参考资料 :
Protobuf 官网主页 : https://developers.google.com/protocol-buffers
Protobuf 语法指南 : https://developers.google.com/protocol-buffers/docs/proto
Protobuf Java 语言对应用法 : https://developers.google.com/protocol-buffers/docs/javatutorial
Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf
【Android Protobuf 序列化】Protobuf 简介 ( Protobuf 项目简介 | Protobuf 优缺点分析 )相关推荐
- android 播放音乐 自定义控件,Android音乐播放器开发小记——项目简介
项目源码: 前言 之前做的App多半是巡检,点检类的,一直想开发不同类型的APP来练习.所以选择做一款音乐播放器,基本可以涵盖android所有的基础知识,比如四大组件,自定义控件,网络请求,跨进程通 ...
- python项目简介_项目简介
itchat itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人. 当然,该api的使用远不止一个机器人 ...
- 【Android Protobuf 序列化】Protobuf 使用 ( protobuf-gradle-plugin 插件简介 | Android Studio 中配置插件 | AS 中编译源文件 )
文章目录 一.protobuf-gradle-plugin 插件简介 二.Android Studio 中配置 protobuf-gradle-plugin 插件 三.Android Studio 中 ...
- 【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 )
文章目录 一.protoc 编译器简介 二.下载 protoc 编译器 三.使用 protoc 编译器编译 addressbook.proto 源文件 四.参考资料 一.protoc 编译器简介 在上 ...
- 【Android Protobuf 序列化】Protobuf 服务器与客户端通信 ( TCP 通信中使用 Protobuf )
文章目录 一.TCP 粘包和分包 二.TCP 粘包和分包解决方案 三.客户端 Android 应用使用 Protobuf 四.服务器端 Java 服务器使用 Protobuf 五.参考资料 一.TCP ...
- 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 源码分析 | 创建 Protobuf 对象 )
文章目录 一.Protobuf 源码分析 二.创建 Protobuf 对象 三.完整代码示例 四.参考资料 一.Protobuf 源码分析 Protobuf 源文件如下 : addressbook.p ...
- 【Android Protobuf 序列化】Protobuf 性能测试 ( fastjson 序列化与反序列化 | gson 序列化与反序列化 | 三种序列化与反序列化性能对比 )
文章目录 一.导入依赖库 二.构造 JavaBean 三.fastjson 序列化与反序列化 四.gson 序列化与反序列化 五.完整代码 1.主界面代码 2.JSON 测试代码 3.执行结果 六.参 ...
- 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 序列化 | Protobuf 反序列化 )
文章目录 一.Protobuf 序列化 二.Protobuf 反序列化 三.完整代码 四.参考资料 一.Protobuf 序列化 在上一篇博客 [Android Protobuf 序列化]Protob ...
- 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 使用文档 | 创建 Protobuf 源文件 | Protobuf 语法 )
文章目录 一.Protobuf 使用文档 二.创建 Protobuf 源文件 三.Protobuf 语法 四.参考资料 一.Protobuf 使用文档 Protobuf Java 语言对应用法 : h ...
最新文章
- 微服务架构下的测试之道
- python操作文件的库_Python使用pyshp库读取shapefile信息的方法
- 字符串的压缩【百度】
- 单片机8×8点阵显示简单汉字的程序_LED显示屏的显示原理原来是这样,科技实现梦想...
- Android基础知识大纲
- SonarQube上传分析报告失败
- PowerDesigner的CDM模型将低驼峰命名法则的每个大写字母前加_符
- Linux文件系统(五)---三大缓冲区之buffer块缓冲区
- 【转下载】黑莓7290中文说明书
- 解决win10安装portal v13/v15要求反复重启问题
- matlab画柱状图斜线,matlab柱状图斜线填充
- 生信文献 | TIMER2.0用于分析肿瘤免疫细胞浸润
- 灰狼算法优化测试函数branin,测试函数的100种启发式算法求解方法之19
- UUID和UUID_SHORT
- 【雷达通信】基于matlab雷达探测威力仿真【含Matlab源码 1974期】
- 手把手教你把网上下载视频刻录成VCD、DVD
- java 获取图片像素_转:java提取图片中的像素
- 浙江大学郑强教授的演讲(国民必看)
- 求1的阶乘+2的阶乘+3的阶乘+4的阶乘+…+n的阶乘
- Ahmedabad公司的LiFi技术为Nadabet提供互联网接入能力
热门文章
- 【基础算法-模拟-例题-*校长的问题】-C++
- concurrent(六)同步辅助器CyclicBarrier 源码分析
- dyld: Library not loaded: @rpath/XCTest.framework/XCTest
- from 表单回车自动提交
- FTL页面常用到的一些方法combobox、combotree、datagrid
- Linux EOF使用
- 个人项目【 完成总结】
- Sum-product Networks
- LayoutInflater中四种类型inflate方法的介绍
- DataList编辑、更新、取消、删除、分页(分页控件 AspNetPager.dll)