在Android项目中快速集成protobuf

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文件。使用相当方便

你可能感兴趣的