google protobuf_Android+Python实现protobuf通信

学习protobuf正向开发和逆向分析 记录 一下学习成果,避免遗忘。
  1. protobuf简单介绍
  2. python Flask实现protobuf后台
  3. Android实现protobuf客户端
  4. 抓包+逆向app,分析proto结构

第一篇(protobuf简单介绍)

protobuf(全称:Protocol Buffers)是Google开发的一种轻便高效的结构化数据格式。常常用于数据结构的序列化。
以下是protobuf目前支持的语言和平台: 48b90f52e176fda1b7c1017392ac7fad.png 优点:1. 编写简单 2. 高效,即比 XML、Json序列化时间更快,体积更小 3. 扩展性和兼容性好, 即更新数据结构,而不影响和破坏原有的旧程序 缺点:1. 可读性差,Protobuf采用了二进制格式进行编码 2. 缺乏自描述,需配合.proto文件才能读出其内容意思
protobuf文件结构(以.proto结尾)

使用message来定义每一个需要序列化的数据结构,每个message里面可以定义类型和名称。
类似这样:  f2972bf2b01cca894fdc0c38f9a0523e.png

拿string name = 1 来说,string代表字段类型,name代表字段名称,1代表编号。  message之间还可以嵌套   e1c3e9fe323ce26e5cf1956fa365a135.png
单个message作用域内字段名称和编号不能重复,使用的时候需要严格按照定义的数据类型规范使用。一旦字段确定下来,后面在使用过程中也不应更改。编号1-15需要一个字节来编码,编号16-2047需要2个字节编码。因此你应该为经常出现的元素保留1-15范围内的编号,为将来添加更容易频繁出现的元素预留空间。编号最小是1,最大是2的29次方减1(536870911)。注意 19000-19999作为保留编号不能被使用。  更多类型和使用技巧参考官方文档:https://developers.google.com/protocol-buffers/docs/proto3  下一篇: python Flask实现protobuf后台
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值