Proto3的在Android上集成
proto3和proto2有很大区别,网上大多是proto2的介绍,因为有使用最新库的习惯,所以坚持集成proto3
Project目录下build.gradle配置
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
Module下build.gradle配置
在
apply plugin: 'com.android.application'
或者
apply plugin: 'com.android.library'
下增加
apply plugin: 'com.google.protobuf'
同时,在android同级增加
protoc {
artifact = 'com.google.protobuf:protoc:3.8.0'
}
generateProtoTasks {
all().each { task ->
task.builtins {
java {
option "lite"
}
}
}
}
//生成目录
generatedFilesBaseDir = "$projectDir/src/generated"
}
在android里增加
main {
java {
srcDir 'src/main/java'
}
proto {
srcDir 'src/main/proto' //指定.proto文件路径
}
}
}
最后在depends里增加
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.protobuf:protobuf-java:3.8.0'
implementation 'com.google.protobuf:protoc:3.8.0'
}
module下增加与java同级目录proto目录,用于定义proto消息数据体
build project即可生成与main同级目录generated目录,该目录下生成proto目录下的java类,可直接使用了
其他介绍
proto3和proto2的区别参考:http://www.cppblog.com/sunicdavy/archive/2016/01/25/212739.html
未完待续