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

简介: 【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 源文件 , 可以编译出不同的语言的源代码 , 支持的语言类型如下 :



image.png




二、Protobuf 优缺点分析




1、Protobuf 优点


性能方面 :


体积小 : Protobuf 序列化后 , 体积小 , 序列化后 , 大约是 JSON / XML 等文本方式的 1 3 \cfrac{1}{3}

3

1


 ; 序列化后可操作性高 , 存储时占用的空间少 , 传输时 , 消耗更少的带宽 ;


序列化速度快 : 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


目录
相关文章
|
1月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
109 1
|
1月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
93 2
|
1月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
138 0
安卓项目:app注册/登录界面设计
|
2月前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
11天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
39 6
|
21天前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
39 2
|
2月前
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
第一个安卓项目 | 中国象棋demo学习
|
1月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
2月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
44 2
|
2月前
|
JavaScript 前端开发 Android开发
让Vite+Vue3项目在Android端离线打开(不需要起服务)
让Vite+Vue3项目在Android端离线打开(不需要起服务)