最近解码了一个没有协议(.proto)文件的probuf包,遇到了以下的一些问题:
- 不清楚probuf的基础知识;
- 不清楚probuf的序列换和反序列化规则;
- 没有合适的调试工具;
- 不熟悉java里probuf流的操作;
解决了以上几个问题,问题也就迎刃而解了!
一、不清楚probuf的基础知识
官方定义:
protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。
Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。
你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。
主要了解到protobuf的基础定义,使用场景,一些规则,再结合一个实例这块就算解决了。<