在看微信硬件平台蓝牙Airsync接入文档时 ,发现数据的传递 ,采用的是protobuf 打包形式。
1. 微信硬件平台为什么采用protobuf,就是说它有啥优点
Protocol Buffer 是 Google出品的一种轻量和高效的结构化数据存储格式,我总结了一下它的主要优点:
- 效率高: 序列化速度比xml,json快20~100倍,序列化后,体积可缩小3倍左右,所以它的传输速度更快了
- 使用简单安全: proto编译器自动实现序列化,传输过程中以十六进制字节传输,所以安全不怕黑
- 跨平台: 支持java、c#、c++、go 和 python等语言,只需维护一个.proto文件,然后通过相应的编译器就可以对同一数据进行序列化(打包)和反序列化(解包)。
微信硬件平台为什么要用它?我的理解是跨语言的特性已经完败如XML、JSON等数据格式。微信梦想要连接一切硬件, 就是所谓智能硬件,系统实现大都基于非java语言, xml-json在此英雄无用武之地。当然这只是一个方面。
2.准备工作
在 protobuf官网 找到 Java版本 的页面, 页面详细描述了通过Maven,Gr