一、grpc
1.首次接触是使用 grpc搭建连接时候,直接配置好,并引用相应的包即可,由于grpc传输速度实在慢的很,后期换为socket传输(netty-all-4.0.25.Final.jar)
2.grpc引用的包也可以直接编译,生成对应的class,使用google-protobuf-java的包也可以编译生成对应class,都是可以使用的,但是由于伟大的防火墙,引用google-protobuf会失败,则直接引用了jar包(protobuf-java-3.1.0.jar)代替
二、protobuf配置
1.全局build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.1'
classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.8"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2.项目内build.gradle,使用 protobuf-java-3.1.0.jar
apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
sourceSets {
main {
jniLibs.srcDirs = ['libs']
proto {
//main目录新建proto目录
srcDir 'src/main/proto'
include '**/*.proto'
}
}
}
//构建task
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.1.0'
}
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
}
task.builtins {
java {}
// Add cpp output without any option.
// DO NOT omit the braces if you want this builtin to be added.
cpp {}
}
}
}
//生成目录
generatedFilesBaseDir = "$projectDir/src/generated"
}
implementation files('src\\libs\\protobuf-java-3.1.0.jar')
3.项目内build.gradle,使用grpc(与2大同小异)
apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
protobuf {
protoc { artifact = 'com.google.protobuf:protoc:3.10.0' }
plugins {
javalite { artifact = "com.google.protobuf:protoc-gen-javalite:3.0.0" }
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.25.0' // CURRENT_GRPC_VERSION
}
}
generateProtoTasks {
all().each { task ->
task.plugins {
javalite {}
grpc { // Options added to --grpc_out
option 'lite'
}
}
}
}
}
implementation 'io.grpc:grpc-okhttp:1.25.0'
implementation 'io.grpc:grpc-protobuf-lite:1.25.0'
implementation 'io.grpc:grpc-stub:1.25.0'
三、编译
直接使用android studio ,点击编译按钮即可生成代码目录