温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ProtoBuf协议

发布时间:2020-06-24 09:27:46 来源:网络 阅读:1014 作者:屠夫章哥 栏目:移动开发


  微信蓝牙调试工具:https://iot.weixin.qq.com/wiki/document-0_5.html

            可以解析微信协议,并且知道设备哪个字段赋值了,哪个字段没有赋值。


  Protobuf的js库:

  https://github.com/protobufjs/protobuf.js




理解protobuf之前必须要懂variant编码  !!!!!!!!!!

varian编码 :http://blog.sina.com.cn/s/blog_828e50020102vfrf.html

     varian解码步骤:

     1)去掉标识位,也就是每个字节的最高位。

     2)反转字节

     3)2进制转10进制即得到原来的数






  1. 什么是Protobuf协议?

    和json xml一样,也是一种数据交换格式.可以序列化与反序列化.不同的是protobuf是一种变长协议,格式较为麻烦,但是效率很高.

    参考文档:

    http://blog.csdn.net/yueqian_scut/article/details/47606599 (variant算法)

        注意这个规则:

        ProtoBuf协议



        https://blog.csdn.net/fullsail/article/details/42686699  (超级详细)


    

  1. Protobuf的相关资料

    http://blog.csdn.net/shuliwuflying/article/details/50814123

    http://www.jianshu.com/p/e0d81a9963e9




  2. protobuf语言:

    http://www.cnblogs.com/dkblog/archive/2012/03/27/2419010.html

    




  1. .proto转.java的开源库

    http://www.jianshu.com/p/3a543757d086  (利用gradle配置,同步一下,走task即可生成java文件)

    java对象与16进制字符串互转需要注意的问题:

    1)对于proto中bytes类型得到java的字符串:

    

String mac1 = DataTransfer.bytes2HexString(authRequest.getMacAddress().toByteArray());

  2)java对象转16进制报文

    凡是数据数字,都是设置的10进制数据.

    凡是字符串,都是native string.

  


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI