protobuf是Google开源的数据传输载体。相比常用的json有如下好处:
(1) 传输数据量小。
protobuf会对数据压缩
(2) 客户端和服务端同步协议方便。
协议定义在proto文件中,可以在客户端及服务端自动生成bean代码,省去bean代码编写的时间
(3) 增加抓包难度。
抓到的包需要protobuf反序列化才能看到明文
下面说一下,如何在Android项目中快速集成protobuf,一共就3步:
1、工程目录build.gradle
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.2'
}
}
2、module目录或者App目录
apply plugin: 'com.google.protobuf'
dependencies {
compile 'com.google.protobuf:protobuf-lite:3.0.0'
}
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.0.0-alpha-3'
}
plugins {
javalite {
// The codegen for lite comes as a separate artifact
artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
}
}
//这里配置生成目录,编译后会在build的目录下生成对应的java文件
generateProtoTasks {
all().each { task ->
task.plugins {
javalite {}
}
}
}
}
3、proto文件路径
src/main/proto/your-protocol.proto
只用编辑你的proto文件,然后编译的时候会自动生成你的proto对应的bean文件。使用相当方便