Android开发集锦AndroidAndroid开发干货集中营

快来看看Google出品的Protocol Buffer,别只会

2017-03-27  本文已影响12583人  Carson带你学安卓

前言

由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力


目录

示意图

1. 定义

一种 结构化数据 的数据存储格式(类似于 XML、Json

  1. Google 出品 (开源)
  2. Protocol Buffer 目前有两个版本:proto2proto3
  3. 因为proto3 还是beta 版,所以本次讲解是 proto2

2. 作用

通过将 结构化的数据 进行 串行化(序列化),从而实现 数据存储 / RPC 数据交换的功能

  1. 序列化: 将 数据结构或对象 转换成 二进制串 的过程
  2. 反序列化:将在序列化过程中所生成的二进制串 转换成 数据结构或者对象 的过程

3. 特点

Protocol Buffer 特点

4. 应用场景

传输数据量大 & 网络环境不稳定 的数据存储、RPC 数据交换 的需求场景

如 即时IM (QQ、微信)的需求场景


总结

传输数据量较大的需求场景下,Protocol BufferXML、Json 更小、更快、使用 & 维护更简单!


5. 序列化原理解析

  1. 序列化速度快的原因:
    a. 编码 / 解码 方式简单(只需要简单的数学运算 = 位移等等)
    b. 采用 PB 自身的框架代码 和 编译器 共同完成

  2. 序列化后的数据量体积小(即数据压缩效果好)的原因:
    a. 采用了独特的编码方式,如VarintZigzag编码方式等等
    b. 采用T - L - V 的数据存储方式:减少了分隔符的使用 & 数据存储得紧凑

更加详细的介绍,请看文章:Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?

至此, 关于Protocol Buffer的序列化原理讲解完毕。下面将继续讲解如何具体使用Protocol Buffer


6. 使用步骤 & 实例讲解

使用 Protocol Buffer 的流程如下:

Protocol Buffer使用流程

下面,我将对流程中的每个流程进行详细讲解。

6.1 环境配置

至此, Protocol Buffer已经安装完成。下面将讲解如何具体使用Protocol Buffer


6.2 构建 Protocol Buffer 消息对象模型

构建步骤

至此, 关于Protocol Buffer的语法 & 如何构建Protocol Buffer 消息对象模型讲解完毕。下面将继续讲解如何具体使用Protocol Buffer


6.3 应用到具体平台(Android平台)

此处以 Android平台 为例

具体步骤

至此, 关于Protocol Buffer的使用讲解完毕。下面将讲解Protocol Buffer的源码分析


7. 源码分析

7.1 核心分析

在下面的源码分析中,主要分析的是:

  1. Protocol Buffer具体是如何进行序列化 & 反序列化 ?
  2. XML、Json 相比,Protocol Buffer 序列化 & 反序列化速度 为什么如此快 & 序列化后的数据体积这么小?

本文主要讲解Protocol BufferAndroid 平台上的应用,即 Java
平台

7.2 具体描述

具体的源码分析请看文章:Android:手把手带你分析 Protocol Buffer使用 源码

至此,关于 Protocol Buffer的所有内容讲解完毕,含介绍、特点、具体使用、源码分析、序列化原理等等。


8. 总结

总结

请点赞!因为你的鼓励是我写作的最大动力!

相关文章阅读
Android开发:最全面、最易懂的Android屏幕适配解决方案
Android事件分发机制详解:史上最全面、最易懂
Android开发:史上最全的Android消息推送解决方案
Android开发:最全面、最易懂的Webview详解
Android开发:JSON简介及最全面解析方法!
Android四大组件:Service服务史上最全面解析
Android四大组件:BroadcastReceiver史上最全面解析


欢迎关注Carson_Ho的简书!

不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

上一篇下一篇

猜你喜欢

热点阅读