当前位置:   article > 正文

Android Studio使用protobuf协议开发_androidstudio 用什么协议

androidstudio 用什么协议

这篇文章主要是介绍如何在AndroidStudio中使用protobuf协议。

先简单的介绍下protobuf:

什么是protobuf呢?官网是这么说的:

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data 。

翻译过来大概就是:Protocol Buffers(也称protobuf)是google旗下一款独立于开发语言,独立于平台的可扩展的结构化数据序列机制。

简单来说,就是像json、xml这种用来传输数据的一种数据交互协议。不过,相比与json、xml,protobuf更加轻便与高效。

那么,我们在AndroidStudio中要如何去使用protobuf协议呢?

首先,我们需要在全局的build.gradle文件中添加上protobuf工具插件:

 classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'

然后,要app/build.gradle文件中添加上此插件:

apply plugin: 'com.google.protobuf'

 

然后我们需要在app/build.gradle下添加依赖:

    compile 'com.google.protobuf:protobuf-java:3.5.1'
这里有个细节需要说明下,我们客户端添加的protobuf依赖版本号应该尽量要与服务端添加的依赖版本号相同,因为在调protobufMsg.writeDelimitedTo(outputStream)时,protobuf内部使用的encoding方式对数据进行序列化,服务端在拿到数据后会进行反序列化。如果此时客户端版本与服务端版本相差太大的话,其内部 encoding与服务端的decoding的方式可能出现差异,这样服务端将无法进行反序列化。 亲身经历,这个坑排查了好久。。

接下来在app/build.gradle里添加上:

  1. protobuf {
  2. //配置protoc编译器
  3. protoc {
  4. artifact = 'com.google.protobuf:protoc:3.5.1'
  5. }
  6. //这里配置生成目录,编译后会在build的目录下生成对应的java文件
  7. generateProtoTasks {
  8. all().each { task ->
  9. task.builtins {
  10. remove java
  11. }
  12. task.builtins {
  13. java {}
  14. }
  15. }
  16. }
  17. }

然后在src/main目录下创建proto文件夹,将你的.proto文件放置在proto目录下,并在app/build.gradle文件中,android模块里添加上:

  1. sourceSets {
  2. main {
  3. java {
  4. srcDir 'src/main/java'
  5. }
  6. proto {
  7. srcDir 'src/main/proto'
  8. }
  9. }
  10. }

然后Rebuild 一下,如果在app/build/generated/source/proto/目录下找到与你与放在src/main/proto目录下的protobuf文件同名的java文件,就说明我们配置成功了。

最后,如果你需要校验protobuf文件的语法正确性,以及需要在AndroidStudio里编写Protobuf文件,你可以在File-Settings-Plugins里搜索Protobuf Support,添加Protobuf Support插件,当你重启后发现原来的.proto文件都变成这种图标,即说明支持插件已经引用成功了,阁下可以愉快的编程了。



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/246969
推荐阅读
相关标签
  

闽ICP备14008679号