Windows平台下将protobuf 编译成.jar格式文件

版权声明:本文为博主【limin13215】原创文章,欢迎转载,转载请注明链接地址! https://blog.csdn.net/limin13215/article/details/83038408

在看微信硬件平台蓝牙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,Gradle等构建工具使用protobuf的方法,当然也提到了如何编译出.jar格式文件。

release页面找到所需版本下载:
protoc-3.5.0-win32.zip:https://github.com/protocolbuffers/protobuf/releases/download/v3.5.0/protoc-3.5.0-win32.zip
protobuf-java-3.5.0.ziphttps://github.com/protocolbuffers/protobuf/releases/download/v3.5.0/protobuf-java-3.5.0.zip

将protoc-3.5.0-win32.zip解压之后,找到编译器文件protoc.exe, 拷贝到protobuf-java-3.5.0.zip解压之后生成的..\protobuf-3.5.0\src\目录里面。

3.编译.jar

确保系统中已经安装了Maven工具, 打开cmd命令行工具 ,进入到..\protobuf-3.5.0\java\路径:
执行下面的命令:

mvn package

编译时间大概一两分钟, 编译成功后,将在protobuf-3.5.0\java\core\target\目录下看到刚刚生成的**protobuf-java-3.5.0.jar**, 这个就是我们需要的。

官网的才是最具指导意义的, 上面的内容都是从 protobuf官网 提取、翻译、总结出来的,有疑惑的地方,都可以自行查看官网。

猜你喜欢

转载自blog.csdn.net/limin13215/article/details/83038408
今日推荐