Google protobuf与Socket通信数据流,IM通信数据流;
1. protobuf的使用与集成,protobuf生成Java Proto文件?
2. android使用wire方式生成protobuf的Java文件?
Protobuf Plugin for Gradle- https://github.com/google/protobuf-gradle-plugin
ProtoBuf是Google的一个开源项目。作用于数据存储、数据通信和语言无关平台无关,扩展便捷。它是一个灵活、高效、自动化的序列化和结构化数据格式,比XML协议的数据格式更小,更快和更简单。你可以定义你想要的数据结构,然后使用ProtoBuf提供的编译器生成相应平台的源代码,编译器自动化会生成读写你结构化数据代码,然后可以把源码应用于各种语言,你甚至可以在更新数据结构情况下不破坏已经部署基于老格式编译程序。对网络传输的数据本身做优化。
protobuf,protobuf-java-2.2.0.jar, 节省内存 流量, 二进制流
如果想在Android环境下,使用protobuf数据结构,可以直接使用protobuf 的Java版本,也可以使用 JavaLite版本。
Android中使用protobuf。
1.可以使用Google官方的protobuf:Java标准版,JavaLite版,JavaNano版。
2.还可以使用square出品的Wire:https://github.com/square/wire
Wire优点:生成的类文件小,生成多个类文件,总方法数少
Wire缺点:兼容性略差
Copies files into a destination directory. This task can also rename and filter files as it copies. The task implements CopySpec for specifying what to copy.
task copyProtobufJarToOutput(type: org.gradle.api.tasks.Copy) {
from 'libs/protobuf-java-2.2.0.jar'
into "${project.rootDir}/output/coresdklibs/"
}
task copyProtobufJarToOutput(type: org.gradle.api.tasks.Copy) {from into}